OSDN Git Service

ldso: fixup all the rest of the calls to _dl_find_hash
authorAustin Foxley <austinf@cetoncorp.com>
Thu, 15 Oct 2009 00:21:46 +0000 (17:21 -0700)
committerAustin Foxley <austinf@cetoncorp.com>
Thu, 15 Oct 2009 00:24:58 +0000 (17:24 -0700)
With TLS _dl_find_hash grew an extra param.
These archs don't have TLS reloc support yet, but they do need to
compile without it.

Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
ldso/ldso/avr32/elfinterp.c
ldso/ldso/cris/elfinterp.c
ldso/ldso/m68k/elfinterp.c
ldso/ldso/powerpc/elfinterp.c
ldso/ldso/sh64/elfinterp.c
ldso/ldso/x86_64/elfinterp.c
ldso/ldso/xtensa/elfinterp.c

index 813179e..797f851 100644 (file)
@@ -138,7 +138,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
                symbol_addr = (unsigned long)
                        _dl_find_hash(strtab + symtab[symtab_index].st_name,
                                      tpnt->symbol_scope, tpnt,
-                                     elf_machine_type_class(reloc_type));
+                                     elf_machine_type_class(reloc_type), NULL);
 
                /* Allow undefined references to weak symbols */
                if (!symbol_addr &&
index 5bed669..7d8fbce 100644 (file)
@@ -66,7 +66,7 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
        got_addr = (char **)instr_addr;
 
        /* Get the address of the GOT entry. */
-       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT);
+       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
        if (unlikely(!new_addr)) {
                _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n", _dl_progname, symname);
                _dl_exit(1);
@@ -174,7 +174,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
                        symbol_addr = (unsigned long)tpnt->loadaddr;
                } else {
                  symbol_addr = (unsigned long)_dl_find_hash(symname, scope, tpnt,
-                                                                  elf_machine_type_class(reloc_type));
+                                                                  elf_machine_type_class(reloc_type), NULL);
                }
 
                if (unlikely(!symbol_addr && ELF32_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK)) {
index 106ad52..04c301e 100644 (file)
@@ -70,7 +70,7 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
        got_addr = (char **)instr_addr;
 
        /* Get the address of the GOT entry. */
-       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT);
+       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
        if (unlikely(!new_addr)) {
                _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n", _dl_progname, symname);
                _dl_exit(1);
@@ -173,7 +173,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
        if (symtab_index) {
                symbol_addr = (ElfW(Addr))_dl_find_hash(symname, scope, tpnt,
-                                                           elf_machine_type_class(reloc_type));
+                                                           elf_machine_type_class(reloc_type), NULL);
                /*
                 * We want to allow undefined references to weak symbols - this
                 * might have been intentional.  We should not be linking local
index 52c1f2a..ff7fb1f 100644 (file)
@@ -137,7 +137,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 
        /* Get the address of the GOT entry */
        finaladdr = (Elf32_Addr) _dl_find_hash(symname,
-                       tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT);
+                       tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
        if (unlikely(!finaladdr)) {
                _dl_dprintf(2, "%s: can't resolve symbol '%s' in lib '%s'.\n", _dl_progname, symname, tpnt->libname);
                _dl_exit(1);
@@ -200,7 +200,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
        symname      = strtab + symtab[symtab_index].st_name;
        if (symtab_index) {
                symbol_addr = (unsigned long) _dl_find_hash(symname, scope, tpnt,
-                                                           elf_machine_type_class(reloc_type));
+                                                           elf_machine_type_class(reloc_type), NULL);
                /* We want to allow undefined references to weak symbols - this might
                 * have been intentional.  We should not be linking local symbols
                 * here, so all bases should be covered.
index 08b6311..51ca978 100644 (file)
@@ -73,7 +73,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 
 
        /* Get the address of the GOT entry */
-       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT);
+       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
        if (unlikely(!new_addr)) {
                _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
                            _dl_progname, symname);
@@ -186,7 +186,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct dyn_elf *scope,
                int stb;
 
                symbol_addr = (unsigned long)_dl_find_hash(symname, scope, tpnt,
-                                                          elf_machine_type_class(reloc_type));
+                                                          elf_machine_type_class(reloc_type), NULL);
 
                /*
                 * We want to allow undefined references to weak symbols - this
index fb8051c..92ac5ac 100644 (file)
@@ -70,7 +70,7 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
        got_addr = (char **)instr_addr;
 
        /* Get the address of the GOT entry. */
-       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT);
+       new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
        if (unlikely(!new_addr)) {
                _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n", _dl_progname, symname);
                _dl_exit(1);
@@ -173,7 +173,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
        if (symtab_index) {
                symbol_addr = (ElfW(Addr))_dl_find_hash(symname, scope, tpnt,
-                                                           elf_machine_type_class(reloc_type));
+                                                           elf_machine_type_class(reloc_type), NULL);
                /*
                 * We want to allow undefined references to weak symbols - this
                 * might have been intentional.  We should not be linking local
index c97d554..3d54d8a 100644 (file)
@@ -57,7 +57,7 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 
        /* Get the address of the GOT entry.  */
        new_addr = _dl_find_hash (symname, tpnt->symbol_scope, tpnt,
-                                                         ELF_RTYPE_CLASS_PLT);
+                                                         ELF_RTYPE_CLASS_PLT, NULL);
        if (unlikely (!new_addr)) {
                _dl_dprintf (2, "%s: can't resolve symbol '%s'\n",
                                         _dl_progname, symname);
@@ -163,7 +163,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct dyn_elf *scope,
        if (symtab_index) {
                symbol_addr = (Elf32_Addr)
                        _dl_find_hash (symname, scope, tpnt,
-                                                  elf_machine_type_class (reloc_type));
+                                                  elf_machine_type_class (reloc_type), NULL);
 
                /*
                 * We want to allow undefined references to weak symbols - this might