diff options
author | Florian Weimer <fweimer@redhat.com> | 2015-10-26 09:41:10 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2015-10-26 09:41:10 +0100 |
commit | d337ceb76d898935560dc264cf2ad36b17017db7 (patch) | |
tree | 84cb919ecbbd180c08340109d723ecf84ec198b3 | |
parent | 6d834d2216bcc733fa04c5a59b5ac6f6f1134f2b (diff) | |
download | glibc-d337ceb76d898935560dc264cf2ad36b17017db7.zip glibc-d337ceb76d898935560dc264cf2ad36b17017db7.tar.gz glibc-d337ceb76d898935560dc264cf2ad36b17017db7.tar.bz2 |
Use the CXX compiler only if it can create dynamic and static programs
* configure.ac (CXX): Clear the variable if the C++ toolchain does
not support static linking.
* configure: Regenerate.
-rw-r--r-- | ChangeLog | 6 | ||||
-rwxr-xr-x | configure | 25 | ||||
-rw-r--r-- | configure.ac | 17 |
3 files changed, 48 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2015-10-26 Florian Weimer <fweimer@redhat.com> + + * configure.ac (CXX): Clear the variable if the C++ toolchain does + not support static linking. + * configure: Regenerate. + 2015-10-23 Joseph Myers <joseph@codesourcery.com> * math/libm-test.inc (check_float_internal): Do not special-case @@ -3173,6 +3173,7 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +# Default, dynamic case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3191,6 +3192,30 @@ else fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +# Static case. +old_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -static" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <iostream> + +int +main() +{ + std::cout << "Hello, world!"; + return 0; +} + +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +else + libc_cv_cxx_link_ok=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LDFLAGS="$old_LDFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' diff --git a/configure.ac b/configure.ac index e502aa5..3c7f6c0 100644 --- a/configure.ac +++ b/configure.ac @@ -57,9 +57,26 @@ AC_PROG_CXX # It's useless to us if it can't link programs (e.g. missing -lstdc++). AC_CACHE_CHECK([whether $CXX can link programs], libc_cv_cxx_link_ok, [dnl AC_LANG_PUSH([C++]) +# Default, dynamic case. AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [libc_cv_cxx_link_ok=yes], [libc_cv_cxx_link_ok=no]) +# Static case. +old_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -static" +AC_LINK_IFELSE([AC_LANG_SOURCE([ +#include <iostream> + +int +main() +{ + std::cout << "Hello, world!"; + return 0; +} +])], + [], + [libc_cv_cxx_link_ok=no]) +LDFLAGS="$old_LDFLAGS" AC_LANG_POP([C++])]) AS_IF([test $libc_cv_cxx_link_ok != yes], [CXX=]) |