diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-04 09:31:38 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-04 09:31:38 +0000 |
commit | 48118d023884b6ee7907bfa7b61a4dfb95eb06b5 (patch) | |
tree | 3c9e610ec87b3a7318d5a7e71a84a3cb76aae8c6 /gcc/config/sol2.h | |
parent | 743164d217400afc91318beeb2e984d8eedf21dc (diff) | |
download | gcc-48118d023884b6ee7907bfa7b61a4dfb95eb06b5.tar.gz |
Ensure libgcc_s unwinder is always used on 64-bit Solaris 10+/x86 (PR target/59788)
gcc:
PR target/59788
* config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
(LINK_SPEC): Use it for -shared, -shared-libgcc.
libgcc:
PR target/59788
* config/t-slibgcc-sld (libgcc-unwind.map): New target.
(install-libgcc-unwind-map-forbuild): New target.
(all): Depend on install-libgcc-unwind-map-forbuild.
(install-libgcc-unwind-map): New target.
(install): Depend on install-libgcc-unwind-map.
gcc/testsuite:
PR target/59788
* g++.dg/eh/unwind-direct.C: New test.
toplevel:
PR target/59788
* ltmain.sh (opt_duplicate_compiler_generated_deps): Enable on
*solaris2*.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207454 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sol2.h')
-rw-r--r-- | gcc/config/sol2.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index a023cfed0d9..2a657db59c1 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -174,12 +174,21 @@ along with GCC; see the file COPYING3. If not see #define RDYNAMIC_SPEC "--export-dynamic" #endif +#ifndef USE_GLD +/* With Sun ld, use mapfile to enforce direct binding to libgcc_s unwinder. */ +#define LINK_LIBGCC_MAPFILE_SPEC \ + "%{shared|shared-libgcc:-M %slibgcc-unwind.map}" +#else +/* GNU ld doesn't support direct binding. */ +#define LINK_LIBGCC_MAPFILE_SPEC "" +#endif + #undef LINK_SPEC #define LINK_SPEC \ "%{h*} %{v:-V} \ %{!shared:%{!static:%{rdynamic: " RDYNAMIC_SPEC "}}} \ %{static:-dn -Bstatic} \ - %{shared:-G -dy %{!mimpure-text:-z text}} \ + %{shared:-G -dy %{!mimpure-text:-z text}} " LINK_LIBGCC_MAPFILE_SPEC " \ %{symbolic:-Bsymbolic -G -dy -z text} \ %(link_arch) \ %{Qy:} %{!Qn:-Qy}" |