Subject: pkg/28963: lang/perl58 patches for DragonFlyBSD
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <xtoddx@gmail.com>
List: pkgsrc-bugs
Date: 01/14/2005 17:00:01
>Number:         28963
>Category:       pkg
>Synopsis:       lang/perl58 patches for DragonFlyBSD
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri Jan 14 17:00:00 +0000 2005
>Originator:     Todd Willey
>Release:        
>Organization:
Crescent Anchor
>Environment:
>Description:
The enclosed patches are generated in lang/perl58/patches and incorporate changes that were made to support DragonFlyBSD.  After building perl, I ran a "make test" and one test failed (ext/POSIX/t/posix.........................FAILED at test 11), but all others worked.  I'm not sure how much of the enclosed patches are actually needed, since I basically just copied "freebsd"-isms to "dragonfly".  The hints/dragonfly.sh file is the same as hints/freebsd.sh with the os-version information taken out and only the FreeBSD-4 infromation intact.
>How-To-Repeat:

>Fix:
cvs diff: Diffing .
Index: patch-aa
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl58/patches/patch-aa,v
retrieving revision 1.4
diff -u -r1.4 patch-aa
--- patch-aa    24 Apr 2004 21:04:43 -0000      1.4
+++ patch-aa    14 Jan 2005 16:46:06 -0000
@@ -20,7 +20,7 @@
  $Is_Solaris = $^O eq 'solaris';
  $Is_SunOS   = $Is_SunOS4 || $Is_Solaris;
 -$Is_BSD     = $^O =~ /^(?:free|net|open)bsd|bsdos$/;
-+$Is_BSD     = $^O =~ /^(?:free|net|open)bsd|bsdos|interix$/;
++$Is_BSD     = $^O =~ /^(?:free|net|open)bsd|bsdos|dragonfly|interix$/;


  =head1 NAME
Index: patch-ae
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl58/patches/patch-ae,v
retrieving revision 1.2
diff -u -r1.2 patch-ae
--- patch-ae    5 Oct 2003 07:07:14 -0000       1.2
+++ patch-ae    14 Jan 2005 16:46:06 -0000
@@ -2,11 +2,12 @@

 --- makedepend.SH.orig Fri Jun  6 23:34:20 2003
 +++ makedepend.SH
-@@ -84,6 +84,7 @@
+@@ -84,6 +84,8 @@
      case "$osname" in
      os2) ;;
      netbsd) ;;
 +    freebsd) ;;
++    dragonfly) ;;
      *) $touch $firstmakefile ;;
      esac
  fi
Index: patch-ca
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl58/patches/patch-ca,v
retrieving revision 1.7
diff -u -r1.7 patch-ca
--- patch-ca    4 Jan 2005 09:50:15 -0000       1.7
+++ patch-ca    14 Jan 2005 16:46:06 -0000
@@ -2,16 +2,18 @@

 --- Configure.orig     2004-09-10 02:25:52.000000000 -0400
 +++ Configure
-@@ -3111,7 +3111,7 @@ EOM
+@@ -3111,7 +3111,9 @@ EOM
                        osvers=`echo "$4"|sed 's/^v//'`
                        ;;
                freebsd) osname=freebsd
 -                      osvers="$3" ;;
 +                      osvers=`$uname -r | UU/tr '[A-Z]' '[a-z]'` ;;
++              dragonfly) osname=dragonfly
++                      osvers=`$uname -r | UU/tr '[A-Z]' '[a-z]'` ;;
                genix)  osname=genix ;;
                gnu)    osname=gnu
                        osvers="$3" ;;
-@@ -3133,7 +3133,7 @@ EOM
+@@ -3135,7 +3135,7 @@ EOM
                MiNT)   osname=mint
                        ;;
                netbsd*) osname=netbsd
@@ -20,7 +22,7 @@
                        ;;
                news-os) osvers="$3"
                        case "$3" in
-@@ -3144,8 +3144,8 @@ EOM
+@@ -3146,8 +3146,8 @@ EOM
                next*) osname=next ;;
                nonstop-ux) osname=nonstopux ;;
                openbsd) osname=openbsd
@@ -31,16 +33,16 @@
                os2)    osname=os2
                        osvers="$4"
                        ;;
-@@ -7852,7 +7852,7 @@ if "$useshrplib"; then
+@@ -7854,7 +7854,7 @@ if "$useshrplib"; then
        solaris)
                xxx="-R $shrpdir"
                ;;
 -      freebsd|netbsd|openbsd)
-+      freebsd|netbsd|openbsd|interix)
++      freebsd|netbsd|openbsd|interix|dragonfly)
                xxx="-Wl,-R$shrpdir"
                ;;
        bsdos|linux|irix*|dec_osf)
-@@ -8973,6 +8973,13 @@ EOCP
+@@ -8975,6 +8975,13 @@ EOCP
        ;;
  esac

@@ -54,7 +56,7 @@
  case "$vendorprefix" in
  '')   d_vendorbin="$undef"
        vendorbin=''
-@@ -17290,7 +17297,15 @@ RCAT(Rei,ser)
+@@ -17292,7 +17299,15 @@ RCAT(Rei,ser)
  ACAT(Cir,cus)
  EOCP
  $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
Index: patch-cb
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl58/patches/patch-cb,v
retrieving revision 1.3
diff -u -r1.3 patch-cb
--- patch-cb    26 Apr 2004 04:42:12 -0000      1.3
+++ patch-cb    14 Jan 2005 16:46:06 -0000
@@ -1,15 +1,15 @@
-$NetBSD: patch-cb,v 1.3 2004/04/26 04:42:12 jlam Exp $
-
---- Makefile.SH.orig   Sat Mar  6 10:54:23 2004
-+++ Makefile.SH        Mon Apr 26 00:33:38 2004
-@@ -69,6 +69,10 @@
+--- Makefile.SH.orig   2005-01-14 16:15:26.000000000 +0000
++++ Makefile.SH        2005-01-14 16:15:57.000000000 +0000
+@@ -69,7 +69,11 @@
        sunos*)
                linklibperl="-lperl"
                ;;
-+      interix*)
-+              linklibperl="-L. -lperl"
-+              shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
-+              ;;
-       netbsd*|freebsd[234]*|openbsd*)
+-      netbsd*|freebsd[234]*|openbsd*)
++       interix*)
++               linklibperl="-L. -lperl"
++               shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
++               ;;
++       netbsd*|freebsd[234]*|openbsd*|dragonfly*)
                linklibperl="-L. -lperl"
                ;;
+       aix*)

--- /dev/null   2005-01-14 16:19:39.000000000 +0000
+++ hints/dragonfly.sh  2005-01-14 16:22:32.000000000 +0000
@@ -0,0 +1,162 @@
+# Original based on info from
+# Carl M. Fongheiser <cmf@ins.infonet.net>
+# Date: Thu, 28 Jul 1994 19:17:05 -0500 (CDT)
+#
+# Additional 1.1.5 defines from
+# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net>
+# Date: Wed, 28 Sep 1994 00:37:46 +0100 (MET)
+#
+# Additional 2.* defines from
+# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net>
+# Date: Sat, 8 Apr 1995 20:53:41 +0200 (MET DST)
+#
+# Additional 2.0.5 and 2.1 defined from
+# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net>
+# Date: Fri, 12 May 1995 14:30:38 +0200 (MET DST)
+#
+# Additional 2.2 defines from
+# Mark Murray <mark@grondar.za>
+# Date: Wed, 6 Nov 1996 09:44:58 +0200 (MET)
+#
+# Modified to ensure we replace -lc with -lc_r, and
+# to put in place-holders for various specific hints.
+# Andy Dougherty <doughera@lafayette.edu>
+# Date: Tue Mar 10 16:07:00 EST 1998
+#
+# Support for FreeBSD/ELF
+# Ollivier Robert <roberto@keltia.freenix.fr>
+# Date: Wed Sep  2 16:22:12 CEST 1998
+#
+# The two flags "-fpic -DPIC" are used to indicate a
+# will-be-shared object.  Configure will guess the -fpic, (and the
+# -DPIC is not used by perl proper) but the full define is included to
+# be consistent with the FreeBSD general shared libs building process.
+#
+# setreuid and friends are inherently broken in all versions of FreeBSD
+# before 2.1-current (before approx date 4/15/95). It is fixed in 2.0.5
+# and what-will-be-2.1
+#
+
+case "$osvers" in
+*)     usevfork='true'
+       case "$usemymalloc" in
+           "") usemymalloc='n'
+               ;;
+       esac
+       libswanted=`echo $libswanted | sed 's/ malloc / /'`
+       ;;
+esac
+
+# Dynamic Loading flags have not changed much, so they are separated
+# 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
+        cccdlflags='-DPIC -fPIC'
+        ;;
+esac
+
+case "$osvers" in
+*)
+       ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
+       if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then
+           usenm=false
+       fi
+        ;;
+esac
+
+cat <<'EOM' >&4
+
+Some users have reported that Configure halts when testing for
+the O_NONBLOCK symbol with a syntax error.  This is apparently a
+sh error.  Rerunning Configure with ksh apparently fixes the
+problem.  Try
+       ksh Configure [your options]
+
+EOM
+
+# From: Anton Berezin <tobez@plab.ku.dk>
+# To: perl5-porters@perl.org
+# Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type
+# Date: 30 Nov 1998 19:46:24 +0100
+# Message-ID: <864srhhvcv.fsf@lion.plab.ku.dk>
+
+signal_t='void'
+d_voidsig='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]*)
+        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).
+
+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
+
+# malloc wrap works
+case "$usemallocwrap" in
+'') usemallocwrap='define' ;;
+esac
+
+cat > UU/pkgsrc.cbu <<'EOCBU'
+# This script UU/pkgsrc.cbu will get 'called-back' by Configure to set
+# linker options after all other call-back scripts have been invoked.
+ldflags=" -Wl,-R/usr/pkg/lib  $ldflags"
+lddlflags=" -Wl,-R/usr/pkg/lib  $lddlflags"
+EOCBU
+
+# Set pkgsrc defaults for library and header search paths.
+locincpth="/usr/pkg/include"
+loclibpth="/usr/pkg/lib"
+glibpth='/usr/lib'