X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=libgfortran%2Facinclude.m4;h=30b8b1a629198c7f5570798655dd1a3ef6adc1b3;hb=650a202b472b02639e1ddaf424d69dd1ffaacd02;hp=92e027177b5e89c22ce16fa76d6a2c053f17ad98;hpb=2aadeae27f225b6b0624a534de16106fb1d2a546;p=gcc.git diff --git a/libgfortran/acinclude.m4 b/libgfortran/acinclude.m4 index 92e027177b5..30b8b1a6291 100644 --- a/libgfortran/acinclude.m4 +++ b/libgfortran/acinclude.m4 @@ -1,5 +1,6 @@ m4_include(../config/acx.m4) m4_include(../config/no-executables.m4) +m4_include(../config/math.m4) dnl Check that we have a working GNU Fortran compiler AC_DEFUN([LIBGFOR_WORKING_GFORTRAN], [ @@ -83,17 +84,6 @@ if (foovar > 10) return __sync_add_and_fetch (&foovar, -1);]])], [Define to 1 if the target supports __sync_fetch_and_add]) fi]) -dnl Check if threads are supported. -AC_DEFUN([LIBGFOR_CHECK_GTHR_DEFAULT], [ - AC_CACHE_CHECK([configured target thread model], - libgfor_cv_target_thread_file, [ -libgfor_cv_target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`]) - - if test $libgfor_cv_target_thread_file != single; then - AC_DEFINE(HAVE_GTHR_DEFAULT, 1, - [Define if the compiler has a thread header that is non single.]) - fi]) - dnl Check for pragma weak. AC_DEFUN([LIBGFOR_GTHREAD_WEAK], [ AC_CACHE_CHECK([whether pragma weak works], @@ -110,7 +100,7 @@ void foo (void); [Define to 1 if the target supports #pragma weak]) fi case "$host" in - *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | alpha*-dec-osf* ) + *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* ) AC_DEFINE(GTHREAD_USE_WEAK, 0, [Define to 0 if the target shouldn't use #pragma weak]) ;; @@ -130,7 +120,7 @@ int main () { int fd; - fd = open ("testfile", O_RDWR | O_CREAT, S_IWRITE | S_IREAD); + fd = open ("testfile", O_RDWR | O_CREAT, S_IWUSR | S_IRUSR); if (fd <= 0) return 0; if (unlink ("testfile") == -1) @@ -138,7 +128,7 @@ int main () write (fd, "This is a test\n", 15); close (fd); - if (open ("testfile", O_RDONLY, S_IWRITE | S_IREAD) == -1 && errno == ENOENT) + if (open ("testfile", O_RDONLY) == -1 && errno == ENOENT) return 0; else return 1; @@ -267,18 +257,6 @@ __mingw_snprintf (NULL, 0, "%d\n", 1); fi ]) -dnl Check whether we have a broken powf implementation -AC_DEFUN([LIBGFOR_CHECK_FOR_BROKEN_POWF], [ - AC_CACHE_CHECK([whether powf is broken], libgfor_cv_have_broken_powf, [ -case "${target}" in - hppa*64*-*-hpux*) libgfor_cv_have_broken_powf=yes ;; - *) libgfor_cv_have_broken_powf=no;; -esac]) - if test x"$libgfor_cv_have_broken_powf" = xyes; then - AC_DEFINE(HAVE_BROKEN_POWF, 1, [Define if powf is broken.]) - fi -]) - dnl Check whether we have a __float128 type AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [ LIBQUADSPEC= @@ -318,7 +296,7 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [ if test "x$libgfor_cv_have_float128" = xyes; then AC_DEFINE(HAVE_FLOAT128, 1, [Define if have a usable __float128 type.]) - dnl Check whether -Wl,--as-needed is supported + dnl Check whether -Wl,--as-needed resp. -Wl,-zignore is supported dnl dnl Turn warnings into error to avoid testsuite breakage. So enable dnl AC_LANG_WERROR, but there's currently (autoconf 2.64) no way to turn @@ -326,23 +304,39 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [ dnl AC_PATH_XTRA. dnl Cf. http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01889.html ac_xsave_[]_AC_LANG_ABBREV[]_werror_flag=$ac_[]_AC_LANG_ABBREV[]_werror_flag - AC_CACHE_CHECK([whether --as-needed works], + AC_CACHE_CHECK([whether --as-needed/-z ignore works], [libgfor_cv_have_as_needed], [ + # Test for native Solaris options first. + # No whitespace after -z to pass it through -Wl. + libgfor_cv_as_needed_option="-zignore" + libgfor_cv_no_as_needed_option="-zrecord" save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,--as-needed -lm -Wl,--no-as-needed" + LDFLAGS="$LDFLAGS -Wl,$libgfor_cv_as_needed_option -lm -Wl,$libgfor_cv_no_as_needed_option" libgfor_cv_have_as_needed=no AC_LANG_WERROR AC_LINK_IFELSE([AC_LANG_PROGRAM([])], [libgfor_cv_have_as_needed=yes], [libgfor_cv_have_as_needed=no]) LDFLAGS="$save_LDFLAGS" + if test "x$libgfor_cv_have_as_needed" = xno; then + libgfor_cv_as_needed_option="--as-needed" + libgfor_cv_no_as_needed_option="--no-as-needed" + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,$libgfor_cv_as_needed_option -lm -Wl,$libgfor_cv_no_as_needed_option" + libgfor_cv_have_as_needed=no + AC_LANG_WERROR + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [libgfor_cv_have_as_needed=yes], + [libgfor_cv_have_as_needed=no]) + LDFLAGS="$save_LDFLAGS" + fi ac_[]_AC_LANG_ABBREV[]_werror_flag=$ac_xsave_[]_AC_LANG_ABBREV[]_werror_flag ]) dnl For static libgfortran linkage, depend on libquadmath only if needed. if test "x$libgfor_cv_have_as_needed" = xyes; then - LIBQUADSPEC="%{static-libgfortran:--as-needed} -lquadmath %{static-libgfortran:--no-as-needed}" + LIBQUADSPEC="%{static-libgfortran:$libgfor_cv_as_needed_option} -lquadmath %{static-libgfortran:$libgfor_cv_no_as_needed_option}" else LIBQUADSPEC="-lquadmath" fi @@ -372,3 +366,29 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [ dnl We need a conditional for the Makefile AM_CONDITIONAL(LIBGFOR_BUILD_QUAD, [test "x$libgfor_cv_have_float128" = xyes]) ]) + + +dnl Check whether we have strerror_r +AC_DEFUN([LIBGFOR_CHECK_STRERROR_R], [ + dnl Check for three-argument POSIX version of strerror_r + ac_save_CFLAGS="$CFLAGS" + CFLAGS="-Wimplicit-function-declaration -Werror" + AC_TRY_COMPILE([#define _GNU_SOURCE 1 + #include + #include ], + [char s[128]; strerror_r(5, s, 128);], + AC_DEFINE(HAVE_STRERROR_R, 1, + [Define if strerror_r is available in .]),) + CFLAGS="$ac_save_CFLAGS" + + dnl Check for two-argument version of strerror_r (e.g. for VxWorks) + ac_save_CFLAGS="$CFLAGS" + CFLAGS="-Wimplicit-function-declaration -Werror" + AC_TRY_COMPILE([#define _GNU_SOURCE 1 + #include + #include ], + [char s[128]; strerror_r(5, s);], + AC_DEFINE(HAVE_STRERROR_R_2ARGS, 1, + [Define if strerror_r takes two arguments and is available in .]),) + CFLAGS="$ac_save_CFLAGS" +])