--- Begin Message ---
Subject: |
opt_duplicate_compiler_generated_deps is harmful on Solaris |
Date: |
Wed, 15 Jan 2014 13:59:11 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (usg-unix-v) |
As described in GCC bug PR target/59788
Mixing libc and libgcc_s unwinders on 64-bit Solaris 10+/x86 breaks EH
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
linking e.g. C++ code with -Wl,-Bdirect on 64-bit Solaris 10+/x86 causes
unwinding failures caused by mixing the libc and libgcc_s unwinders in a
single executable.
I've fixed this by a patch to cause every shared object to be linked
with a mapfile to force direct binding to the libgcc_s unwinder,
avoiding the harmful mixing. Unfortunately, for this change to work
requires to disable the opt_duplicate_compiler_generated_deps
optimization (included in that patch for the copy of libtool in the gcc
tree):
diff --git a/ltmain.sh b/ltmain.sh
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -976,7 +976,7 @@ func_enable_tag ()
case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc*)
+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* )
# don't eliminate duplications in $postdeps and $predeps
opt_duplicate_compiler_generated_deps=:
;;
I think that patch should go into upstream libtool as well, although
this won't help for all the copies of libtool already included in
released packages. As described in the PR, I'm uncertain how to move
forward here. Suggestions?
Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#16452: opt_duplicate_compiler_generated_deps is harmful on Solaris |
Date: |
Sat, 18 Jan 2014 10:18:39 +1300 |
Hi Rainer,
On Jan 16, 2014, at 1:59 AM, Rainer Orth <address@hidden> wrote:
> diff --git a/ltmain.sh b/ltmain.sh
> --- a/ltmain.sh
> +++ b/ltmain.sh
> @@ -976,7 +976,7 @@ func_enable_tag ()
>
>
> case $host in
> - *cygwin* | *mingw* | *pw32* | *cegcc*)
> + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* )
> # don't eliminate duplications in $postdeps and $predeps
> opt_duplicate_compiler_generated_deps=:
> ;;
>
> I think that patch should go into upstream libtool as well, although
> this won't help for all the copies of libtool already included in
> released packages. As described in the PR, I'm uncertain how to move
> forward here. Suggestions?
I took the liberty of writing a ChangeLog on your behalf.
Pushed, this will be in the incoming release as long as testing doesn't find
any issues. Thanks.
Cheers,
--
Gary V. Vaughan (gary AT gnu DOT org)
--- End Message ---