2002-10-23  Alexandre Oliva  <aoliva@redhat.com>

	* elf/dl-reloc.c (_dl_reloc_bad_use): Print the full 32-bit relocation
	type on ELF64 platforms.
This commit is contained in:
Ulrich Drepper 2002-10-25 07:54:26 +00:00
parent 14fa2b09c6
commit 584364156b
2 changed files with 22 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2002-10-23 Alexandre Oliva <aoliva@redhat.com>
* elf/dl-reloc.c (_dl_reloc_bad_use): Print the full 32-bit relocation
type on ELF64 platforms.
2002-10-24 Ulrich Drepper <drepper@redhat.com>
* elf/elf.h (R_X86_64_GOTTPOFF): Renamed from r_x86_64_GOTTPOFF.

View File

@ -225,12 +225,27 @@ _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt)
#define DIGIT(b) INTUSE(_itoa_lower_digits)[(b) & 0xf];
/* XXX We cannot translate these messages. */
static const char msg[2][32] = { "unexpected reloc type 0x",
"unexpected PLT reloc type 0x" };
static const char msg[2][32
#if __ELF_NATIVE_CLASS == 64
+ 6
#endif
] = { "unexpected reloc type 0x",
"unexpected PLT reloc type 0x" };
char msgbuf[sizeof (msg[0])];
char *cp;
cp = __stpcpy (msgbuf, msg[plt]);
#if __ELF_NATIVE_CLASS == 64
if (__builtin_expect(type > 0xff, 0))
{
*cp++ = DIGIT (type >> 28);
*cp++ = DIGIT (type >> 24);
*cp++ = DIGIT (type >> 20);
*cp++ = DIGIT (type >> 16);
*cp++ = DIGIT (type >> 12);
*cp++ = DIGIT (type >> 8);
}
#endif
*cp++ = DIGIT (type >> 4);
*cp++ = DIGIT (type);
*cp = '\0';