diff --git a/ChangeLog b/ChangeLog index 3333576afc7..9abb3425fba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-03-16 Joseph Myers + + * configure.ac (--with-host-libstdcxx): New option. + * configure: Regenerate. + 2009-03-12 Joern Rennecke * MAINTAINERS: Move myself into the write after approval list. diff --git a/configure b/configure index d66bd53db1a..fc95fec8450 100755 --- a/configure +++ b/configure @@ -969,6 +969,8 @@ Optional Packages: plus --with-gmp-lib=PATH/lib --with-gmp-include=PATH specify directory for installed GMP include files --with-gmp-lib=PATH specify directory for the installed GMP library + --with-host-libstdcxx=L Use linker arguments L to link with libstdc++ + when linking with PPL --with-ppl=PATH Specify prefix directory for the installed PPL package Equivalent to --with-ppl-include=PATH/include plus --with-ppl-lib=PATH/lib @@ -4808,11 +4810,26 @@ fi +# Allow host libstdc++ to be specified for static linking with PPL. + +# Check whether --with-host-libstdcxx or --without-host-libstdcxx was given. +if test "${with_host_libstdcxx+set}" = set; then + withval="$with_host_libstdcxx" + +fi; + +case $with_host_libstdcxx in + no|yes) + { { echo "$as_me:$LINENO: error: -with-host-libstdcxx needs an argument" >&5 +echo "$as_me: error: -with-host-libstdcxx needs an argument" >&2;} + { (exit 1); exit 1; }; } + ;; +esac # Check for PPL ppl_major_version=0 ppl_minor_version=10 -ppllibs=" -lppl_c -lppl -lgmpxx " +ppllibs=" -lppl_c -lppl -lgmpxx $with_host_libstdcxx " pplinc= @@ -4839,7 +4856,7 @@ case $with_ppl in ppllibs= ;; *) - ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx" + ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx $with_host_libstdcxx" pplinc="-I$with_ppl/include $pplinc" LIBS="$ppllibs $LIBS" ;; @@ -4848,11 +4865,11 @@ if test "x$with_ppl_include" != x; then pplinc="-I$with_ppl_include $pplinc" fi if test "x$with_ppl_lib" != x; then - ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx" + ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx $with_host_libstdcxx" LIBS="$ppllibs $LIBS" fi if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then - ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/.libs -L$$r/$(HOST_SUBDIR)/ppl/_libs -lppl_c -lppl -lgmpxx ' + ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/.libs -L$$r/$(HOST_SUBDIR)/ppl/_libs -lppl_c -lppl -lgmpxx '"$with_host_libstdcxx " pplinc='-I$$r/$(HOST_SUBDIR)/ppl/include -I$$s/ppl/include ' LIBS="$ppllibs $LIBS" fi diff --git a/configure.ac b/configure.ac index 52e535678b2..9ac0824a5ed 100644 --- a/configure.ac +++ b/configure.ac @@ -1315,11 +1315,20 @@ fi AC_SUBST(gmplibs) AC_SUBST(gmpinc) +# Allow host libstdc++ to be specified for static linking with PPL. +AC_ARG_WITH(host-libstdcxx, [ --with-host-libstdcxx=L Use linker arguments L to link with libstdc++ + when linking with PPL]) + +case $with_host_libstdcxx in + no|yes) + AC_MSG_ERROR([-with-host-libstdcxx needs an argument]) + ;; +esac # Check for PPL ppl_major_version=0 ppl_minor_version=10 -ppllibs=" -lppl_c -lppl -lgmpxx " +ppllibs=" -lppl_c -lppl -lgmpxx $with_host_libstdcxx " pplinc= AC_ARG_WITH(ppl, [ --with-ppl=PATH Specify prefix directory for the installed PPL package @@ -1333,7 +1342,7 @@ case $with_ppl in ppllibs= ;; *) - ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx" + ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx $with_host_libstdcxx" pplinc="-I$with_ppl/include $pplinc" LIBS="$ppllibs $LIBS" ;; @@ -1342,11 +1351,11 @@ if test "x$with_ppl_include" != x; then pplinc="-I$with_ppl_include $pplinc" fi if test "x$with_ppl_lib" != x; then - ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx" + ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx $with_host_libstdcxx" LIBS="$ppllibs $LIBS" fi if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then - ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/.libs -L$$r/$(HOST_SUBDIR)/ppl/_libs -lppl_c -lppl -lgmpxx ' + ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/.libs -L$$r/$(HOST_SUBDIR)/ppl/_libs -lppl_c -lppl -lgmpxx '"$with_host_libstdcxx " pplinc='-I$$r/$(HOST_SUBDIR)/ppl/include -I$$s/ppl/include ' LIBS="$ppllibs $LIBS" fi diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8a23581a9a..20483782ae8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2009-03-16 Joseph Myers + + * doc/install.texi (--with-host-libstdcxx): Document. + 2009-03-14 Anatoly Sokolov PR target/34299 diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index b0c2e849c16..6bdfbece981 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1476,6 +1476,15 @@ you can explicitly specify the directory where they are installed shorthand assumptions are not correct, you can use the explicit include and lib options directly. +@item --with-host-libstdcxx=@var{linker-args} +If you are linking with a static copy of PPL, you can use this option +to specify how the linker should find the standard C++ library used +internally by PPL. Typical values of @var{linker-args} might be +@samp{-lstdc++} or @samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}. If you are +linking with a shared copy of PPL, you probably do not need this +option; shared library dependencies will cause the linker to search +for the standard C++ library automatically. + @item --with-debug-prefix-map=@var{map} Convert source directory names using @option{-fdebug-prefix-map} when building runtime libraries. @samp{@var{map}} is a space-separated