From 0042166636e474ce94da2dfe83360e2574b2a1ec Mon Sep 17 00:00:00 2001 From: Michael Wetherell Date: Wed, 24 Aug 2005 00:23:21 +0000 Subject: [PATCH 1/1] Workarounds for old versions of gcc on hpux: define __STDC_EXT__ when it is need and use -lpthread instead of -pthread when the latter is not supported. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- configure | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 37 ++++++++++++++++++++++- 2 files changed, 120 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 60d4d6e8cd..ce43f9f535 100755 --- a/configure +++ b/configure @@ -20079,6 +20079,86 @@ fi if test "x$wx_largefile" = "xyes"; then if test "x$ac_cv_sys_file_offset_bits" = "x64"; then WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" + + if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then + echo "$as_me:$LINENO: checking if -D__STDC_EXT__ is required" >&5 +echo $ECHO_N "checking if -D__STDC_EXT__ is required... $ECHO_C" >&6 +if test "${wx_cv_STDC_EXT_required+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +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 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + #ifndef __STDC_EXT__ + choke me + #endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + wx_cv_STDC_EXT_required=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +wx_cv_STDC_EXT_required=yes + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +fi +echo "$as_me:$LINENO: result: $wx_cv_STDC_EXT_required" >&5 +echo "${ECHO_T}$wx_cv_STDC_EXT_required" >&6 + if test "x$wx_cv_STDC_EXT_required" = "xyes"; then + CXXFLAGS="$CXXFLAGS -D__STDC_EXT__" + fi + fi else WX_LARGEFILE_FLAGS="-D_LARGE_FILES" fi @@ -34835,7 +34915,10 @@ echo "$as_me: WARNING: BeOS threads are not yet supported... disabled" >&2;} THREAD_OPTS="pthreads" ;; *-hp-hpux* ) - if test "x$GCC" != "xyes"; then + if test "x$GCC" = "xyes"; then + $CXX -dumpspecs | grep 'pthread:' >/dev/null || + THREAD_OPTS="" + else THREAD_OPTS="" fi ;; diff --git a/configure.in b/configure.in index aaa5976fc5..48e3f3edac 100644 --- a/configure.in +++ b/configure.in @@ -1872,6 +1872,37 @@ dnl problems if test "x$wx_largefile" = "xyes"; then if test "x$ac_cv_sys_file_offset_bits" = "x64"; then WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" + + dnl We get "Large Files (ILP32) not supported in strict ANSI mode." + dnl #error from HP standard headers unless __STDC_EXT__ is defined. + dnl The compiler should define it automatically, but some old g++ + dnl versions don't define it, so test and add it if necessary. AFAIK + dnl the problem only affects the C++ compiler so it is added to + dnl CXXFLAGS only. + if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then + AC_CACHE_CHECK( + [if -D__STDC_EXT__ is required], + wx_cv_STDC_EXT_required, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE( + [], + [ + #ifndef __STDC_EXT__ + choke me + #endif + ], + wx_cv_STDC_EXT_required=no, + wx_cv_STDC_EXT_required=yes + ) + AC_LANG_RESTORE + ] + ) + if test "x$wx_cv_STDC_EXT_required" = "xyes"; then + CXXFLAGS="$CXXFLAGS -D__STDC_EXT__" + fi + fi else WX_LARGEFILE_FLAGS="-D_LARGE_FILES" fi @@ -4465,7 +4496,11 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then THREAD_OPTS="pthreads" ;; *-hp-hpux* ) - if test "x$GCC" != "xyes"; then + if test "x$GCC" = "xyes"; then + dnl g++ versions before 3.3.2 don't support -pthread. + $CXX -dumpspecs | grep 'pthread:' >/dev/null || + THREAD_OPTS="" + else dnl HP-UX aCC only gives a warning, not an error about dnl -pthread but it doesn't work and we have to use dnl -lpthread there -- 2.45.2