libmemcached: fix linking with libpthread

Add patch to fix linking against libpthread (from Fedora).

https://bugzilla.redhat.com/show_bug.cgi?id=1037707
https://bugs.launchpad.net/libmemcached/+bug/1281907

This fixes (upcoming) libmemcached use in collectd, which currently
doesn't work because of link failure caused by missing "pthread_once"
symbol.
This commit is contained in:
Bjørn Forsman 2014-07-14 23:23:13 +02:00
parent 9ff20ca43f
commit 7c951ede31
2 changed files with 24 additions and 0 deletions

View File

@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "10jzi14j32lpq0if0p9vygcl2c1352hwbywzvr9qzq7x6aq0nb72";
};
# Fix linking against libpthread (patch from Fedora)
# https://bugzilla.redhat.com/show_bug.cgi?id=1037707
# https://bugs.launchpad.net/libmemcached/+bug/1281907
patches = [ ./libmemcached-fix-linking-with-libpthread.patch ];
buildInputs = [ cyrus_sasl libevent ];
meta = {

View File

@ -0,0 +1,19 @@
diff -up libmemcached-1.0.16/build-aux/ltmain.sh.orig libmemcached-1.0.16/build-aux/ltmain.sh
--- libmemcached-1.0.16/build-aux/ltmain.sh.orig 2013-12-03 16:36:53.222107642 +0100
+++ libmemcached-1.0.16/build-aux/ltmain.sh 2013-12-03 16:37:35.770132249 +0100
@@ -5664,6 +5664,15 @@ func_mode_link ()
*" $arg "*) ;;
* ) func_append new_inherited_linker_flags " $arg" ;;
esac
+ # As we are forced to pass -nostdlib to g++ during linking, the option
+ # -pthread{,s} is not in effect; add the -lpthread to $deplist
+ # explicitly to link correctly.
+ if test "$tagname" = CXX -a x"$with_gcc" = xyes; then
+ case "$arg" in
+ -pthread*) func_append deplibs " -lpthread" ;;
+ esac
+ fi
+
continue
;;