diff options
author | David Edelsohn <edelsohn@gnu.org> | 2008-11-06 15:32:40 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2008-11-06 10:32:40 -0500 |
commit | ce75e1dd3cb7ed3c45517c1f1409a087240bfd0b (patch) | |
tree | 54d1c55a9915de05d92840d3755e415d3f3bdf61 /gcc | |
parent | 66e62b4943dc28224c96f4986ed11a007180d7ea (diff) | |
download | gcc-ce75e1dd3cb7ed3c45517c1f1409a087240bfd0b.zip gcc-ce75e1dd3cb7ed3c45517c1f1409a087240bfd0b.tar.gz gcc-ce75e1dd3cb7ed3c45517c1f1409a087240bfd0b.tar.bz2 |
re PR target/26397 (Program crashes when rethrowing exception)
PR target/26397
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
cp/
* g++spec.c (LIBSTDCXX_STATIC): New.
(lang_spec_driver): Use LIBSTDCXX_STATIC when not shared_libgcc.
From-SVN: r141646
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/aix.h | 3 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/g++spec.c | 6 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 44b888e..3a8fe70 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-11-06 David Edelsohn <edelsohn@gnu.org> + + PR target/26397 + * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define. + 2008-11-06 Kazu Hirata <kazu@codesourcery.com> PR target/35574 diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index 4807298..4dc2e50 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -155,6 +155,9 @@ #define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\ %{p:-L/lib/profiled -L/usr/lib/profiled} %{!shared:%{g*:-lg}} -lc" +/* Static linking with shared libstdc++ requires libsupc++ as well. */ +#define LIBSTDCXX_STATIC "-lstdc++ -lsupc++" + /* This now supports a natural alignment mode. */ /* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */ #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 55a81ec..ec7a1aa 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2008-11-06 David Edelsohn <edelsohn@gnu.org> + + PR target/26397 + * g++spec.c (LIBSTDCXX_STATIC): New. + (lang_spec_driver): Use LIBSTDCXX_STATIC when not + shared_libgcc. + 2008-11-05 Fabien Chene <fabien.chene@gmail.com> PR c++/35219 diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c index a19a35f..c161e99a 100644 --- a/gcc/cp/g++spec.c +++ b/gcc/cp/g++spec.c @@ -44,6 +44,9 @@ along with GCC; see the file COPYING3. If not see #ifndef LIBSTDCXX_PROFILE #define LIBSTDCXX_PROFILE LIBSTDCXX #endif +#ifndef LIBSTDCXX_STATIC +#define LIBSTDCXX_STATIC LIBSTDCXX +#endif void lang_specific_driver (int *in_argc, const char *const **in_argv, @@ -315,7 +318,8 @@ lang_specific_driver (int *in_argc, const char *const **in_argv, /* Add `-lstdc++' if we haven't already done so. */ if (library > 0) { - arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; + arglist[j] = shared_libgcc == 0 ? LIBSTDCXX_STATIC + : saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; if (arglist[j][0] != '-' || arglist[j][1] == 'l') added_libraries++; j++; |