Index: perl-5.8.8/Configure
===================================================================
--- perl-5.8.8.orig/Configure	2006-01-08 14:51:03 +0000
+++ perl-5.8.8/Configure	2006-02-14 13:41:41 +0000
@@ -3130,6 +3130,8 @@
 		dgux)	osname=dgux 
 			osvers="$3"
 			;;
+		dragonfly) osname=dragonfly
+			osvers="$3" ;;
 		dynixptx*) osname=dynixptx
 			osvers=`echo "$4"|sed 's/^v//'`
 			;;
@@ -7889,7 +7891,7 @@
 	solaris)
 		xxx="-R $shrpdir"
 		;;
-	freebsd|netbsd|openbsd|interix)
+	freebsd|netbsd|openbsd|dragonfly|interix)
 		xxx="-Wl,-R$shrpdir"
 		;;
 	bsdos|linux|irix*|dec_osf|gnu*)
Index: perl-5.8.8/Makefile.SH
===================================================================
--- perl-5.8.8.orig/Makefile.SH	2006-01-24 12:49:44 +0000
+++ perl-5.8.8/Makefile.SH	2006-02-14 13:46:57 +0000
@@ -73,7 +73,7 @@
 	sunos*)
 		linklibperl="-lperl"
 		;;
-	netbsd*|freebsd[234]*|openbsd*)
+	netbsd*|freebsd[234]*|openbsd*|dragonfly*)
 		linklibperl="-L. -lperl"
 		;;
 	interix*)
@@ -990,6 +990,10 @@
 n_dummy $(nonxs_ext):	miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
 	@$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
 
+.PHONY: printconfig
+printconfig:
+	@eval `$(LDLIBPTH) ./perl -Ilib -V:$(CONFIGVAR)`; echo $$$(CONFIGVAR)
+
 .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
 	realclean _realcleaner clobber _clobber \
 	distclean veryclean _verycleaner
Index: perl-5.8.8/hints/dragonfly.sh
===================================================================
--- perl-5.8.8.orig/hints/dragonfly.sh	1970-01-01 00:00:00 +0000
+++ perl-5.8.8/hints/dragonfly.sh	2006-02-14 13:15:04 +0000
@@ -0,0 +1,118 @@
+# hints/dragonfly.sh
+#
+# This file is mostly copied from hints/freebsd.sh with the OS version
+# information taken out and only the FreeBSD-4 information intact.
+# Please check with Todd Willey <xtoddx@gmail.com> before making
+# modifications to this file.
+
+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

