From: Simon 'corecode' Schubert Date: Sat, 10 Oct 2009 16:55:26 +0000 (+0100) Subject: [perl #69686] Fix DragonFly thread lib selection X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=6c1b5ced18901286f16f6d5f6914ba4b5e3db601;p=p5sagit%2Fp5-mst-13.2.git [perl #69686] Fix DragonFly thread lib selection Hey, attached patch fixes the thread library detection in DragonFly. All versions of DragonFly can be used threaded with -pthread. libc_r must not be used directly. Please let me know if you have any questions. Thanks, simon --- diff --git a/hints/dragonfly.sh b/hints/dragonfly.sh index 88da5ec..8966aef 100644 --- a/hints/dragonfly.sh +++ b/hints/dragonfly.sh @@ -19,18 +19,10 @@ esac # out here to avoid duplicating them everywhere. case "$osvers" in *) objformat=`/usr/bin/objformat` - if [ x$objformat = xelf ]; then - libpth="/usr/lib /usr/local/lib" - glibpth="/usr/lib /usr/local/lib" - ldflags="-Wl,-E " - lddlflags="-shared " - else - if [ -e /usr/lib/aout ]; then - libpth="/usr/lib/aout /usr/local/lib /usr/lib" - glibpth="/usr/lib/aout /usr/local/lib /usr/lib" - fi - lddlflags='-Bshareable' - fi + libpth="/usr/lib /usr/local/lib" + glibpth="/usr/lib /usr/local/lib" + ldflags="-Wl,-E " + lddlflags="-shared " cccdlflags='-DPIC -fPIC' ;; esac @@ -67,43 +59,16 @@ d_voidsig='define' cat > UU/usethreads.cbu <<'EOCBU' case "$usethreads" in $define|true|[yY]*) - lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'` case "$osvers" in - *) if [ ! -r "$lc_r" ]; then - cat <&4 -POSIX threads should be supported by FreeBSD $osvers -- -but your system is missing the shared libc_r. -(/sbin/ldconfig -r doesn't find any). + *) ldflags="-pthread $ldflags" -Consider using the latest STABLE release. -EOM - exit 1 - fi - case "$osvers" in - *) ldflags="-pthread $ldflags" - ;; - esac # Both in 4.x and 5.x gethostbyaddr_r exists but # it is "Temporary function, not threadsafe"... # Presumably earlier it didn't even exist. d_gethostbyaddr_r="undef" d_gethostbyaddr_r_proto="0" - ;; - esac - set `echo X "$libswanted "| sed -e 's/ c / c_r /'` - shift - libswanted="$*" - # Configure will probably pick the wrong libc to use for nm scan. - # The safest quick-fix is just to not use nm at all... - usenm=false - - unset lc_r - - # Even with the malloc mutexes the Perl malloc does not - # seem to be threadsafe in FreeBSD? - case "$usemymalloc" in - '') usemymalloc=n ;; + ;; esac esac EOCBU