[PATCH] x86_64-pc-solaris2.* GNU ld breakage due to _sol2 emulation detection

2012-07-26 Thread Fabian Groffen
Hi,

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.

Regards,
Fabian


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

-- 
Fabian Groffen
Gentoo on a different level
Unbreak x86_64-pc-solaris2.1[01], it IS 64-bits too.  Without this,
libtool thinks the linker is called ld_sol2.

--- libltdl/m4/libtool.m4
+++ libltdl/m4/libtool.m4
@@ -1383,7 +1383,7 @@
   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*)


signature.asc
Description: Digital signature


Re: [PATCH] disable de-duplication of postdeps on Solaris

2012-07-26 Thread Bob Friesenhahn

On Thu, 26 Jul 2012, Fabian Groffen wrote:


Hi,

I tracked down an issue on Solaris/OpenSolaris/OpenIndiana where C++
libraries built by libtool would cause abort/traps when an exception was
being thrown.


This issue has been causing problems for my C++ library for many 
years.  There is even a libtool test case to replicate it.  However, 
it seems that you may have found the cause and the solution for it (I 
have not tested to verify).


This used to be an issue for x86-64 FreeBSD.  I have also observed it 
with some MinGW installations.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/