diff options
author | Roland McGrath <roland@gnu.org> | 1996-06-07 13:07:15 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-06-07 13:07:15 +0000 |
commit | 1c2f546be89e01ee65a6b397474e9fa2ff7080c7 (patch) | |
tree | cf1bf0a9d39c04e800fb36d06e8ae0c3f28a3a87 /sysdeps/m68k | |
parent | 1be6ec30336a318dd50f9d9a45c8066860ec07f2 (diff) | |
download | glibc-1c2f546be89e01ee65a6b397474e9fa2ff7080c7.tar glibc-1c2f546be89e01ee65a6b397474e9fa2ff7080c7.tar.gz glibc-1c2f546be89e01ee65a6b397474e9fa2ff7080c7.tar.bz2 glibc-1c2f546be89e01ee65a6b397474e9fa2ff7080c7.zip |
Wed Jun 5 22:06:21 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix type of reloc
argument.
[case R_68K_32]: Check for resolve being null.
(RTLD_START): Add missing label.
Diffstat (limited to 'sysdeps/m68k')
-rw-r--r-- | sysdeps/m68k/dl-machine.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h index 6c6b01de2b..74e88749e6 100644 --- a/sysdeps/m68k/dl-machine.h +++ b/sysdeps/m68k/dl-machine.h @@ -73,7 +73,7 @@ elf_machine_load_address (void) static inline void elf_machine_rela (struct link_map *map, - const Elf32_Rel *reloc, const Elf32_Sym *sym, + const Elf32_Rela *reloc, const Elf32_Sym *sym, Elf32_Addr (*resolve) (const Elf32_Sym **ref, Elf32_Addr reloc_addr, int noplt)) @@ -110,7 +110,9 @@ elf_machine_rela (struct link_map *map, + reloc->r_addend); break; case R_68K_32: - loadbase = (*resolve) (&sym, (Elf32_Addr) reloc_addr, 0); + loadbase = (resolve ? (*resolve) (&sym, (Elf32_Addr) reloc_addr, 0) : + /* RESOLVE is null during bootstrap relocation. */ + map->l_addr); *reloc_addr = ((sym ? (loadbase + sym->st_value) : 0) + reloc->r_addend); break; @@ -250,7 +252,7 @@ _dl_start_user: lea (%sp, %d0*4), %sp | Push back the modified argument count. move.l %d1, -(%sp) - | Push _dl_loaded as argument in _dl_init_next call below. +0: | Push _dl_loaded as argument in _dl_init_next call below. move.l ([_dl_loaded@GOT, %a5]), %d2 0: move.l %d2, -(%sp) | Call _dl_init_next to return the address of an initializer |