aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.

* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
cp/
        * g++-spec.c (LIBSTDCXX_STATIC): Default to NULL.
        (lang_specific_driver): Always allocate extra argument.
        Add LIBSTDCXX_STATIC to arglist if defined and linking
        statically.

From-SVN: r148546
This commit is contained in:
David Edelsohn 2009-06-16 18:51:54 +00:00 committed by David Edelsohn
parent c58c92f5a6
commit a322799deb
4 changed files with 25 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2009-06-16 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
2009-06-16 David Edelsohn <edelsohn@gnu.org>
* doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.

View File

@ -148,7 +148,7 @@
%{p:-L%R/lib/profiled -L%R/usr/lib/profiled} %{!shared:%{g*:-lg}} -lc"
/* Static linking with shared libstdc++ requires libsupc++ as well. */
#define LIBSTDCXX_STATIC "-lstdc++ -lsupc++"
#define LIBSTDCXX_STATIC "-lsupc++"
/* This now supports a natural alignment mode. */
/* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */

View File

@ -1,3 +1,10 @@
2009-06-16 David Edelsohn <edelsohn@gnu.org>
* g++-spec.c (LIBSTDCXX_STATIC): Default to NULL.
(lang_specific_driver): Always allocate extra argument.
Add LIBSTDCXX_STATIC to arglist if defined and linking
statically.
2009-06-16 Ian Lance Taylor <iant@google.com>
* Make-lang.in (cp/class.o): Depend upon gt-cp-class.h.

View File

@ -45,7 +45,7 @@ along with GCC; see the file COPYING3. If not see
#define LIBSTDCXX_PROFILE LIBSTDCXX
#endif
#ifndef LIBSTDCXX_STATIC
#define LIBSTDCXX_STATIC LIBSTDCXX
#define LIBSTDCXX_STATIC NULL
#endif
void
@ -259,8 +259,9 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
shared_libgcc = 0;
#endif
/* Make sure to have room for the trailing NULL argument. */
num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1;
/* Make sure to have room for the trailing NULL argument.
Add one for shared_libgcc or extra static library. */
num_args = argc + added + need_math + (library > 0) + 2;
arglist = XNEWVEC (const char *, num_args);
i = 0;
@ -318,8 +319,15 @@ 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] = shared_libgcc == 0 ? LIBSTDCXX_STATIC
: saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
if (arglist[j][0] != '-' || arglist[j][1] == 'l')
added_libraries++;
j++;
}
/* Add target-dependent static library, if necessary. */
if (shared_libgcc == 0 && LIBSTDCXX_STATIC != NULL)
{
arglist[j] = LIBSTDCXX_STATIC;
if (arglist[j][0] != '-' || arglist[j][1] == 'l')
added_libraries++;
j++;