From 7b97934bf9a5b4b52a82ab6631d6255a5c93b0a1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 28 Feb 2001 15:24:30 +0000 Subject: [PATCH] Update. 2001-02-28 Ulrich Drepper * sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle relocations which are not in ld.so if RTLD_BOOTSTRAP is defined. * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo. * elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit machines. * sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define. --- ChangeLog | 12 ++++++++++++ elf/dl-misc.c | 2 +- sysdeps/alpha/dl-machine.h | 10 ++++++---- sysdeps/powerpc/dl-machine.c | 2 +- sysdeps/unix/sysv/linux/powerpc/sysdep.h | 5 ++++- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index ccb55e5..c6444fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2001-02-28 Ulrich Drepper + + * sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle + relocations which are not in ld.so if RTLD_BOOTSTRAP is defined. + + * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo. + + * elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit + machines. + + * sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define. + 2001-02-27 Ulrich Drepper * sysdeps/powerpc/elf/libc-start.c: Use new output functions and diff --git a/elf/dl-misc.c b/elf/dl-misc.c index 69b714f..4d8f85a 100644 --- a/elf/dl-misc.c +++ b/elf/dl-misc.c @@ -181,7 +181,7 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg) different size. */ #if LONG_MAX != INT_MAX unsigned long int num = (long_mod - ? va_arg (arg, unsigned long int); + ? va_arg (arg, unsigned long int) : va_arg (arg, unsigned int)); #else unsigned long int num = va_arg (arg, unsigned int); diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index 73c6cbd..5a17ca2 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. Alpha version. - Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson . @@ -500,8 +500,10 @@ elf_machine_rela (struct link_map *map, memcpy (reloc_addr_1, &reloc_addr_val, 8); } } +#ifndef RTLD_BOOTSTRAP else if (r_type == R_ALPHA_NONE) return; +#endif else { Elf64_Addr loadbase, sym_value; @@ -512,8 +514,9 @@ elf_machine_rela (struct link_map *map, if (r_type == R_ALPHA_GLOB_DAT) *reloc_addr = sym_value; - else if (r_type == R_ALPHA_JMP_SLOT) + else if (r_type == R_ALPHA_JMP_SLOT) elf_machine_fixup_plt (map, 0, reloc, reloc_addr, sym_value); +#ifndef RTLD_BOOTSTRAP else if (r_type == R_ALPHA_REFQUAD) { void *reloc_addr_1 = reloc_addr; @@ -522,7 +525,6 @@ elf_machine_rela (struct link_map *map, /* Load value without causing unaligned trap. */ memcpy (&reloc_addr_val, reloc_addr_1, 8); sym_value += reloc_addr_val; -#ifndef RTLD_BOOTSTRAP if (map == &_dl_rtld_map) { /* Undo the relocation done here during bootstrapping. @@ -536,10 +538,10 @@ elf_machine_rela (struct link_map *map, sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value; sym_value -= reloc->r_addend; } -#endif /* Store value without causing unaligned trap. */ memcpy (reloc_addr_1, &sym_value, 8); } +#endif else _dl_reloc_bad_type (map, r_type, 0); } diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/dl-machine.c index 84bd8c2..a76f1f0 100644 --- a/sysdeps/powerpc/dl-machine.c +++ b/sysdeps/powerpc/dl-machine.c @@ -469,7 +469,7 @@ __process_machine_rela (struct link_map *map, strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]); _dl_error_printf ("\ -%s: Symbol `%s' has different size in shared object, onsider re-linking\n" +%s: Symbol `%s' has different size in shared object, onsider re-linking\n", _dl_argv[0] ?: "", strtab + refsym->st_name); } diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/sysdep.h index dfd42b2..54840dc 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h +++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1992,1997,1998,1999,2000,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -144,6 +144,9 @@ #undef L #define L(x) .L##x +/* Label in text section. */ +#define C_TEXT(name) name + #endif /* __ASSEMBLER__ */ #endif /* linux/powerpc/sysdep.h */ -- 2.7.4