aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/perl/files')
-rw-r--r--dev-lang/perl/files/perl-5.10.1-cleanup-paths.patch100
-rw-r--r--dev-lang/perl/files/perl-5.10.1-hpux.patch40
-rw-r--r--dev-lang/perl/files/perl-5.10.1-prefix-soname.patch51
-rw-r--r--dev-lang/perl/files/perl-5.12.3-aix-soname.patch70
-rw-r--r--dev-lang/perl/files/perl-5.12.3-interix.patch21
-rw-r--r--dev-lang/perl/files/perl-5.12.3-mint.patch321
-rw-r--r--dev-lang/perl/files/perl-5.8.8-darwin-cc-ld.patch22
-rw-r--r--dev-lang/perl/files/perl-5.8.8-solaris-relocation.patch21
-rw-r--r--dev-lang/perl/files/perl-5.8.8-solaris11.patch14
-rw-r--r--dev-lang/perl/files/perl-5.8.8-usr-local.patch25
-rw-r--r--dev-lang/perl/files/perl-fix_h2ph_include_quote.patch61
11 files changed, 746 insertions, 0 deletions
diff --git a/dev-lang/perl/files/perl-5.10.1-cleanup-paths.patch b/dev-lang/perl/files/perl-5.10.1-cleanup-paths.patch
new file mode 100644
index 0000000..3fc60af
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.10.1-cleanup-paths.patch
@@ -0,0 +1,100 @@
+cut the crap of inventing paths, or adding search paths that we don't use
+
+--- Configure
++++ Configure
+@@ -102,28 +102,6 @@
+ fi
+ fi
+
+-: Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
+-
+-for p in $paths
+-do
+- case "$p_$PATH$p_" in
+- *$p_$p$p_*) ;;
+- *) test -d $p && PATH=$PATH$p_$p ;;
+- esac
+-done
+-
+-PATH=.$p_$PATH
+-export PATH
+-
+ : shall we be using ksh?
+ inksh=''
+ needksh=''
+@@ -8282,66 +8260,6 @@
+ ;;
+ esac
+
+-# How will the perl executable find the installed shared $libperl?
+-# Add $xxx to ccdlflags.
+-# If we can't figure out a command-line option, use $shrpenv to
+-# set env LD_RUN_PATH. The main perl makefile uses this.
+-shrpdir=$archlibexp/CORE
+-xxx=''
+-tmp_shrpenv=''
+-if "$useshrplib"; then
+- case "$osname" in
+- aix)
+- # We'll set it in Makefile.SH...
+- ;;
+- solaris)
+- xxx="-R $shrpdir"
+- ;;
+- freebsd|netbsd|openbsd|interix|dragonfly)
+- xxx="-Wl,-R$shrpdir"
+- ;;
+- bsdos|linux|irix*|dec_osf|gnu*)
+- xxx="-Wl,-rpath,$shrpdir"
+- ;;
+- next)
+- # next doesn't like the default...
+- ;;
+- beos)
+- # beos doesn't like the default, either.
+- ;;
+- haiku)
+- # Haiku doesn't like the default, either.
+- ;;
+- hpux*)
+- # hpux doesn't like the default, either.
+- tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
+- ;;
+- cygwin)
+- # cygwin needs only ldlibpth
+- ;;
+- *)
+- tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
+- ;;
+- esac
+- case "$xxx" in
+- '') ;;
+- *)
+- # Only add $xxx if it isn't already in ccdlflags.
+- case " $ccdlflags " in
+- *" $xxx "*) ;;
+- *) ccdlflags="$ccdlflags $xxx"
+- cat <<EOM >&4
+-
+-Adding $xxx to the flags
+-passed to $ld so that the perl executable will find the
+-installed shared $libperl.
+-
+-EOM
+- ;;
+- esac
+- ;;
+- esac
+-fi
+ # Fix ccdlflags in AIX for building external extensions.
+ # (For building Perl itself bare -bE:perl.exp is needed,
+ # Makefile.SH takes care of this.)
diff --git a/dev-lang/perl/files/perl-5.10.1-hpux.patch b/dev-lang/perl/files/perl-5.10.1-hpux.patch
new file mode 100644
index 0000000..ca4ee52
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.10.1-hpux.patch
@@ -0,0 +1,40 @@
+# do not assume '.' being in PATH on hpux,
+# use 'gcc' as linker, link with '-lm'.
+
+--- hints/hpux.sh
++++ hints/hpux.sh
+@@ -190,7 +190,7 @@
+ $define|true|[Yy])
+ echo '#include <stdio.h>\nint main(){long l;printf("%d\\n",sizeof(l));}'>try.c
+ $cc -o try $ccflags $ldflags try.c
+- if [ "`try`" = "8" ]; then
++ if [ "`./try`" = "8" ]; then
+ case "$use64bitall" in
+ $define|true|[Yy]) ;;
+ *) cat <<EOM >&4
+@@ -338,7 +338,7 @@
+ } /* main */
+ EOF
+ $cc -o try $ccflags $ldflags try.c
+- maxdsiz=`try`
++ maxdsiz=`./try`
+ rm -f try try.c core
+ if [ $maxdsiz -le 64 ]; then
+ # 64 Mb is probably not enough to optimize toke.c
+@@ -363,11 +363,12 @@
+ "") optimize="-g -O" ;;
+ *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
+ esac
+- #ld="$cc"
+- ld=/usr/bin/ld
++ ld="$cc"
++ #ld=/usr/bin/ld
+ cccdlflags='-fPIC'
+- #lddlflags='-shared'
+- lddlflags='-b'
++ lddlflags='-shared'
++ #lddlflags='-b'
++ libs='-lm'
+ case "$optimize" in
+ *-g*-O*|*-O*-g*)
+ # gcc without gas will not accept -g
diff --git a/dev-lang/perl/files/perl-5.10.1-prefix-soname.patch b/dev-lang/perl/files/perl-5.10.1-prefix-soname.patch
new file mode 100644
index 0000000..85f02a9
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.10.1-prefix-soname.patch
@@ -0,0 +1,51 @@
+contrast 0005-gentoo_create-libperl-soname.diff
+
+don't just assume all linkers are GNU, use the right approach instead.
+
+--- Makefile.SH
++++ Makefile.SH
+@@ -78,7 +78,7 @@
+ ${api_revision}.${api_version}.${api_subversion} \
+ -current_version \
+ ${revision}.${patchlevel}.${subversion} \
+- -install_name \$(shrpdir)/\$@"
++ -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib"
+ ;;
+ cygwin*)
+ shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000"
+@@ -86,13 +86,15 @@
+ ;;
+ sunos*)
+ linklibperl="-lperl"
++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
+ netbsd*|freebsd[234]*|openbsd*|dragonfly*)
+ linklibperl="-L. -lperl"
++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
+ interix*)
+ linklibperl="-L. -lperl"
+- shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
++ shrpldflags="$shrpldflags -Wl,--image-base,0x57000000 -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
+ aix*)
+ case "$cc" in
+@@ -130,6 +132,9 @@
+ linklibperl='libperl.x'
+ DPERL_EXTERNAL_GLOB=''
+ ;;
++ linux*)
++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
++ ;;
+ esac
+ case "$ldlibpthname" in
+ '') ;;
+@@ -735,7 +740,7 @@
+ true)
+ $spitshell >>$Makefile <<'!NO!SUBS!'
+ rm -f $@
+- $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) -Wl,-soname -Wl,libperl.so.`echo $(LIBPERL) | cut -d. -f3,4`
++ $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)
+ !NO!SUBS!
+ case "$osname" in
+ aix)
diff --git a/dev-lang/perl/files/perl-5.12.3-aix-soname.patch b/dev-lang/perl/files/perl-5.12.3-aix-soname.patch
new file mode 100644
index 0000000..70fe5fa
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.12.3-aix-soname.patch
@@ -0,0 +1,70 @@
+1) Match "powerpc-ibm-aix5.3.0.0-gcc" as gcc too.
+
+2) Creating shared library on aix with full soname support, following
+http://lists.gnu.org/archive/html/libtool/2011-01/msg00023.html
+http://lists.gnu.org/archive/html/libtool/2011-02/msg00000.html
+
+Once there is an agreement on that, this patch basically is designed
+for upstream perl to be applied when their soname would change anyway.
+However, there is 'strip' being used, and I don't know yet what to
+use instead in cross-aix setups with recent binutils.
+
+--- Makefile.SH
++++ Makefile.SH
+@@ -92,12 +92,12 @@
+ ;;
+ aix*)
+ case "$cc" in
+- gcc*)
+- shrpldflags="-shared -Wl,-H512 -Wl,-T512 -Wl,-bhalt:4 -Wl,-bM:SRE -Wl,-bE:perl.exp"
++ *gcc*)
++ shrpldflags="-shared -Wl,-H512 -Wl,-T512 -Wl,-bhalt:4 -Wl,-bE:perl.exp"
+ case "$osvers" in
+- 3*) shrpldflags="$shrpldflags -e _nostart"
++ 3*) shrpldflags="$shrpldflags -Wl,-bM:SRE -e _nostart"
+ ;;
+- *) shrpldflags="$shrpldflags -Wl,-bnoentry"
++ *) shrpldflags="$shrpldflags -Wl,-G -Wl,-bernotok -Wl,-bnoentry"
+ ;;
+ esac
+ shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib"
+@@ -105,11 +105,11 @@
+ linklibperl_nonshr='-lperl_nonshr'
+ ;;
+ *)
+- shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp"
++ shrpldflags="-H512 -T512 -bhalt:4 -bE:perl.exp"
+ case "$osvers" in
+- 3*) shrpldflags="$shrpldflags -e _nostart"
++ 3*) shrpldflags="$shrpldflags -bM:SRE -e _nostart"
+ ;;
+- *) shrpldflags="$shrpldflags -b noentry"
++ *) shrpldflags="$shrpldflags -G -bernotok -b noentry"
+ ;;
+ esac
+ shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib"
+@@ -763,11 +763,19 @@
+ !NO!SUBS!
+ case "$osname" in
+ aix)
+- $spitshell >>$Makefile <<'!NO!SUBS!'
+- rm -f libperl$(OBJ_EXT)
+- mv $@ libperl$(OBJ_EXT)
+- $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
+-!NO!SUBS!
++ bits=32
++ if test X"$use64bitall" = Xdefine; then bits=64; fi
++ $spitshell >>$Makefile <<!GROK!THIS!
++ rm -f shr.imp shr.o
++ mv \$@ shr.o
++ strip -e shr.o
++ ( echo '#! libperl.so.${revision}.${patchlevel}(shr.o)' \\
++ ; echo '# ${bits}' \\
++ ; grep -v '^#!' perl.exp \\
++ ) > shr.imp
++ \$(AR) qv \$@ shr.imp shr.o
++ rm -f shr.imp shr.o
++!GROK!THIS!
+ ;;
+ esac
+ ;;
diff --git a/dev-lang/perl/files/perl-5.12.3-interix.patch b/dev-lang/perl/files/perl-5.12.3-interix.patch
new file mode 100644
index 0000000..5e875b2
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.12.3-interix.patch
@@ -0,0 +1,21 @@
+reported: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-04/msg01014.html
+
+diff -ru perl-5.12.3.orig/hints/interix.sh perl-5.12.3/hints/interix.sh
+--- perl-5.12.3.orig/hints/interix.sh 2011-04-27 08:34:00 +0200
++++ perl-5.12.3/hints/interix.sh 2011-04-27 08:53:46 +0200
+@@ -6,14 +6,13 @@
+ cc='gcc'
+ cccdlflags="-DPIC $cccdlflags"
+ ccdlflags='-Wl,-E'
+-ccflags="-D_ALL_SOURCE $ccflags"
+-d_poll="$undef"
+ ld='gcc'
+ lddlflags="-shared $lddlflags"
+ rpathflag='-Wl,-R'
+ sharpbang='#!'
+ usemymalloc='false'
+ usenm='false'
++firstmakefile=GNUmakefile
+
+ # This script UU/usethreads.cbu will get 'called-back' by Configure
+ # after it has prompted the user for whether to use threads.
diff --git a/dev-lang/perl/files/perl-5.12.3-mint.patch b/dev-lang/perl/files/perl-5.12.3-mint.patch
new file mode 100644
index 0000000..4c6c108
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.12.3-mint.patch
@@ -0,0 +1,321 @@
+http://rt.perl.org/rt3/Ticket/Display.html?id=89502
+
+--- perl-5.12.3/Configure 2011-02-21 09:18:09.000000000 +0000
++++ perl-5.12.3/Configure 2011-02-21 09:38:49.000000000 +0000
+@@ -1275,6 +1275,9 @@
+ elif test -n "$DJGPP"; then
+ : DOS DJGPP
+ _exe=".exe"
++elif test -f "/kern/cookiejar"; then
++: MiNT
++ _exe=""
+ elif test -d c:/. -o -n "$is_os2" ; then
+ : OS/2 or cygwin
+ _exe=".exe"
+@@ -1402,7 +1405,7 @@
+ xcat=/bin/cat
+ test -f $xcat$_exe || xcat=/usr/bin/cat
+ if test ! -f $xcat$_exe; then
+- for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do
++ for p in `echo $PATH | sed -e 's/$p_/ /g'` $paths; do
+ if test -f $p/cat$_exe; then
+ xcat=$p/cat
+ break
+--- perl-5.12.3/ext/DynaLoader/dl_dld.xs 2010-11-21 21:40:55.000000000 +0000
++++ perl-5.12.3/ext/DynaLoader/dl_dld.xs 2011-02-21 09:38:51.000000000 +0000
+@@ -116,6 +116,18 @@
+ goto haverror;
+ }
+
++ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dld_link(libm.a)\n"));
++ if (dlderr = dld_link("/usr/lib/libm.a")) {
++ SaveError(aTHX_ "dld_link(libm.a): %s", dld_strerror(dlderr));
++ goto haverror;
++ }
++
++ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dld_link(libc.a)\n"));
++ if (dlderr = dld_link("/usr/lib/libc.a")) {
++ SaveError(aTHX_ "dld_link(libc.a): %s", dld_strerror(dlderr));
++ goto haverror;
++ }
++
+ max = AvFILL(dl_resolve_using);
+ for (x = 0; x <= max; x++) {
+ char *sym = SvPVX(*av_fetch(dl_resolve_using, x, 0));
+--- perl-5.12.3/malloc.c 2011-01-09 20:20:57.000000000 +0000
++++ perl-5.12.3/malloc.c 2011-02-21 09:38:51.000000000 +0000
+@@ -264,7 +264,7 @@
+ #define MIN_BUC_POW2 (sizeof(void*) > 4 ? 3 : 2) /* Allow for 4-byte arena. */
+ #define MIN_BUCKET (MIN_BUC_POW2 * BUCKETS_PER_POW2)
+
+-#if !(defined(I286) || defined(atarist))
++#if !defined(I286)
+ /* take 2k unless the block is bigger than that */
+ # define LOG_OF_MIN_ARENA 11
+ #else
+@@ -551,8 +551,8 @@
+ */
+ #define u_short unsigned short
+
+-/* 286 and atarist like big chunks, which gives too much overhead. */
+-#if (defined(RCHECK) || defined(I286) || defined(atarist)) && defined(PACK_MALLOC)
++/* 286 like big chunks, which gives too much overhead. */
++#if (defined(RCHECK) || defined(I286)) && defined(PACK_MALLOC)
+ # undef PACK_MALLOC
+ #endif
+
+@@ -1734,16 +1734,14 @@
+ /* Second, check alignment. */
+ slack = 0;
+
+-#if !defined(atarist) /* on the atari we dont have to worry about this */
+-# ifndef I286 /* The sbrk(0) call on the I286 always returns the next segment */
++#ifndef I286 /* The sbrk(0) call on the I286 always returns the next segment */
+ /* WANTED_ALIGNMENT may be more than NEEDED_ALIGNMENT, but this may
+ improve performance of memory access. */
+ if (PTR2UV(cp) & (WANTED_ALIGNMENT - 1)) { /* Not aligned. */
+ slack = WANTED_ALIGNMENT - (PTR2UV(cp) & (WANTED_ALIGNMENT - 1));
+ add += slack;
+ }
+-# endif
+-#endif /* !atarist */
++#endif
+
+ if (add) {
+ DEBUG_m(PerlIO_printf(Perl_debug_log,
+--- perl-5.12.3/miniperlmain.c 2011-01-09 20:20:57.000000000 +0000
++++ perl-5.12.3/miniperlmain.c 2011-02-21 09:38:49.000000000 +0000
+@@ -45,7 +45,7 @@
+ #if defined (atarist)
+ /* The Atari operating system doesn't have a dynamic stack. The
+ stack size is determined from this value. */
+-long _stksize = 64 * 1024;
++long _stksize = 256 * 1024;
+ #endif
+
+ #if defined(PERL_GLOBAL_STRUCT_PRIVATE)
+--- perl-5.12.3/os2/perlrexx.c 2010-11-21 21:40:56.000000000 +0000
++++ perl-5.12.3/os2/perlrexx.c 2011-02-21 09:42:49.000000000 +0000
+@@ -38,7 +38,7 @@
+ #if defined (atarist)
+ /* The Atari operating system doesn't have a dynamic stack. The
+ stack size is determined from this value. */
+-long _stksize = 64 * 1024;
++long _stksize = 256 * 1024;
+ #endif
+
+ /* Register any extra external extensions */
+--- perl-5.12.3/perl.c 2011-02-21 09:17:19.000000000 +0000
++++ perl-5.12.3/perl.c 2011-02-21 09:38:50.000000000 +0000
+@@ -3272,10 +3272,6 @@
+ "\n\nOS/2 port Copyright (c) 1990, 1991, Raymond Chen, Kai Uwe Rommel\n"
+ "Version 5 port Copyright (c) 1994-2002, Andreas Kaiser, Ilya Zakharevich\n");
+ #endif
+-#ifdef atarist
+- PerlIO_printf(PerlIO_stdout(),
+- "atariST series port, ++jrb bammi@cadence.com\n");
+-#endif
+ #ifdef __BEOS__
+ PerlIO_printf(PerlIO_stdout(),
+ "BeOS port Copyright Tom Spindler, 1997-1999\n");
+--- perl-5.12.3/perl.h 2011-01-09 20:20:57.000000000 +0000
++++ perl-5.12.3/perl.h 2011-02-21 09:38:50.000000000 +0000
+@@ -497,7 +497,7 @@
+ */
+
+ /* define this once if either system, instead of cluttering up the src */
+-#if defined(MSDOS) || defined(atarist) || defined(WIN32) || defined(NETWARE)
++#if defined(MSDOS) || defined(WIN32) || defined(NETWARE)
+ #define DOSISH 1
+ #endif
+
+--- perl-5.12.3/perlio.c 2009-04-14 23:47:25.000000000 +0000
++++ perl-5.12.3/perlio.c 2010-03-23 18:36:15.000000000 +0000
+@@ -135,17 +135,6 @@
+ * This used to be contents of do_binmode in doio.c
+ */
+ #ifdef DOSISH
+-# if defined(atarist)
+- PERL_UNUSED_ARG(iotype);
+- if (!fflush(fp)) {
+- if (mode & O_BINARY)
+- ((FILE *) fp)->_flag |= _IOBIN;
+- else
+- ((FILE *) fp)->_flag &= ~_IOBIN;
+- return 1;
+- }
+- return 0;
+-# else
+ dTHX;
+ PERL_UNUSED_ARG(iotype);
+ #ifdef NETWARE
+@@ -153,7 +142,7 @@
+ #else
+ if (PerlLIO_setmode(fileno(fp), mode) != -1) {
+ #endif
+-# if defined(WIN32) && defined(__BORLANDC__)
++# if defined(WIN32) && defined(__BORLANDC__)
+ /*
+ * The translation mode of the stream is maintained independent
+ of
+@@ -169,12 +158,11 @@
+ fp->flags |= _F_BIN;
+ else
+ fp->flags &= ~_F_BIN;
+-# endif
++# endif
+ return 1;
+ }
+ else
+ return 0;
+-# endif
+ #else
+ # if defined(USEMYBINMODE)
+ dTHX;
+--- perl-5.12.3/pp_sys.c 2011-01-09 20:20:58.000000000 +0000
++++ perl-5.12.3/pp_sys.c 2011-02-21 09:38:50.000000000 +0000
+@@ -3308,14 +3308,6 @@
+ RETPUSHNO;
+ }
+
+-#if defined(atarist) /* this will work with atariST. Configure will
+- make guesses for other systems. */
+-# define FILE_base(f) ((f)->_base)
+-# define FILE_ptr(f) ((f)->_ptr)
+-# define FILE_cnt(f) ((f)->_cnt)
+-# define FILE_bufsiz(f) ((f)->_cnt + ((f)->_ptr - (f)->_base))
+-#endif
+-
+ PP(pp_fttext)
+ {
+ dVAR;
+@@ -5567,30 +5559,6 @@
+ case 8:
+ retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);
+ break;
+-#ifdef atarist
+- case 9:
+- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
+- break;
+- case 10:
+- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
+- break;
+- case 11:
+- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
+- a[10]);
+- break;
+- case 12:
+- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
+- a[10],a[11]);
+- break;
+- case 13:
+- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
+- a[10],a[11],a[12]);
+- break;
+- case 14:
+- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
+- a[10],a[11],a[12],a[13]);
+- break;
+-#endif /* atarist */
+ }
+ SP = ORIGMARK;
+ PUSHi(retval);
+--- perl-5.12.3/util.c 2011-01-09 20:20:58.000000000 +0000
++++ perl-5.12.3/util.c 2011-02-21 09:38:51.000000000 +0000
+@@ -2545,7 +2545,7 @@
+ return PerlIO_fdopen(p[This], mode);
+ }
+ #else
+-#if defined(atarist) || defined(EPOC)
++#if defined(EPOC)
+ FILE *popen();
+ PerlIO *
+ Perl_my_popen(pTHX_ const char *cmd, const char *mode)
+@@ -2994,7 +2994,7 @@
+ }
+ #endif
+
+-#if defined(atarist) || defined(OS2) || defined(EPOC)
++#if defined(OS2) || defined(EPOC)
+ int pclose();
+ #ifdef HAS_FORK
+ int /* Cannot prototype with I32
+@@ -3111,7 +3111,7 @@
+ I32 len = 0;
+ int retval;
+ char *bufend;
+-#if defined(DOSISH) && !defined(OS2) && !defined(atarist)
++#if defined(DOSISH) && !defined(OS2)
+ # define SEARCH_EXTS ".bat", ".cmd", NULL
+ # define MAX_EXT_LEN 4
+ #endif
+@@ -3234,28 +3234,25 @@
+
+ bufend = s + strlen(s);
+ while (s < bufend) {
+-#if defined(atarist) || defined(DOSISH)
++#if defined(DOSISH)
+ for (len = 0; *s
+-# ifdef atarist
+- && *s != ','
+-# endif
+ && *s != ';'; len++, s++) {
+ if (len < sizeof tmpbuf)
+ tmpbuf[len] = *s;
+ }
+ if (len < sizeof tmpbuf)
+ tmpbuf[len] = '\0';
+-#else /* ! (atarist || DOSISH) */
++#else /* ! (DOSISH) */
+ s = delimcpy(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend,
+ ':',
+ &len);
+-#endif /* ! (atarist || DOSISH) */
++#endif /* ! (DOSISH) */
+ if (s < bufend)
+ s++;
+ if (len + 1 + strlen(scriptname) + MAX_EXT_LEN >= sizeof tmpbuf)
+ continue; /* don't search dir with too-long name */
+ if (len
+-# if defined(atarist) || defined(DOSISH)
++# if defined(DOSISH)
+ && tmpbuf[len - 1] != '/'
+ && tmpbuf[len - 1] != '\\'
+ # endif
+--- perl-5.12.3/hints/freemint.sh 2011-01-09 20:20:58.000000000 +0000
++++ perl-5.12.3/hints/freemint.sh 2011-02-21 09:38:51.000000000 +0000
+@@ -0,0 +1,34 @@
++# hints/freemint.sh
++#
++# talk to guido@freemint.de if you want to change this file.
++# Please read the README.mint file.
++#
++# misc stuff
++
++archname="m68k-freemint"
++
++cccdlflags=' '; # avoid -fPIC
++ccdlflags="-Wl,-whole-archive -lgcc -lpthread -Wl,-no-whole-archive"
++
++# libs
++libpth="$prefix/lib /usr/local/lib /usr/lib"
++glibpth="$libpth"
++xlibpth="$libpth"
++
++ccflags="$ccflags -D_GNU_SOURCE"
++libswanted='m dld'
++dl_src='dl_dld.xs'
++dlext='o'
++lddlflags='-r'
++ldflags='-static'
++so='none'
++useshrplib='false'
++
++#sbrk() returns -1 (failure) somewhere in lib/unicore/mktables at
++#around 14M, so we need to use system malloc() as our sbrk()
++malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"'
++
++# Locales aren't feeling well. We crash if -Ox used.
++locale_cflags='optimize="-O0"'
++LC_ALL=C; export LC_ALL;
++LANG=C; export LANG;
diff --git a/dev-lang/perl/files/perl-5.8.8-darwin-cc-ld.patch b/dev-lang/perl/files/perl-5.8.8-darwin-cc-ld.patch
new file mode 100644
index 0000000..b96eea8
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.8.8-darwin-cc-ld.patch
@@ -0,0 +1,22 @@
+Use $CC to link (and check for broken compilers), such that we don't get
+linked modules of a different bitness.
+http://bugs.gentoo.org/show_bug.cgi?id=297751
+
+--- hints/darwin.sh
++++ hints/darwin.sh
+@@ -128,13 +128,13 @@
+ ccflags="${ccflags} ${cppflags}"
+
+ # Known optimizer problems.
+-case "`cc -v 2>&1`" in
++case "`${cc:-gcc} -v 2>&1`" in
+ *"3.1 20020105"*) toke_cflags='optimize=""' ;;
+ esac
+
+ # Shared library extension is .dylib.
+ # Bundle extension is .bundle.
+-ld='cc';
++ld="${cc:-gcc}";
+ so='dylib';
+ dlext='bundle';
+ usedl='define';
diff --git a/dev-lang/perl/files/perl-5.8.8-solaris-relocation.patch b/dev-lang/perl/files/perl-5.8.8-solaris-relocation.patch
new file mode 100644
index 0000000..f2df825
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.8.8-solaris-relocation.patch
@@ -0,0 +1,21 @@
+http://sourceware.org/ml/binutils/2005-12/msg00008.html
+--- hints/solaris_2.sh
++++ hints/solaris_2.sh
+@@ -289,7 +289,7 @@
+
+ END
+ ccdlflags="$ccdlflags -Wl,-E"
+- lddlflags="$lddlflags -Wl,-E -G"
++ lddlflags="$lddlflags -shared"
+ fi
+ fi
+
+@@ -555,7 +555,7 @@
+ : #ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
+ fi
+ ldflags="$ldflags -m64"
+- lddlflags="$lddlflags -G -m64"
++ lddlflags="$lddlflags -m64"
+ ;;
+ *)
+ ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
diff --git a/dev-lang/perl/files/perl-5.8.8-solaris11.patch b/dev-lang/perl/files/perl-5.8.8-solaris11.patch
new file mode 100644
index 0000000..6ba72e0
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.8.8-solaris11.patch
@@ -0,0 +1,14 @@
+Thanks to the nice OpenSolaris guys, I finally figured out that on
+OpenSolaris 11, the header dependencies have changed.
+
+--- perl.h
++++ perl.h
+@@ -1192,6 +1192,8 @@
+ */
+
+ #if defined(I_SYSMODE) && !defined(PERL_MICRO)
++#include <sys/stat.h>
++#include <sys/vnode.h>
+ #include <sys/mode.h>
+ #endif
+
diff --git a/dev-lang/perl/files/perl-5.8.8-usr-local.patch b/dev-lang/perl/files/perl-5.8.8-usr-local.patch
new file mode 100644
index 0000000..c44b786
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.8.8-usr-local.patch
@@ -0,0 +1,25 @@
+# remove /usr/local paths from all stuff thats used
+# in Configure script, locincpth, loclibpth and glibpth are sedded
+# afterwards not to conflict with the lib32 and lib64 patches
+
+diff -rubB perl-5.8.8.orig/Configure perl-5.8.8/Configure
+--- perl-5.8.8.orig/Configure Tue Jan 15 10:41:29 2008
++++ perl-5.8.8/Configure Tue Jan 15 10:44:59 2008
+@@ -4424,7 +4422,7 @@
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
++ plibpth="$incpath/usr/lib /usr/ccs/lib"
+ fi;;
+ esac
+ case "$libpth" in
+@@ -19144,7 +19142,7 @@
+ case "$ranlib" in
+ :) ranlib='';;
+ '')
+- ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
++ ranlib=`./loc ranlib X /usr/bin /bin`
+ $test -f $ranlib || ranlib=''
+ ;;
+ esac
diff --git a/dev-lang/perl/files/perl-fix_h2ph_include_quote.patch b/dev-lang/perl/files/perl-fix_h2ph_include_quote.patch
new file mode 100644
index 0000000..a71fbe6
--- /dev/null
+++ b/dev-lang/perl/files/perl-fix_h2ph_include_quote.patch
@@ -0,0 +1,61 @@
+Subject: Fix h2ph with double-quote-delimited #include directives.
+
+Allow the quote mark delimiter also for those #include directives chased with "h2ph -a".
+
+Debian bug #479762.
+
+Also add the directory prefix of the current file when the quote syntax is
+used; 'require' will only look in @INC, not the current directory.
+
+Upstream change 33835.
+--- a/utils/h2ph.PL
++++ b/utils/h2ph.PL
+@@ -85,7 +85,7 @@ sub reindent($) {
+ }
+
+ my ($t, $tab, %curargs, $new, $eval_index, $dir, $name, $args, $outfile);
+-my ($incl, $incl_type, $next);
++my ($incl, $incl_type, $incl_quote, $next);
+ while (defined (my $file = next_file())) {
+ if (-l $file and -d $file) {
+ link_if_possible($file) if ($opt_l);
+@@ -186,9 +186,10 @@ while (defined (my $file = next_file())) {
+ print OUT $t,"unless(defined(\&$name)) {\n sub $name () {\t",$new,";}\n}\n";
+ }
+ }
+- } elsif (/^(include|import|include_next)\s*[<\"](.*)[>\"]/) {
++ } elsif (/^(include|import|include_next)\s*([<\"])(.*)[>\"]/) {
+ $incl_type = $1;
+- $incl = $2;
++ $incl_quote = $2;
++ $incl = $3;
+ if (($incl_type eq 'include_next') ||
+ ($opt_e && exists($bad_file{$incl}))) {
+ $incl =~ s/\.h$/.ph/;
+@@ -221,6 +222,10 @@ while (defined (my $file = next_file())) {
+ "warn(\$\@) if \$\@;\n");
+ } else {
+ $incl =~ s/\.h$/.ph/;
++ # copy the prefix in the quote syntax (#include "x.h") case
++ if ($incl !~ m|/| && $incl_quote eq q{"} && $file =~ m|^(.*)/|) {
++ $incl = "$1/$incl";
++ }
+ print OUT $t,"require '$incl';\n";
+ }
+ } elsif (/^ifdef\s+(\w+)/) {
+@@ -724,8 +729,13 @@ sub queue_includes_from
+ $line .= <HEADER>;
+ }
+
+- if ($line =~ /^#\s*include\s+<(.*?)>/) {
+- push(@ARGV, $1) unless $Is_converted{$1};
++ if ($line =~ /^#\s*include\s+([<"])(.*?)[>"]/) {
++ my ($delimiter, $new_file) = ($1, $2);
++ # copy the prefix in the quote syntax (#include "x.h") case
++ if ($delimiter eq q{"} && $file =~ m|^(.*)/|) {
++ $new_file = "$1/$new_file";
++ }
++ push(@ARGV, $new_file) unless $Is_converted{$new_file};
+ }
+ }
+ close HEADER;