public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in dev-cpp/gtest/files: configure-fix-pthread-linking.patch
@ 2012-11-02  5:09 Justin Bronder (jsbronder)
  0 siblings, 0 replies; only message in thread
From: Justin Bronder (jsbronder) @ 2012-11-02  5:09 UTC (permalink / raw
  To: gentoo-commits

jsbronder    12/11/02 05:09:23

  Added:                configure-fix-pthread-linking.patch
  Log:
  Fix #371647, no response from maintainer since Oct 17.
  
  (Portage version: 2.1.11.30/cvs/Linux x86_64, signed Manifest commit with key 4D7043C9)

Revision  Changes    Path
1.1                  dev-cpp/gtest/files/configure-fix-pthread-linking.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-cpp/gtest/files/configure-fix-pthread-linking.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-cpp/gtest/files/configure-fix-pthread-linking.patch?rev=1.1&content-type=text/plain

Index: configure-fix-pthread-linking.patch
===================================================================
From fb71154012e634a5e780e93af5434bcdafaf2b24 Mon Sep 17 00:00:00 2001
From: Justin Bronder <jsbronder@gmail.com>
Date: Mon, 15 Oct 2012 17:25:07 -0400
Subject: [PATCH] configure:  fix pthread linking

- Update the pthread check to make sure that we don't need -lpthread when
compiling with -nostdlib.

- Make sure that the necessary pthread library is passed to libtool.

Fixes:

$ ldd -r /usr/lib/libgtest.so
    linux-vdso.so.1 (0x00007fffe7dff000)
    libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007fbe09a9f000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fbe096f7000)
    libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007fbe094e1000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fbe091ee000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fbe0a005000)
undefined symbol: pthread_key_create    (/usr/lib/libgtest.so)
undefined symbol: pthread_getspecific   (/usr/lib/libgtest.so)
undefined symbol: pthread_key_delete    (/usr/lib/libgtest.so)
undefined symbol: pthread_setspecific   (/usr/lib/libgtest.so)
---
 Makefile.am       |    1 +
 m4/acx_pthread.m4 |   39 ++++++++++++++++++++++++++++++++++++++-
 2 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index cb350b7..db2606e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -181,6 +181,7 @@ endif
 lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la
 
 lib_libgtest_la_SOURCES = src/gtest-all.cc
+lib_libgtest_la_LIBADD = $(AM_LIBS)
 
 pkginclude_HEADERS = \
   include/gtest/gtest-death-test.h \
diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4
index 2cf20de..7fba4d9 100644
--- a/m4/acx_pthread.m4
+++ b/m4/acx_pthread.m4
@@ -339,7 +339,44 @@ if test "x$acx_pthread_ok" = xyes; then
 	   # so it's not safe to assume that we may use pthreads
 	   acx_pthread_ok=no
 	fi
-	
+   
+   AC_MSG_CHECKING([whether what we have so far is sufficient with -nostdlib])
+   CFLAGS="-nostdlib $CFLAGS"
+   # we need c with nostdlib
+   LIBS="$LIBS -lc" 
+   AC_TRY_LINK([#include <pthread.h>],
+         [pthread_t th; pthread_join(th, 0);
+         pthread_attr_init(0); pthread_cleanup_push(0, 0);
+         pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+         [done=yes],[done=no])
+      
+   if test "x$done" = xyes; then
+      AC_MSG_RESULT([yes])
+   else
+      AC_MSG_RESULT([no])
+   fi
+   
+   if test x"$done" = xno; then
+      AC_MSG_CHECKING([whether -lpthread saves the day])
+      LIBS="-lpthread $LIBS"
+      AC_TRY_LINK([#include <pthread.h>],
+         [pthread_t th; pthread_join(th, 0);
+         pthread_attr_init(0); pthread_cleanup_push(0, 0);
+         pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+         [done=yes],[done=no])
+
+      if test "x$done" = xyes; then
+         AC_MSG_RESULT([yes])
+         PTHREAD_LIBS="$PTHREAD_LIBS -lpthread"
+      else
+         AC_MSG_RESULT([no])
+         AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries and -nostdlib])
+      fi
+    fi
+
+    CFLAGS="$save_CFLAGS"
+    LIBS="$save_LIBS"
+    CC="$save_CC"	
 	CFLAGS="$save_CFLAGS"
 	LIBS="$save_LIBS"
 	CC="$save_CC"
-- 
1.7.8.6






^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-11-02  5:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-02  5:09 [gentoo-commits] gentoo-x86 commit in dev-cpp/gtest/files: configure-fix-pthread-linking.patch Justin Bronder (jsbronder)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox