lang/perl5

This commit is contained in:
Lionel Sambuc 2014-04-04 11:14:35 +02:00
parent 622531ef80
commit 2dcd5e8601
5 changed files with 298 additions and 28 deletions

View File

@ -204,6 +204,7 @@ LIBSWANTED.HPUX= cl pthread $$libswanted # see Perl's README.hpux
LIBSWANTED.IRIX= m crypt
LIBSWANTED.Interix= m dl
LIBSWANTED.Linux= m crypt dl nsl
LIBSWANTED.Minix= m crypt c
LIBSWANTED.MirBSD= m crypt
LIBSWANTED.NetBSD= m crypt
LIBSWANTED.OpenBSD= m crypt
@ -223,6 +224,7 @@ SYSLIBPATH.DragonFly= /usr/lib
SYSLIBPATH.FreeBSD= /usr/lib
SYSLIBPATH.Haiku= /boot/common/lib
SYSLIBPATH.Interix= /usr/lib
SYSLIBPATH.Minix= /usr/lib
SYSLIBPATH.MirBSD= /usr/lib
SYSLIBPATH.NetBSD= /usr/lib
SYSLIBPATH.OpenBSD= /usr/lib
@ -289,6 +291,8 @@ post-extract:
${WRKSRC}/cpan/DB_File/hints/netbsd.pl
cp ${FILESDIR}/cpan-DB_File-hints-openbsd.pl \
${WRKSRC}/cpan/DB_File/hints/openbsd.pl
# MINIX:
cp ${FILESDIR}/minix.sh ${WRKSRC}/hints/minix.sh
pre-configure:
cd ${WRKSRC} && find `pwd` -name "*.orig" -type f -exec ${RM} -f {} \;

View File

@ -9,7 +9,7 @@ SHA1 (patch-ab) = ddddf24cfa96c3b95202c2081006e0c7216afa1d
SHA1 (patch-ac) = cd918ae7aedddfcd3d555a1d1388c4c8719ccd12
SHA1 (patch-ah) = f66b496ba8f7b7d3e5a1f0c6f03d051a652f426e
SHA1 (patch-aq) = 4bf5a76f0277b0939b2ca7720f4bb045a788b5cc
SHA1 (patch-ca) = 80f96af07df5e77d0e0cdbdaeb5cca852008395f
SHA1 (patch-ca) = 2efe0b47ac7d4d98fd69ba93d08388ed38643115
SHA1 (patch-ch) = 5b6a89c82e158bab0a5f06add48c28e600678099
SHA1 (patch-ck) = 5c381db130cdf4c315678e2d65380eaaa3065fee
SHA1 (patch-cn) = d1877383e213a414562b5bb4c1e8aa785926fab7

257
lang/perl5/files/minix.sh Normal file
View File

@ -0,0 +1,257 @@
# hints/netbsd.sh
#
# Please check with packages@netbsd.org before making modifications
# to this file.
case "$archname" in
'')
archname=`uname -m`-${osname}
;;
esac
# NetBSD keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
# so Configure doesn't find them (unless you abandon the nm scan).
# Also, NetBSD 0.9a was the first release to introduce shared
# libraries.
#
case "$osvers" in
0.9|0.8*)
usedl="$undef"
;;
*)
case `uname -m` in
pmax)
# NetBSD 1.3 and 1.3.1 on pmax shipped an `old' ld.so,
# which will not work.
case "$osvers" in
1.3|1.3.1)
d_dlopen=$undef
;;
esac
;;
esac
if test -f /usr/libexec/ld.elf_so; then
# ELF
d_dlopen=$define
d_dlerror=$define
cccdlflags="-DPIC -fPIC $cccdlflags"
lddlflags="-shared $lddlflags"
cat >UU/cc.cbu <<'EOCBU'
# gcc 4.6 doesn't support --whole-archive, but it's required for the
# system gcc to build correctly, so check for it
echo 'int f(void) { return 0; }' >try.c
if ${cc:-cc} $cccdlflags -c try.c -otry.o 2>&1 &&
${cc:-cc} --whole-archive $lddlflags try.o -otry.so 2>&1 ; then
lddlflags="--whole-archive $lddlflags"
fi
rm try.c try.o try.so 2>/dev/null
EOCBU
rpathflag="-Wl,-rpath,"
case "$osvers" in
1.[0-5]*)
#
# Include the whole libgcc.a into the perl executable
# so that certain symbols needed by loadable modules
# built as C++ objects (__eh_alloc, __pure_virtual,
# etc.) will always be defined.
#
ccdlflags="-Wl,-whole-archive -lgcc \
-Wl,-no-whole-archive -Wl,-E $ccdlflags"
;;
*)
ccdlflags="-Wl,-E $ccdlflags"
;;
esac
elif test -f /usr/libexec/ld.so; then
# a.out
d_dlopen=$define
d_dlerror=$define
cccdlflags="-DPIC -fPIC $cccdlflags"
lddlflags="-Bshareable $lddlflags"
rpathflag="-R"
else
d_dlopen=$undef
rpathflag=
fi
;;
esac
# netbsd had these but they don't really work as advertised, in the
# versions listed below. if they are defined, then there isn't a
# way to make perl call setuid() or setgid(). if they aren't, then
# ($<, $>) = ($u, $u); will work (same for $(/$)). this is because
# you can not change the real userid of a process under 4.4BSD.
# netbsd fixed this in 1.3.2.
case "$osvers" in
0.9*|1.[012]*|1.3|1.3.1)
d_setregid="$undef"
d_setreuid="$undef"
;;
esac
case "$osvers" in
0.9*|1.*|2.*|3.*|4.*|5.*|6.*)
d_getprotoent_r="$undef"
d_getprotobyname_r="$undef"
d_getprotobynumber_r="$undef"
d_setprotoent_r="$undef"
d_endprotoent_r="$undef"
d_getservent_r="$undef"
d_getservbyname_r="$undef"
d_getservbyport_r="$undef"
d_setservent_r="$undef"
d_endservent_r="$undef"
d_getprotoent_r_proto="0"
d_getprotobyname_r_proto="0"
d_getprotobynumber_r_proto="0"
d_setprotoent_r_proto="0"
d_endprotoent_r_proto="0"
d_getservent_r_proto="0"
d_getservbyname_r_proto="0"
d_getservbyport_r_proto="0"
d_setservent_r_proto="0"
d_endservent_r_proto="0"
# MINIX Specific
d_gethostbyname_r="$undef"
d_gethostbyaddr_r="$undef"
d_gethostent_r="$undef"
d_sethostent_r="$undef"
d_endhostent_r="$undef"
d_inetntop="undef"
d_inetpton="undef"
d_ipv6_mreq="undef"
d_ipv6_mreq_source="undef"
d_sockaddr_in6="undef"
d_sin6_scope_id="undef"
d_usethreads="undef"
;;
esac
# These are obsolete in any netbsd.
d_setrgid="$undef"
d_setruid="$undef"
# there's no problem with vfork.
usevfork=true
# This is there but in machine/ieeefp_h.
ieeefp_h="define"
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
lpthread=
for xxx in pthread; do
for yyy in $loclibpth $plibpth $glibpth dummy; do
zzz=$yyy/lib$xxx.a
if test -f "$zzz"; then
lpthread=$xxx
break;
fi
zzz=$yyy/lib$xxx.so
if test -f "$zzz"; then
lpthread=$xxx
break;
fi
zzz=`ls $yyy/lib$xxx.so.* 2>/dev/null`
if test "X$zzz" != X; then
lpthread=$xxx
break;
fi
done
if test "X$lpthread" != X; then
break;
fi
done
if test "X$lpthread" != X; then
# Add -lpthread.
libswanted="$libswanted $lpthread"
# There is no libc_r as of NetBSD 1.5.2, so no c -> c_r.
# This will be revisited when NetBSD gains a native pthreads
# implementation.
else
echo "$0: No POSIX threads library (-lpthread) found. " \
"You may want to install GNU pth. Aborting." >&4
exit 1
fi
unset lpthread
# several reentrant functions are embedded in libc, but haven't
# been added to the header files yet. Let's hold off on using
# them until they are a valid part of the API
case "$osvers" in
[012].*|3.[0-1])
d_getprotobyname_r=$undef
d_getprotobynumber_r=$undef
d_getprotoent_r=$undef
d_getservbyname_r=$undef
d_getservbyport_r=$undef
d_getservent_r=$undef
d_setprotoent_r=$undef
d_setservent_r=$undef
d_endprotoent_r=$undef
d_endservent_r=$undef ;;
esac
;;
esac
EOCBU
# Set sensible defaults for NetBSD: look for local software in
# /usr/local, plus the build prefix, which might or might not be
# /usr/pkg.
#
loclibpth="/usr/local/lib ${prefix}/lib"
locincpth="/usr/local/include ${prefix}/include"
case "$rpathflag" in
'')
ldflags=
;;
*)
ldflags=
for yyy in $loclibpth; do
ldflags="$ldflags $rpathflag$yyy"
done
;;
esac
case `uname -m` in
alpha)
echo 'int main() {}' > try.c
gcc=`${cc:-cc} -v -c try.c 2>&1|grep 'gcc version egcs-2'`
case "$gcc" in
'' | "gcc version egcs-2.95."[3-9]*) ;; # 2.95.3 or better okay
*) cat >&4 <<EOF
***
*** Your gcc ($gcc) is known to be
*** too buggy on netbsd/alpha to compile Perl with optimization.
*** It is suggested you install the lang/gcc package which should
*** have at least gcc 2.95.3 which should work okay: use for example
*** Configure -Dcc=/usr/pkg/gcc-2.95.3/bin/cc. You could also
*** Configure -Doptimize=-O0 to compile Perl without any optimization
*** but that is not recommended.
***
EOF
exit 1
;;
esac
rm -f try.*
;;
esac
# NetBSD/sparc 1.5.3/1.6.1 dumps core in the semid_ds test of Configure.
case `uname -m` in
sparc) d_semctl_semid_ds=undef ;;
esac
# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac
# don't use perl malloc by default
case "$usemymalloc" in
'') usemymalloc=n ;;
esac

View File

@ -94,4 +94,10 @@ PKG_HACKS+= alpha-optimisation
CFLAGS+=-fno-tree-ter
.endif
### Minix, no pthreads available
### Perl cannot be compiled with threading support ATM.
.if ${OPSYS} == "NetBSD" && ${OS_VARIANT:U} == "Minix"
PKG_HACKS+= broken-minix-pthreads
PERL5_BUILD_THREADS_SUPPORT= no
.endif
.endif # PERL5_HACKS_MK

View File

@ -1,15 +1,5 @@
$NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
* Use "uname -r" to get OS version for *BSD.
* Move $loclibpth to the end of $dlist, instead of the beginning.
* Disable -fstack-protector on SunOS
* Several other changes.
--- Configure.orig 2014-01-06 22:46:42.000000000 +0000
+++ Configure
--- Configure.orig Mon Jan 6 22:46:42 2014
+++ Configure Thu Apr 17 22:29:09 2014
@@ -3274,13 +3274,14 @@ EOM
osvers="$3"
;;
@ -27,16 +17,20 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
genix) osname=genix ;;
gnu) osname=gnu
osvers="$3" ;;
@@ -3302,7 +3303,7 @@ EOM
@@ -3301,8 +3302,11 @@ EOM
;;
MiNT) osname=mint
;;
+ minix*) osname=minix
+ osvers=`$uname -r | UU/tr '[A-Z]' '[a-z]'`
+ ;;
netbsd*) osname=netbsd
- osvers="$3"
+ osvers=`$uname -r | UU/tr '[A-Z]' '[a-z]'`
;;
news-os) osvers="$3"
case "$3" in
@@ -3313,7 +3314,7 @@ EOM
@@ -3313,7 +3317,7 @@ EOM
next*) osname=next ;;
nonstop-ux) osname=nonstopux ;;
openbsd) osname=openbsd
@ -45,7 +39,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
;;
os2) osname=os2
osvers="$4"
@@ -3328,6 +3329,9 @@ EOM
@@ -3328,6 +3332,9 @@ EOM
qnx) osname=qnx
osvers="$4"
;;
@ -55,7 +49,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
solaris) osname=solaris
case "$3" in
5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
@@ -4722,7 +4726,7 @@ case "$plibpth" in
@@ -4722,7 +4729,7 @@ case "$plibpth" in
esac
case "$libpth" in
' ') dlist='';;
@ -64,7 +58,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
*) dlist="$libpth";;
esac
@@ -4730,7 +4734,7 @@ esac
@@ -4730,7 +4737,7 @@ esac
libpth=''
for xxx in $dlist
do
@ -73,7 +67,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
case " $libpth " in
*" $xxx "*) ;;
*) libpth="$libpth $xxx";;
@@ -4819,7 +4823,7 @@ lib_ext=$_a
@@ -4819,7 +4826,7 @@ lib_ext=$_a
obj_ext=$_o
path_sep=$p_
@ -82,7 +76,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
: Which makefile gets called first. This is used by make depend.
case "$firstmakefile" in
@@ -5119,8 +5123,10 @@ default|recommended)
@@ -5119,8 +5126,10 @@ default|recommended)
# as that way the compiler can do the right implementation dependant
# thing. (NWC)
case "$gccversion" in
@ -94,7 +88,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
;;
esac
;;
@@ -6486,7 +6492,9 @@ rp='Pathname for the site-specific libra
@@ -6486,7 +6495,9 @@ rp='Pathname for the site-specific library files?'
. ./getfile
prefixvar=sitelib
. ./setprefixvar
@ -105,7 +99,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
: Determine list of previous versions to include in @INC
$cat > getverlist <<EOPL
@@ -6999,7 +7007,9 @@ case "$vendorprefix" in
@@ -6999,7 +7010,9 @@ case "$vendorprefix" in
vendorlibexp="$ansexp"
;;
esac
@ -116,7 +110,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
prefixvar=vendorlib
. ./installprefix
@@ -7476,6 +7486,15 @@ case "$nm_so_opt" in
@@ -7476,6 +7489,15 @@ case "$nm_so_opt" in
;;
esac
@ -132,7 +126,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
: Figure out where the libc is located
case "$runnm" in
true)
@@ -8048,6 +8067,7 @@ EOM
@@ -8048,6 +8070,7 @@ EOM
;;
linux|irix*|gnu*) dflt="-shared $optimize" ;;
next) dflt='none' ;;
@ -140,7 +134,16 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
solaris) # See [perl #66604]. On Solaris 11, gcc -m64 on amd64
# appears not to understand -G. gcc versions at
# least as old as 3.4.3 support -shared, so just
@@ -8347,7 +8367,7 @@ if "$useshrplib"; then
@@ -8337,7 +8360,7 @@ if "$useshrplib"; then
solaris)
xxx="-R $shrpdir"
;;
- freebsd|mirbsd|netbsd|openbsd|interix|dragonfly)
+ freebsd|mirbsd|minix|netbsd|openbsd|interix|dragonfly)
xxx="-Wl,-R$shrpdir"
;;
bsdos|linux|irix*|dec_osf|gnu*)
@@ -8347,7 +8370,7 @@ if "$useshrplib"; then
# next doesn't like the default...
;;
haiku)
@ -149,7 +152,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
;;
hpux*)
# hpux doesn't like the default, either.
@@ -8356,6 +8376,9 @@ if "$useshrplib"; then
@@ -8356,6 +8379,9 @@ if "$useshrplib"; then
cygwin)
# cygwin needs only ldlibpth
;;
@ -159,7 +162,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
*)
tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
;;
@@ -9431,6 +9454,13 @@ esac
@@ -9431,6 +9457,13 @@ esac
: Check if we want perlio
useperlio="$define"
@ -173,7 +176,7 @@ $NetBSD: patch-ca,v 1.18 2014/03/14 22:41:10 ryoon Exp $
: Set the vendorbin variables
case "$vendorprefix" in
'') d_vendorbin="$undef"
@@ -19243,7 +19273,15 @@ RCAT(Rei,ser)
@@ -19243,7 +19276,15 @@ RCAT(Rei,ser)
ACAT(Cir,cus)
EOCP
$cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1