From 0646b0597b3e675c23938fae830dba69aefc6b33 Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Wed, 3 Aug 2005 23:17:06 +0000 Subject: [PATCH] configure.ac: Don't use GCC_NO_EXECUTABLES or clear GLIBCXX_IS_NATIVE on Darwin crosses. * configure.ac: Don't use GCC_NO_EXECUTABLES or clear GLIBCXX_IS_NATIVE on Darwin crosses. * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Don't skip configuring the testsuite just because there's no symbol versioning. * configure: Regenerate. From-SVN: r102718 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/acinclude.m4 | 22 +++++++++----------- libstdc++-v3/configure | 43 ++++++++++++++++++++++++++------------- libstdc++-v3/configure.ac | 19 ++++++++++++++++- 4 files changed, 63 insertions(+), 27 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6a85c2700ce..abb466fe981 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,11 @@ 2005-08-03 Geoffrey Keating + * configure.ac: Don't use GCC_NO_EXECUTABLES or clear + GLIBCXX_IS_NATIVE on Darwin crosses. + * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Don't skip configuring + the testsuite just because there's no symbol versioning. + * configure: Regenerate. + * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Print status messages. (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Likewise. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index d8c433ec915..d66970220a4 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -554,24 +554,22 @@ dnl Substs: dnl baseline_dir dnl AC_DEFUN([GLIBCXX_CONFIGURE_TESTSUITE], [ - if $GLIBCXX_IS_NATIVE && test $is_hosted = yes && - test $enable_symvers != no; then + if $GLIBCXX_IS_NATIVE ; then # Do checks for resource limit functions. GLIBCXX_CHECK_SETRLIMIT # Look for setenv, so that extended locale tests can be performed. GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv) + fi - if test $enable_symvers = no; then - enable_abi_check=no - else - case "$host" in - *-*-cygwin*) - enable_abi_check=no ;; - *) - enable_abi_check=yes ;; - esac - fi + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes && + test $enable_symvers != no; then + case "$host" in + *-*-cygwin*) + enable_abi_check=no ;; + *) + enable_abi_check=yes ;; + esac else # Only build this as native, since automake does not understand # CXX_FOR_BUILD. diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 4c71e9578d3..1a32ed4d2f7 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -1542,7 +1542,24 @@ target_alias=${target_alias-$host_alias} if test "$build" != "$host"; then # We are being configured with some form of cross compiler. GLIBCXX_IS_NATIVE=false + case "$host","$target" in + # Darwin crosses can use the host system's libraries and headers, + # because of the fat library support. Of course, it must be the + # same version of Darwin on both sides. Allow the user to + # just say --target=foo-darwin without a version number to mean + # "the version on this system". + *-*-darwin*,*-*-darwin*) + hostos=`echo $host | sed 's/.*-darwin/darwin/'` + targetos=`echo $target | sed 's/.*-darwin/darwin/'` + if test $hostos = $targetos -o $targetos = darwin ; then + GLIBCXX_IS_NATIVE=true + fi + ;; + *) + + ;; + esac else GLIBCXX_IS_NATIVE=true fi @@ -4439,7 +4456,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 4442 "configure"' > conftest.$ac_ext + echo '#line 4459 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -5059,7 +5076,7 @@ fi; # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 5062 "configure" +#line 5079 "configure" struct S { ~S(); }; void bar(); void foo() @@ -87579,8 +87596,7 @@ echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;} # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE. - if $GLIBCXX_IS_NATIVE && test $is_hosted = yes && - test $enable_symvers != no; then + if $GLIBCXX_IS_NATIVE ; then # Do checks for resource limit functions. setrlimit_have_headers=yes @@ -88302,17 +88318,16 @@ done fi + fi - if test $enable_symvers = no; then - enable_abi_check=no - else - case "$host" in - *-*-cygwin*) - enable_abi_check=no ;; - *) - enable_abi_check=yes ;; - esac - fi + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes && + test $enable_symvers != no; then + case "$host" in + *-*-cygwin*) + enable_abi_check=no ;; + *) + enable_abi_check=yes ;; + esac else # Only build this as native, since automake does not understand # CXX_FOR_BUILD. diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 9a36f095002..d350e6e9910 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -41,7 +41,24 @@ target_alias=${target_alias-$host_alias} if test "$build" != "$host"; then # We are being configured with some form of cross compiler. GLIBCXX_IS_NATIVE=false - GCC_NO_EXECUTABLES + case "$host","$target" in + # Darwin crosses can use the host system's libraries and headers, + # because of the fat library support. Of course, it must be the + # same version of Darwin on both sides. Allow the user to + # just say --target=foo-darwin without a version number to mean + # "the version on this system". + *-*-darwin*,*-*-darwin*) + hostos=`echo $host | sed 's/.*-darwin/darwin/'` + targetos=`echo $target | sed 's/.*-darwin/darwin/'` + if test $hostos = $targetos -o $targetos = darwin ; then + GLIBCXX_IS_NATIVE=true + fi + ;; + + *) + GCC_NO_EXECUTABLES + ;; + esac else GLIBCXX_IS_NATIVE=true fi