pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/42170: lang/perl5 uses wrong thread library detection on DragonFly
>Number: 42170
>Category: pkg
>Synopsis: lang/perl5 uses wrong thread library detection on DragonFly
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Oct 10 10:15:00 +0000 2009
>Originator: Simon Schubert
>Release: pkgsrc HEAD
>Organization:
DragonFly
>Environment:
DragonFly-2.5.1
>Description:
On DragonFly, perl5 uses a wrong thread library detection and assumes that
libc_r needs to be present for threading support.
The same patch has been submitted upstream to the perlbug mailing list.
>How-To-Repeat:
compile perl5 on a brand new DragonFly-2.5.1 system.
>Fix:
$NetBSD$
--- hints/dragonfly.sh.orig 2009-10-09 15:28:17 +0200
+++ 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
Home |
Main Index |
Thread Index |
Old Index