]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
libtool: Fix x86_64-pc-solaris2.* GNU ld breakage
authorFabian Groffen <grobian@gentoo.org>
Wed, 9 Oct 2013 21:44:15 +0000 (14:44 -0700)
committerBrooks Moses <bmoses@google.com>
Wed, 9 Oct 2013 21:44:15 +0000 (14:44 -0700)
Since commit [1] libtool tries to set a 64-bits target for GNU
ld.  However, it does so wrongly for x86_64-pc-solaris2.*
targets, causing libtool to believe the linker is called
ld_sol2.  There is no such thing, and it obviously breaks
things further down.  Some people wrongly assume there is
supposed to be an ld_sol2 on their systems, e.g. [2].

I think the original change is fragile, because it assumes it
has all CHOSTs matched, then appends _sol2.  In the wild,
people have used amd64-pc-solaris2* too, so perhaps it would
be safer if the code only appended _sol2 if there is actually
an explicit target set.

Anyhow, since the 64-bits sparc target is called sparc64-* or
sparcv9-*, the sparc case is already correctly handled, so in
the attached patch, I just added an x86_64-* case, although I
could imagine relaxing the i?86 case to *86*-pc-solaris2* too.

In any case, defaulting to a linker called ld_sol2 is wrong.

[1] http://lists.gnu.org/archive/html/libtool-commit/2011-02/
msg00000.html
[2] http://osdyson.org/issues/8

Copyright-paperwork-exempt: Yes

m4/libtool.m4

index 3cc1a4bf247ed723f987ee482371708debfa91e0..c02fb555e266d275a6076f70301f81ca7ee6b181 100644 (file)
@@ -1432,7 +1432,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)