PowerPC: incorrect library search order
authorAlexey Neyman <stilor@att.net>
Mon, 13 Mar 2017 03:49:46 +0000 (20:49 -0700)
committerAlan Modra <amodra@gmail.com>
Mon, 13 Mar 2017 07:21:38 +0000 (17:51 +1030)
First, need to match against just the CPU name, not the whole triplet.
Otherwise, the test picks up "*le-*" pattern from x86_64-apple-darwin
triplet.

Second, it should be testing for $target, not $host. Host may be
little endian by default, and the sysroot directory layout shouldn't
depend on whether it is built on LE or BE machine.

* emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Set from target
cpu, not host.

ld/ChangeLog
ld/emulparams/elf32ppccommon.sh

index 86d9378cbb5ab310a7bc4099a68f9cb294ca8e3d..44e6895504fe201994eb95a4ad43c1b6a070d1a8 100644 (file)
@@ -1,3 +1,8 @@
+2017-03-13  Alexey Neyman  <stilor@att.net>
+
+       * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Set from target
+       cpu, not host.
+
 2017-03-11  Alan Modra  <amodra@gmail.com>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Add
index 1f54ef8056dce38e3b6ed90074f97337f1783422..d00cf68d894be9cd5d5438dddd91f44014e928d7 100644 (file)
@@ -44,11 +44,11 @@ fi
 
 # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
 # Similarly, look for 32 bit libraries in /lib32, /usr/lib32 etc.
-case "$host":"$EMULATION_NAME" in
-  *le-*:*64lppc*) LIBPATH_SUFFIX=64 ;;
-  *le-*:*32lppc*) LIBPATH_SUFFIX=32 ;;
-  *le-*:*64*) LIBPATH_SUFFIX=64be ;;
-  *le-*:*32*) LIBPATH_SUFFIX=32be ;;
+case `echo "$target" | sed -e 's/-.*//'`:"$EMULATION_NAME" in
+  *le:*64lppc*) LIBPATH_SUFFIX=64 ;;
+  *le:*32lppc*) LIBPATH_SUFFIX=32 ;;
+  *le:*64*) LIBPATH_SUFFIX=64be ;;
+  *le:*32*) LIBPATH_SUFFIX=32be ;;
   *:*64lppc*) LIBPATH_SUFFIX=64le ;;
   *:*32lppc*) LIBPATH_SUFFIX=32le ;;
   *:*64*) LIBPATH_SUFFIX=64 ;;