diff options
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/NEWS | 3 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 23 |
3 files changed, 24 insertions, 11 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 2cb4fd0..b525e77 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2006-02-08 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/2290 + * NEWS: Updated for the Linux linker search order change. + + * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Call + gld${EMULATION_NAME}_check_ld_so_conf before checking default + search directories for DT_NEEDED entries. + 2006-02-07 Paul Brook <paul@codesourcery.com> * emultempl/armelf.em: Include elf/arm.h. @@ -1,5 +1,8 @@ -*- text -*- +* Modify the Linux linker to seach /etc/ld.so.conf first before + checking default search directories for DT_NEEDED entries. + * PE-COFF: Forward exports from DLL's can now be specified in .def files passed directly to ld. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 703248a..048917f 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -919,6 +919,18 @@ cat >>e${EMULATION_NAME}.c <<EOF EOF fi +if [ "x${USE_LIBPATH}" = xyes ] ; then + case ${target} in + *-*-linux-* | *-*-k*bsd*-*) + # Linux + cat >>e${EMULATION_NAME}.c <<EOF + if (gld${EMULATION_NAME}_check_ld_so_conf (l->name, force)) + break; + +EOF + ;; + esac +fi cat >>e${EMULATION_NAME}.c <<EOF len = strlen (l->name); for (search = search_head; search != NULL; search = search->next) @@ -937,17 +949,6 @@ cat >>e${EMULATION_NAME}.c <<EOF if (search != NULL) break; EOF -if [ "x${USE_LIBPATH}" = xyes ] ; then - case ${target} in - *-*-linux-* | *-*-k*bsd*-*) - cat >>e${EMULATION_NAME}.c <<EOF - if (gld${EMULATION_NAME}_check_ld_so_conf (l->name, force)) - break; -EOF - # Linux - ;; - esac -fi cat >>e${EMULATION_NAME}.c <<EOF } |