From 6c1b5ced18901286f16f6d5f6914ba4b5e3db601 Mon Sep 17 00:00:00 2001
From: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
Date: Sat, 10 Oct 2009 17:55:26 +0100
Subject: [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
---
 hints/dragonfly.sh | 47 ++++++-----------------------------------------
 1 file changed, 6 insertions(+), 41 deletions(-)

(limited to 'hints')

diff --git a/hints/dragonfly.sh b/hints/dragonfly.sh
index 88da5ec23d..8966aef8ef 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 <<EOM >&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
-- 
cgit v1.2.1