]> Savannah Git Hosting - gnulib.git/commitdiff
threadlib: Revert commit from 2018-06-25. We now have a better fix.
authorBruno Haible <bruno@clisp.org>
Thu, 24 Jan 2019 03:47:08 +0000 (04:47 +0100)
committerBruno Haible <bruno@clisp.org>
Thu, 24 Jan 2019 03:47:46 +0000 (04:47 +0100)
* m4/threadlib.m4 (gl_THREADLIB_BODY): Don't attempt to defeat a
preceding -Wl,--as-needed option. Don't check whether the linker
supports --as-needed/--no-as-needed and --push-state/--pop-state.

ChangeLog
m4/threadlib.m4

index f2006e57e592e7edae19d20a0e1f89d516755e0e..babbbc88d845e11b4a0e04e5fafe73ca3f2341c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-01-23  Bruno Haible  <bruno@clisp.org>
+
+       threadlib: Revert commit from 2018-06-25. We now have a better fix.
+       * m4/threadlib.m4 (gl_THREADLIB_BODY): Don't attempt to defeat a
+       preceding -Wl,--as-needed option. Don't check whether the linker
+       supports --as-needed/--no-as-needed and --push-state/--pop-state.
+
 2019-01-23  Bruno Haible  <bruno@clisp.org>
 
        thread: Force linking with -lpthread, even when --as-needed is in use.
index f7841b60999c175442a0f94ba893fa0b09a994ce..bfc3bac853693c22836877f911a1400210d37159 100644 (file)
@@ -1,4 +1,4 @@
-# threadlib.m4 serial 15
+# threadlib.m4 serial 16
 dnl Copyright (C) 2005-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -151,36 +151,6 @@ int main ()
          *" -static "*) gl_cv_have_weak=no ;;
        esac
       ])
-    dnl Check whether the linker supports the --as-needed/--no-as-needed options.
-    dnl Assume GCC, so that we can use the -Wl option.
-    AC_CACHE_CHECK([whether the linker supports --as-needed],
-      [gl_cv_linker_have_as_needed],
-      [if test -n "$GCC"; then
-         gl_saved_ldflags="$LDFLAGS"
-         LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed"
-         AC_LINK_IFELSE([AC_LANG_PROGRAM()],
-           [gl_cv_linker_have_as_needed=yes],
-           [gl_cv_linker_have_as_needed=no])
-         LDFLAGS="$gl_saved_ldflags"
-       else
-         gl_cv_linker_have_as_needed=no
-       fi
-      ])
-    dnl Check whether the linker supports the --push-state/--pop-state options.
-    dnl Assume GCC, so that we can use the -Wl option.
-    AC_CACHE_CHECK([whether the linker supports --push-state],
-      [gl_cv_linker_have_push_state],
-      [if test -n "$GCC"; then
-         gl_saved_ldflags="$LDFLAGS"
-         LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state"
-         AC_LINK_IFELSE([AC_LANG_PROGRAM()],
-           [gl_cv_linker_have_push_state=yes],
-           [gl_cv_linker_have_push_state=no])
-         LDFLAGS="$gl_saved_ldflags"
-       else
-         gl_cv_linker_have_push_state=no
-       fi
-      ])
     if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
       # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
       # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
@@ -259,32 +229,6 @@ int main ()
                 [Define if references to the POSIX multithreading library should be made weak.])
               LIBTHREAD=
               LTLIBTHREAD=
-              dnl On platforms where GCC enables --as-needed by default, attempt
-              dnl to make sure that LIBMULTITHREAD really links with -lpthread.
-              dnl Otherwise linking with LIBMULTITHREAD has no effect; then
-              dnl the weak symbols are not defined and thus evaluate to NULL.
-              case "$LIBMULTITHREAD" in
-                "") ;;
-                -pthread)
-                  if test $gl_cv_linker_have_as_needed = yes; then
-                    if test $gl_cv_linker_have_push_state = yes; then
-                      LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state"
-                    else
-                      LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread"
-                    fi
-                  fi
-                  ;;
-                *)
-                  if test $gl_cv_linker_have_as_needed = yes; then
-                    if test $gl_cv_linker_have_push_state = yes; then
-                      LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
-                    else
-                      LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
-                    fi
-                  fi
-                  ;;
-              esac
-              # TODO: May need to modify LTLIBMULTITHREAD similarly.
             fi
           fi
         fi
@@ -317,18 +261,6 @@ int main ()
               [Define if references to the old Solaris multithreading library should be made weak.])
             LIBTHREAD=
             LTLIBTHREAD=
-            dnl On platforms where GCC enables --as-needed by default, attempt
-            dnl to make sure that LIBMULTITHREAD really links with -lthread.
-            dnl Otherwise linking with LIBMULTITHREAD has no effect; then
-            dnl the weak symbols are not defined and thus evaluate to NULL.
-            if test $gl_cv_linker_have_as_needed = yes; then
-              if test $gl_cv_linker_have_push_state = yes; then
-                LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
-              else
-                LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
-              fi
-            fi
-            # TODO: May need to modify LTLIBMULTITHREAD similarly.
           fi
         fi
       fi
@@ -357,18 +289,6 @@ int main ()
               [Define if references to the GNU Pth multithreading library should be made weak.])
             LIBTHREAD=
             LTLIBTHREAD=
-            dnl On platforms where GCC enables --as-needed by default, attempt
-            dnl to make sure that LIBMULTITHREAD really links with -lpth.
-            dnl Otherwise linking with LIBMULTITHREAD has no effect; then
-            dnl the weak symbols are not defined and thus evaluate to NULL.
-            if test $gl_cv_linker_have_as_needed = yes; then
-              if test $gl_cv_linker_have_push_state = yes; then
-                LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
-              else
-                LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
-              fi
-            fi
-            # TODO: May need to modify LTLIBMULTITHREAD similarly.
           fi
         fi
       else