--- debian/changelog	2013-02-09 13:31:34.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/changelog	2013-02-15 09:28:27.000000000 +0000
@@ -1,3 +1,13 @@
+perl (5.14.2-18ma1) raring; urgency=low
+
+  [ Wookey ]
+  * Include Niko Tyni's multiarch support
+
+  [ Neil Williams ]
+  * Add perl-cross-debian support
+
+ -- Wookey <wookey@e102475-lin>  Mon, 11 Feb 2013 23:49:28 +0000
+
 perl (5.14.2-18) unstable; urgency=low
 
   * Fix a squeeze regression with STDIN and signal handlers.
--- debian/check-require	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/check-require	2013-02-15 09:22:07.000000000 +0000
@@ -45,7 +45,8 @@
 	# usr/*/perl/*/auto/File/Glob/Glob.so and the like should be ignored
 	return () if m|/| && !/\.p[hlm]$/;
 
-	s|usr/[^/]+/perl/[^/]+/||;
+	s|usr/share/perl/[^/]+/||;
+	s|usr/lib/[^/]+/perl/[^/]+/||;
 
 	s|/|::|g if s/\.pm$//;
 	return ($_);
--- debian/config.debian	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/config.debian	2013-02-15 09:22:07.000000000 +0000
@@ -87,6 +87,8 @@
     ldflags="$ldflags $(dpkg-buildflags --get LDFLAGS)"
 fi
 
+archtriplet=`dpkg-architecture -qDEB_HOST_MULTIARCH`
+
 # post-configure tweaks
 cp debian/config.over .
 
@@ -101,7 +103,7 @@
     -Darchname=$gnu_type			\
     -Dprefix=/usr				\
     -Dprivlib=/usr/share/perl/$ver		\
-    -Darchlib=/usr/lib/perl/$ver		\
+    -Darchlib=/usr/lib/$archtriplet/perl/$ver		\
     -Dvendorprefix=/usr				\
     -Dvendorlib=/usr/share/perl5		\
     -Dvendorarch=/usr/lib/perl5			\
--- debian/config.over	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/config.over	2013-02-15 09:22:07.000000000 +0000
@@ -9,7 +9,7 @@
 # no versions under vendorlib
 vendorlib_stem=
 
-# remove -rpath (shared libperl is moved to /usr/lib by rules)
+# remove -rpath (shared libperl is moved to /usr/lib/<triplet> by rules)
 tmp=
 for t in $ccdlflags
 do
--- debian/control	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/control	2013-02-15 09:22:07.000000000 +0000
@@ -16,13 +16,16 @@
 Essential: yes
 Priority: required
 Architecture: any
-Pre-Depends: ${shlibs:Depends}, dpkg (>= 1.14.20)
+Multi-Arch: foreign
+Pre-Depends: ${shlibs:Depends}, ${static:PreDepends}, dpkg (>= 1.14.20)
 Conflicts: safe-rm (<< 0.8),
  update-inetd (<< 4.41),
  defoma (<< 0.11.12),
  doc-base (<< 0.10.3),
  mono-gac (<< 2.10.8.1-3)
-Breaks: autoconf2.13 (<< 2.13-45),
+Breaks: perl (<< 5.14.2-13),
+ libcgi-fast-perl (<< 5.14.2-13),
+ autoconf2.13 (<< 2.13-45),
  libscalar-list-utils-perl (<< 1:1.23),
  libfile-spec-perl (<< 3.3300),
  libxsloader-perl (<< 0.13),
@@ -48,6 +51,7 @@
 Package: libcgi-fast-perl
 Priority: optional
 Architecture: all
+Multi-Arch: foreign
 Depends: perl (>= ${source:Version}), perl (<< ${Next-Upstream-Version}~), libfcgi-perl
 Description: CGI::Fast Perl module
  CGI::Fast is a subclass of the CGI object created by CGI.pm.  It is
@@ -61,15 +65,145 @@
 Section: doc
 Priority: optional
 Architecture: all
+Multi-Arch: foreign
 Depends: perl (>= ${Upstream-Version}-1)
 Suggests: man-browser, groff
 Description: Perl documentation
  Perl manual pages, POD documentation and the `perldoc' program.  If you are
  writing Perl programs, you almost certainly need this.
 
+Package: perl-debug
+Section: debug
+Priority: extra
+Architecture: any
+Depends: perl (= ${binary:Version}), ${shlibs:Depends}
+Description: debug-enabled Perl interpreter
+ debugperl provides a debug-enabled version of Perl which can produce
+ extensive information about the interpreter as it compiles and executes
+ a program (see the -D switch in perlrun(1)).
+ .
+ Note that this package is primarily of use in debugging *Perl* rather
+ than perl programs, which may be traced/debugged using the standard
+ perl binary using the -d switch (see perldebug(1)).
+
+Package: libperl5.14
+Section: libs
+Priority: optional
+Architecture: any
+Multi-Arch: same
+Depends: ${shlibs:Depends}
+Description: shared Perl library
+ This package is required by programs which embed a Perl interpreter to
+ ensure that the correct version of `perl-base' is installed.  It
+ additionally contains the shared Perl library on architectures where the
+ perl binary is linked to libperl.a (currently only i386, for performance
+ reasons).  In other cases the actual library is in the `perl-base' package.
+
+Package: libperl-dev
+Section: libdevel
+Priority: optional
+Architecture: any
+Multi-Arch: same
+Depends: perl (= ${binary:Version}), libperl5.14 (= ${binary:Version}),
+ libc6-dev | libc-dev
+Description: Perl library: development files
+ Files for developing applications which embed a Perl interpreter.
+
+Package: perl
+Priority: standard
+Architecture: any
+Multi-Arch: same
+Depends: perl-base (= ${binary:Version}), perl-modules (>= ${source:Version}), ${shlibs:Depends}
+Conflicts: libjson-pp-perl (<< 2.27200-2)
+Breaks: perl-doc (<< ${Upstream-Version}-1),
+ libdigest-md5-perl (<< 2.51),
+ libmime-base64-perl (<< 3.13),
+ libtime-hires-perl (<< 1.9721.01),
+ libstorable-perl (<< 2.27),
+ libdigest-sha-perl (<< 5.61),
+ libsys-syslog-perl (<< 0.27),
+ libcompress-zlib-perl (<< 2.033),
+ libcompress-raw-zlib-perl (<< 2.033),
+ libcompress-raw-bzip2-perl (<< 2.033),
+ libio-compress-zlib-perl (<< 2.033),
+ libio-compress-bzip2-perl (<< 2.033),
+ libio-compress-base-perl (<< 2.033),
+ libio-compress-perl (<< 2.033),
+ libthreads-perl (<< 1.83),
+ libthreads-shared-perl (<< 1.37),
+ libtime-piece-perl (<< 1.20.01),
+ libencode-perl (<< 2.42.01),
+ libdevel-dprof-perl (<< 20110228.00),
+ mrtg (<< 2.16.3-3.1),
+ libhtml-template-compiled-perl (<< 0.95-1),
+ libperl-apireference-perl (<< 0.09-1),
+ dh-make-perl (<< 0.73-1),
+ libregexp-optimizer-perl (<< 0.15-3),
+ libxml-parser-lite-tree-perl (<< 0.14-1),
+ libyaml-perl (<< 0.73-1),
+ libload-perl (<< 0.20-1),
+ libsoap-lite-perl (<< 0.712-4),
+ libnet-jifty-perl (<< 0.14-1),
+ ftpmirror (<< 1.96+dfsg-13)
+Replaces: perl-base (<< 5.10.1-12),
+ perl-doc (<< 5.8.0-1),
+ perl-modules (<< 5.8.1-1),
+ libarchive-tar-perl (<= 1.38-2),
+ libdigest-md5-perl,
+ libmime-base64-perl,
+ libtime-hires-perl,
+ libstorable-perl,
+ libdigest-sha-perl,
+ libtime-piece-perl,
+ libsys-syslog-perl,
+ libcompress-zlib-perl,
+ libcompress-raw-zlib-perl,
+ libcompress-raw-bzip2-perl,
+ libio-compress-zlib-perl,
+ libio-compress-bzip2-perl,
+ libio-compress-base-perl,
+ libio-compress-perl,
+ libthreads-perl,
+ libthreads-shared-perl,
+ libmodule-corelist-perl (<< 2.14-2),
+ libencode-perl,
+ libdevel-dprof-perl
+Provides: data-dumper, perl5,
+ libdigest-md5-perl,
+ libmime-base64-perl,
+ libtime-hires-perl,
+ libstorable-perl,
+ libdigest-sha-perl,
+ libsys-syslog-perl,
+ libcompress-zlib-perl,
+ libcompress-raw-zlib-perl,
+ libcompress-raw-bzip2-perl,
+ libio-compress-zlib-perl,
+ libio-compress-bzip2-perl,
+ libio-compress-base-perl,
+ libio-compress-perl,
+ libthreads-perl,
+ libthreads-shared-perl,
+ libtime-piece-perl,
+ libencode-perl,
+ libdevel-dprof-perl
+Recommends: netbase, libdevel-dprof-perl
+Suggests: perl-doc, libterm-readline-gnu-perl | libterm-readline-perl-perl,
+ make
+Description: Larry Wall's Practical Extraction and Report Language
+ An interpreted scripting language, known among some as "Unix's Swiss
+ Army Chainsaw".
+ .
+ Perl is optimised for scanning arbitrary text files and system
+ administration.  It has built-in extended regular expression matching
+ and replacement, a data-flow mechanism to improve security with
+ setuid scripts and is extensible via modules that can interface to C
+ libraries.
+
 Package: perl-modules
 Priority: standard
 Architecture: all
+Multi-Arch: foreign
 Depends: perl (>= ${Upstream-Version}-1),
  libswitch-perl,
  libclass-isa-perl
@@ -127,7 +261,8 @@
  libhttp-tiny-perl (<< 0.012),
  libfile-path-perl (<< 2.08.01),
  libshell-perl (<< 0.72.01)
-Replaces: libpod-parser-perl,
+Replaces: perl (<= 5.14.2-12),
+ libpod-parser-perl,
  libansicolor-perl,
  libfile-temp-perl,
  libnet-perl,
@@ -236,128 +371,3 @@
  Other packages should not depend on `perl-modules' directly, they
  should use `perl' (which depends on `perl-modules') instead.
 
-Package: perl-debug
-Section: debug
-Priority: extra
-Architecture: any
-Depends: perl (= ${binary:Version}), ${shlibs:Depends}
-Description: debug-enabled Perl interpreter
- debugperl provides a debug-enabled version of Perl which can produce
- extensive information about the interpreter as it compiles and executes
- a program (see the -D switch in perlrun(1)).
- .
- Note that this package is primarily of use in debugging *Perl* rather
- than perl programs, which may be traced/debugged using the standard
- perl binary using the -d switch (see perldebug(1)).
-
-Package: libperl5.14
-Section: libs
-Priority: optional
-Architecture: any
-Depends: ${shlibs:Depends}, perl-base (= ${binary:Version})
-Replaces: perl-base (<= 5.8.7-4)
-Description: shared Perl library
- This package is required by programs which embed a Perl interpreter to
- ensure that the correct version of `perl-base' is installed.  It
- additionally contains the shared Perl library on architectures where the
- perl binary is linked to libperl.a (currently only i386, for performance
- reasons).  In other cases the actual library is in the `perl-base' package.
-
-Package: libperl-dev
-Section: libdevel
-Priority: optional
-Architecture: any
-Depends: perl (= ${binary:Version}), libperl5.14 (= ${binary:Version}),
- libc6-dev | libc-dev
-Description: Perl library: development files
- Files for developing applications which embed a Perl interpreter.
-
-Package: perl
-Priority: standard
-Architecture: any
-Depends: perl-base (= ${binary:Version}), perl-modules (>= ${source:Version}), ${shlibs:Depends}
-Conflicts: libjson-pp-perl (<< 2.27200-2)
-Breaks: perl-doc (<< ${Upstream-Version}-1),
- libdigest-md5-perl (<< 2.51),
- libmime-base64-perl (<< 3.13),
- libtime-hires-perl (<< 1.9721.01),
- libstorable-perl (<< 2.27),
- libdigest-sha-perl (<< 5.71-2),
- libsys-syslog-perl (<< 0.27),
- libcompress-zlib-perl (<< 2.033),
- libcompress-raw-zlib-perl (<< 2.033),
- libcompress-raw-bzip2-perl (<< 2.033),
- libio-compress-zlib-perl (<< 2.033),
- libio-compress-bzip2-perl (<< 2.033),
- libio-compress-base-perl (<< 2.033),
- libio-compress-perl (<< 2.033),
- libthreads-perl (<< 1.83),
- libthreads-shared-perl (<< 1.37),
- libtime-piece-perl (<< 1.20.01),
- libencode-perl (<< 2.42.01),
- libdevel-dprof-perl (<< 20110228.00),
- mrtg (<< 2.16.3-3.1),
- libhtml-template-compiled-perl (<< 0.95-1),
- libperl-apireference-perl (<< 0.09-1),
- dh-make-perl (<< 0.73-1),
- libregexp-optimizer-perl (<< 0.15-3),
- libxml-parser-lite-tree-perl (<< 0.14-1),
- libyaml-perl (<< 0.73-1),
- libload-perl (<< 0.20-1),
- libsoap-lite-perl (<< 0.712-4),
- libnet-jifty-perl (<< 0.14-1),
- ftpmirror (<< 1.96+dfsg-13)
-Replaces: perl-base (<< 5.10.1-12),
- perl-doc (<< 5.8.0-1),
- perl-modules (<< 5.8.1-1),
- libarchive-tar-perl (<= 1.38-2),
- libdigest-md5-perl,
- libmime-base64-perl,
- libtime-hires-perl,
- libstorable-perl,
- libdigest-sha-perl,
- libtime-piece-perl,
- libsys-syslog-perl,
- libcompress-zlib-perl,
- libcompress-raw-zlib-perl,
- libcompress-raw-bzip2-perl,
- libio-compress-zlib-perl,
- libio-compress-bzip2-perl,
- libio-compress-base-perl,
- libio-compress-perl,
- libthreads-perl,
- libthreads-shared-perl,
- libmodule-corelist-perl (<< 2.14-2),
- libencode-perl,
- libdevel-dprof-perl
-Provides: data-dumper, perl5,
- libdigest-md5-perl,
- libmime-base64-perl,
- libtime-hires-perl,
- libstorable-perl,
- libdigest-sha-perl,
- libsys-syslog-perl,
- libcompress-zlib-perl,
- libcompress-raw-zlib-perl,
- libcompress-raw-bzip2-perl,
- libio-compress-zlib-perl,
- libio-compress-bzip2-perl,
- libio-compress-base-perl,
- libio-compress-perl,
- libthreads-perl,
- libthreads-shared-perl,
- libtime-piece-perl,
- libencode-perl,
- libdevel-dprof-perl
-Recommends: netbase, libdevel-dprof-perl
-Suggests: perl-doc, libterm-readline-gnu-perl | libterm-readline-perl-perl,
- make
-Description: Larry Wall's Practical Extraction and Report Language
- An interpreted scripting language, known among some as "Unix's Swiss
- Army Chainsaw".
- .
- Perl is optimised for scanning arbitrary text files and system
- administration.  It has built-in extended regular expression matching
- and replacement, a data-flow mechanism to improve security with
- setuid scripts and is extensible via modules that can interface to C
- libraries.
--- debian/libperl5.14.files	1970-01-01 01:00:00.000000000 +0100
+++ perl/codehelp/perl-5.14.2/debian/libperl5.14.files	2013-02-15 09:22:07.000000000 +0000
@@ -0,0 +1,3 @@
+# note: debian/rules will the arch-specific perl-base contents
+# in usr/lib/<triplet>/perl to libperl5.X.
+usr/lib/*/libperl.so.*
--- debian/libperl5.14.files.static	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/libperl5.14.files.static	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/libperl.so.*
--- debian/libperl-dev.files	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/libperl-dev.files	2013-02-15 09:22:07.000000000 +0000
@@ -1,2 +1,2 @@
-usr/lib/libperl.a
-usr/lib/libperl.so
+usr/lib/*/libperl.a
+usr/lib/*/libperl.so
--- debian/patches/debian/fakeroot.diff	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/patches/debian/fakeroot.diff	2013-02-15 10:21:09.000000000 +0000
@@ -15,11 +15,9 @@
  Makefile.SH |    9 ++-------
  1 file changed, 2 insertions(+), 7 deletions(-)
 
-diff --git a/Makefile.SH b/Makefile.SH
-index eb6326a..1dac585 100755
 --- a/Makefile.SH
 +++ b/Makefile.SH
-@@ -36,12 +36,7 @@ case "$useshrplib" in
+@@ -36,12 +36,7 @@
  true)
  	# Prefix all runs of 'miniperl' and 'perl' with
  	# $ldlibpth so that ./perl finds *this* shared libperl.
@@ -33,7 +31,7 @@
  
  	pldlflags="$cccdlflags"
  	static_ldflags=''
-@@ -112,7 +107,7 @@ true)
+@@ -112,7 +107,7 @@
  	    ;;
  	esac
  	case "$ldlibpthname" in
--- debian/patches/debian/Makefile-cross.diff	1970-01-01 01:00:00.000000000 +0100
+++ perl/codehelp/perl-5.14.2/debian/patches/debian/Makefile-cross.diff	2013-02-15 10:21:35.000000000 +0000
@@ -0,0 +1,142 @@
+Description: Add existing patch from perl-cross-debian
+ .
+ perl (5.14.2-18ma1) raring; urgency=low
+ .
+   [ Wookey ]
+   * Include Niko Tyni's multiarch support
+ .
+   [ Neil Williams ]
+   * Add perl-cross-debian support
+Author: Neil Williams <codehelp@debian.org>
+
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -291,10 +291,12 @@
+ OBJ_EXT = $_o
+ PATH_SEP = $p_
+ 
++ifeq (,\$(CROSS_PERL))
+ # Macros to invoke a copy of miniperl during the build.  Targets which
+ # are built using these macros should depend on \$(MINIPERL_EXE)
+ MINIPERL_EXE = miniperl\$(EXE_EXT)
+ MINIPERL = \$(LDLIBPTH) \$(RUN) ./miniperl\$(EXE_EXT) -Ilib
++HOST_MINIPERL = $(MINIPERL_EXE)
+ 
+ # Macros to invoke a copy of our fully operational perl during the build.
+ PERL_EXE = perl\$(EXE_EXT)
+@@ -303,6 +305,23 @@
+ # Macros to run our tests
+ RUN_TESTS = \$(LDLIBPTH) ./runtests
+ 
++else # CROSS_PERL
++
++# Macros to invoke a copy of miniperl during the build.  Targets which
++# are built using these macros should depend on \$(MINIPERL_EXE)
++MINIPERL_EXE = miniperl\$(EXE_EXT)
++MINIPERL = \$(CROSS_PERL)
++HOST_MINIPERL = \$(CROSS_PERL)
++
++# Macros to invoke a copy of our fully operational perl during the build.
++PERL_EXE = perl\$(EXE_EXT)
++RUN_PERL = \$(CROSS_PERL)
++
++# Macros to run our tests
++RUN_TESTS = echo "Not running tests"
++
++endif # CROSS_PERL
++
+ dynamic_ext = $dynamic_list
+ dynamic_ext_re = $dynamic_ext_re
+ static_ext = $static_list
+@@ -533,6 +552,9 @@
+ 	@echo " ";
+ 	@echo "	Everything is up to date. Type '$(MAKE) test' to run test suite."
+ 
++# Cross building requires a separate target to allow manipulation of the build tree
++extensions:     $(dynamic_ext) $(nonxs_ext)
++
+ .PHONY: all translators utilities
+ 
+ # Both git_version.h and lib/Config_git.pl are built
+@@ -616,6 +638,9 @@
+ 
+ globals$(OBJ_EXT): uudmap.h bitcount.h
+ 
++ifeq (,\$(CROSS_PERL))
++# If we're cross-building, we should have uudmap.h and bitcount.h
++# provided already
+ uudmap.h: bitcount.h
+ 
+ bitcount.h: generate_uudmap$(HOST_EXE_EXT)
+@@ -623,6 +648,7 @@
+ 
+ generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT)
+ 	$(CC) -o generate_uudmap$(EXE_EXT) $(LDFLAGS) generate_uudmap$(OBJ_EXT) $(libs)
++endif
+ 
+ miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h
+ 	$(CCCMD) $(PLDLFLAGS) $*.c
+@@ -795,18 +821,30 @@
+ 	aix*|beos*)
+ 		$spitshell >>$Makefile <<'!NO!SUBS!'
+ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
++ifeq (,$(CROSS_PERL))
+ 	$(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) \
+ 	    $(mini_obj) \
+ 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
+ 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++else
++	-rm $(MINIPERL_EXE)
++	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
++endif
++
+ !NO!SUBS!
+ 		;;
+ 	next4*)
+ 		$spitshell >>$Makefile <<'!NO!SUBS!'
+ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) perlmini$(OBJ_EXT) opmini$(OBJ_EXT)
++ifeq (,$(CROSS_PERL))
+ 	$(CC) -o $(MINIPERL_EXE) $(mini_obj) \
+ 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
+ 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++else
++	-rm $(MINIPERL_EXE)
++	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
++endif
++
+ !NO!SUBS!
+ 		;;
+ 	darwin*)
+@@ -825,20 +863,32 @@
+ 		$spitshell >>$Makefile <<'!NO!SUBS!'
+ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
+ 	-@rm -f miniperl.xok
++ifeq (,$(CROSS_PERL))
+ 	$(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
+ 	    $(mini_obj) \
+ 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
+ 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++else
++	-rm $(MINIPERL_EXE)
++	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
++endif
++
+ !NO!SUBS!
+ 		;;
+ 	*)
+ 		$spitshell >>$Makefile <<'!NO!SUBS!'
+ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
+ 	-@rm -f miniperl.xok
++ifeq (,$(CROSS_PERL))
+ 	$(LDLIBPTH) $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
+ 	    $(mini_obj) \
+ 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
+ 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++else
++	-rm $(MINIPERL_EXE)
++	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
++endif
++
+ !NO!SUBS!
+ 		;;
+ 	esac
--- debian/patches/series	2013-02-09 13:29:12.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/patches/series	2013-02-15 09:31:52.000000000 +0000
@@ -76,3 +76,5 @@
 fixes/digest-sha-doublefree.diff
 fixes/64bitint-signedness-wraparound.diff
 fixes/stdin-sigchld.diff
+debian/Makefile-cross.diff
+
--- debian/perl-base.files	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/perl-base.files	2013-02-15 09:22:07.000000000 +0000
@@ -1,74 +1,76 @@
 usr/bin/perl
-usr/*/perl/*/Config.pm
-usr/*/perl/*/Config_heavy.pl
-usr/*/perl/*/Config_git.pl
-usr/*/perl/*/Cwd.pm
-usr/*/perl/*/DynaLoader.pm
-usr/*/perl/*/Errno.pm
-usr/*/perl/*/Fcntl.pm
-usr/*/perl/*/File/Glob.pm
-usr/*/perl/*/Hash/Util.pm
-usr/*/perl/*/IO.pm
-usr/*/perl/*/IO/File.pm
-usr/*/perl/*/IO/Handle.pm
-usr/*/perl/*/IO/Pipe.pm
-usr/*/perl/*/IO/Seekable.pm
-usr/*/perl/*/IO/Select.pm
-usr/*/perl/*/IO/Socket
-usr/*/perl/*/IO/Socket.pm
-usr/*/perl/*/List/Util.pm
-usr/*/perl/*/POSIX.pm
-usr/*/perl/*/Scalar/Util.pm
-usr/*/perl/*/Socket.pm
-usr/*/perl/*/XSLoader.pm
-usr/*/perl/*/auto/Cwd
-usr/*/perl/*/auto/Fcntl
-usr/*/perl/*/auto/File/Glob
-usr/lib/perl/*/auto/Hash/Util/Util.so
-usr/lib/perl/*/auto/re/re.so
-usr/lib/perl/*/auto/attributes/attributes.so
-usr/lib/perl/*/auto/IO
-usr/lib/perl/*/auto/List/Util
-usr/lib/perl/*/auto/POSIX/POSIX.so
-usr/lib/perl/*/auto/POSIX/autosplit.ix
-usr/lib/perl/*/auto/POSIX/load_imports.al
-usr/*/perl/*/auto/Socket
-usr/*/perl/*/lib.pm
-usr/*/perl/*/re.pm
 usr/*/man/man1/perl.1
-usr/*/perl/*/AutoLoader.pm
-usr/*/perl/*/Carp.pm
-usr/*/perl/*/Carp/Heavy.pm
-usr/*/perl/*/Exporter.pm
-usr/*/perl/*/Exporter/Heavy.pm
-usr/*/perl/*/File/Spec.pm
-usr/*/perl/*/File/Spec/Unix.pm
-usr/*/perl/*/FileHandle.pm
-usr/*/perl/*/Getopt/Long.pm
-usr/*/perl/*/IPC/Open2.pm
-usr/*/perl/*/IPC/Open3.pm
-usr/*/perl/*/SelectSaver.pm
-usr/*/perl/*/Symbol.pm
-usr/*/perl/*/Text/ParseWords.pm
-usr/*/perl/*/Text/Tabs.pm
-usr/*/perl/*/Text/Wrap.pm
-usr/*/perl/*/Tie/Hash.pm
-usr/*/perl/*/attributes.pm
-usr/*/perl/*/base.pm
-usr/*/perl/*/bytes.pm
-usr/*/perl/*/bytes_heavy.pl
-usr/*/perl/*/constant.pm
-usr/*/perl/*/fields.pm
-usr/*/perl/*/integer.pm
-usr/*/perl/*/locale.pm
-usr/*/perl/*/overload.pm
-usr/*/perl/*/strict.pm
-usr/*/perl/*/utf8.pm
-usr/*/perl/*/utf8_heavy.pl
-usr/*/perl/*/unicore/Heavy.pl
-usr/*/perl/*/unicore/To
-usr/*/perl/*/unicore/lib
-usr/*/perl/*/vars.pm
-usr/*/perl/*/warnings.pm
-usr/*/perl/*/warnings/register.pm
-usr/*/perl/*/feature.pm
+# note: the architecture specific ones in usr/lib/<triplet>/perl
+# will be moved to libperl5.X by debian/rules
+usr/**/perl/*/Config.pm
+usr/**/perl/*/Config_heavy.pl
+usr/**/perl/*/Config_git.pl
+usr/**/perl/*/Cwd.pm
+usr/**/perl/*/DynaLoader.pm
+usr/**/perl/*/Errno.pm
+usr/**/perl/*/Fcntl.pm
+usr/**/perl/*/File/Glob.pm
+usr/**/perl/*/Hash/Util.pm
+usr/**/perl/*/IO.pm
+usr/**/perl/*/IO/File.pm
+usr/**/perl/*/IO/Handle.pm
+usr/**/perl/*/IO/Pipe.pm
+usr/**/perl/*/IO/Seekable.pm
+usr/**/perl/*/IO/Select.pm
+usr/**/perl/*/IO/Socket
+usr/**/perl/*/IO/Socket.pm
+usr/**/perl/*/List/Util.pm
+usr/**/perl/*/POSIX.pm
+usr/**/perl/*/Scalar/Util.pm
+usr/**/perl/*/Socket.pm
+usr/**/perl/*/XSLoader.pm
+usr/**/perl/*/auto/Cwd
+usr/**/perl/*/auto/Fcntl
+usr/**/perl/*/auto/File/Glob
+usr/lib/*/perl/*/auto/Hash/Util/Util.so
+usr/lib/*/perl/*/auto/re/re.so
+usr/lib/*/perl/*/auto/attributes/attributes.so
+usr/lib/*/perl/*/auto/IO
+usr/lib/*/perl/*/auto/List/Util
+usr/lib/*/perl/*/auto/POSIX/POSIX.so
+usr/lib/*/perl/*/auto/POSIX/autosplit.ix
+usr/lib/*/perl/*/auto/POSIX/load_imports.al
+usr/**/perl/*/auto/Socket
+usr/**/perl/*/lib.pm
+usr/**/perl/*/re.pm
+usr/**/perl/*/AutoLoader.pm
+usr/**/perl/*/Carp.pm
+usr/**/perl/*/Carp/Heavy.pm
+usr/**/perl/*/Exporter.pm
+usr/**/perl/*/Exporter/Heavy.pm
+usr/**/perl/*/File/Spec.pm
+usr/**/perl/*/File/Spec/Unix.pm
+usr/**/perl/*/FileHandle.pm
+usr/**/perl/*/Getopt/Long.pm
+usr/**/perl/*/IPC/Open2.pm
+usr/**/perl/*/IPC/Open3.pm
+usr/**/perl/*/SelectSaver.pm
+usr/**/perl/*/Symbol.pm
+usr/**/perl/*/Text/ParseWords.pm
+usr/**/perl/*/Text/Tabs.pm
+usr/**/perl/*/Text/Wrap.pm
+usr/**/perl/*/Tie/Hash.pm
+usr/**/perl/*/attributes.pm
+usr/**/perl/*/base.pm
+usr/**/perl/*/bytes.pm
+usr/**/perl/*/bytes_heavy.pl
+usr/**/perl/*/constant.pm
+usr/**/perl/*/fields.pm
+usr/**/perl/*/integer.pm
+usr/**/perl/*/locale.pm
+usr/**/perl/*/overload.pm
+usr/**/perl/*/strict.pm
+usr/**/perl/*/utf8.pm
+usr/**/perl/*/utf8_heavy.pl
+usr/**/perl/*/unicore/Heavy.pl
+usr/**/perl/*/unicore/To
+usr/**/perl/*/unicore/lib
+usr/**/perl/*/vars.pm
+usr/**/perl/*/warnings.pm
+usr/**/perl/*/warnings/register.pm
+usr/**/perl/*/feature.pm
--- debian/perl-base.files.shared	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/perl-base.files.shared	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/libperl.so.*
--- debian/perl.files	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/perl.files	2013-02-15 09:22:07.000000000 +0000
@@ -1,2 +1,4 @@
-usr/bin
-usr/lib/perl
+# note that this fallback relies on the order of debian/control:
+# this package needs to come after any other packages with more
+# specific recipes for the directories
+usr/lib/*/perl
--- debian/perl-modules.files	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/perl-modules.files	2013-02-15 09:22:07.000000000 +0000
@@ -1 +1,5 @@
+# note that this fallback relies on the order of debian/control:
+# this package needs to come after any other packages with more
+# specific recipes for the directories
+usr/bin
 usr/share/perl
--- debian/rules	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/rules	2013-02-18 12:12:23.000000000 +0000
@@ -11,6 +11,7 @@
 #
 # <http://lists.alioth.debian.org/pipermail/perl-maintainers/2012-January/002870.html>
 
+# we use bash-specific functionality, at least "shopt -s globstar"
 export SHELL = /bin/bash
 
 fullversion := $(shell /bin/bash debian/config.debian --full-version)
@@ -19,12 +20,14 @@
 installtype := $(shell /bin/bash debian/config.debian --install-type)
 test_target := $(shell /bin/bash debian/config.debian --test-target)
 strip	    := $(shell /bin/bash debian/config.debian --strip)
+archtriplet := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 srcdir      := $(shell pwd)
 packages    := $(shell sed -n 's/^Package: *\(.*\)/\1/p' debian/control)
 tmp	    = debian/tmp
 bin         = $(tmp)/usr/bin
 man         = $(tmp)/usr/share/man
-lib         = $(tmp)/usr/lib/perl/$(version)
+hostlibs    = $(tmp)/usr/lib/perl/$(version)
+lib         = $(tmp)/usr/lib/$(archtriplet)/perl/$(version)
 share       = $(tmp)/usr/share/perl/$(version)
 build	    = debian/build
 debug       = $(build)/perl-debug/usr/lib/debug
@@ -35,29 +38,75 @@
 checkroot   = test `id -u` -eq 0
 checkperl   = $(SHELL) debian/checkperl
 
+# CROSSING
+# Don't configure - copy in cross files
+# NOTE: Different for static/shared/debug
+# usecrosscompile not set no target host etc
+# Don't build miniperl - use host perl
+# Later - build host miniperl
+# Later - find on host
+#
+
+DEB_BUILD_GNU_TYPE      ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_GNU_TYPE       ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+
 # this may differ from $(fullversion) for release candidates and the like
 package_upstream_version = $(shell dpkg-parsechangelog | \
         sed -ne 's/-[^-]\+$$//; s/^Version: *\([0-9]\+:\)*//p')
 
 package_version = $(shell dpkg-parsechangelog | sed -n 's/^Version: *//p')
 
+ifeq ($(DEB_HOST_GNU_TYPE), $(DEB_BUILD_GNU_TYPE))
+        HOST_PERL = 
+        PERL_TO_USE = $(srcdir)/perl.static
+        HEADER_DIR = /usr/include
+        OBJCOPY = objcopy
+        STRIP = strip
+        export ZLIB_INCLUDE=/usr/include
+        export ZLIB_LIB=/usr/lib
+        export BZIP2_INCLUDE=/usr/include
+        export BZIP2_LIB=/usr/lib
+        export INCLUDE=/usr/include
+        export LIB=/usr/lib
+else
+        HOST_PERL = $(shell which perl)
+        PERL_TO_USE = $(HOST_PERL)
+        ifneq (,$(wildcard /usr/lib/$(DEB_BUILD_MULTIARCH)/perl))
+           HOST_PERL_LIBS = /usr/lib/$(DEB_BUILD_MULTIARCH)/perl/$(package_upstream_version)
+        else
+          HOST_PERL_LIBS = /usr/lib/perl/$(package_upstream_version)
+        endif
+        HEADER_DIR  = /usr/$(DEB_HOST_GNU_TYPE)/include
+        OBJCOPY = $(DEB_HOST_GNU_TYPE)-objcopy
+        STRIP = $(DEB_HOST_GNU_TYPE)-strip
+        export ZLIB_INCLUDE=/usr/$(DEB_HOST_GNU_TYPE)/include
+        export ZLIB_LIB=/usr/lib/$(DEB_HOST_GNU_TYPE)
+        export BZIP2_INCLUDE=/usr/$(DEB_HOST_GNU_TYPE)/include
+        export BZIP2_LIB=/usr/lib/$(DEB_HOST_GNU_TYPE)
+        export INCLUDE=/usr/$(DEB_HOST_GNU_TYPE)/include
+        export LIB=/usr/lib/$(DEB_HOST_GNU_TYPE)
+endif
+
 # this gets prepended to the patch names in patchlevel.h
 patchprefix = DEBPKG:
 
 # control file substitutions
 subst_upstream = -VUpstream-Version=$(package_upstream_version)
-subst_perlapi  = -Vperlapi:Provides="`./perl.static debian/mkprovides`"
+subst_perlapi  = -Vperlapi:Provides="`$(PERL_TO_USE) debian/mkprovides`"
 subst_next_upstream = -VNext-Upstream-Version=$(nextversion)
+# perl-base with a static perl won't get the libperl pre-dependency via shlibs
+ifeq ($(installtype),static)
+subst_static = -Vstatic:PreDepends="libperl$(version) (>= $(package_upstream_version))"
+else
+subst_static = -Vstatic:PreDepends=
+endif
+
 
 # for cpan/Compress-Raw-Zlib
 export BUILD_ZLIB=False
-export ZLIB_INCLUDE=/usr/include
-export ZLIB_LIB=/usr/lib
 
 # for cpan/Compress-Raw-Bzip2
 export BUILD_BZIP2=0
-export BZIP2_INCLUDE=/usr/include
-export BZIP2_LIB=/usr/lib
 
 build: build-stamp
 install: install-stamp
@@ -73,61 +122,110 @@
 	test -f $<	# maintainer sanity check
 	debian/gen-patchlevel -p $(patchprefix) -v $(package_version) $< > $@
 
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+
+define variant
+$(if $(findstring static,$1),static,$(if $(findstring debug,$1),debug,shared))
+endef
+
+define cross-config
+        /usr/bin/perl-cross-debian --variant $(call variant,$@)
+        perl -Ilib  make_patchnum.pl
+endef
+endif
+
 perl.static:
 	$(checkdir)
 	rm -f libperl.so* # must be built last
-	[ ! -f Makefile ] || $(MAKE) distclean
+	[ ! -f Makefile ] || $(MAKE) distclean CROSS_PERL=$(HOST_PERL)
 	[ -f $(patchlevel) ] || touch $(patchlevel)
+ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 	$(SHELL) debian/config.debian --static
-	$(MAKE) perl $(test_target)
+else
+	$(cross-config)
+endif
+	$(MAKE) perl $(test_target)  CROSS_PERL=$(HOST_PERL)
 	mv libperl.a libperl-static
 	mv perl perl.static
 
 	# for the build log
-	./perl.static -Ilib -V
+	$(PERL_TO_USE) -Ilib -V
 
 perl.debug:
 	$(checkdir)
 	rm -f libperl.so* # must be built last
-	[ ! -f Makefile ] || $(MAKE) distclean
+	[ ! -f Makefile ] || $(MAKE) distclean CROSS_PERL=$(HOST_PERL)
 	[ -f $(patchlevel) ] || touch $(patchlevel)
+ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 	$(SHELL) debian/config.debian --debug
-	$(MAKE) perl
+else
+	$(cross-config)
+endif
+	$(MAKE) perl CROSS_PERL=$(HOST_PERL)
 	mv perl perl.debug
 
 libperl.so.$(fullversion):
 	$(checkdir)
-	[ ! -f Makefile ] || $(MAKE) distclean
+	[ ! -f Makefile ] || $(MAKE) distclean CROSS_PERL=$(HOST_PERL)
 	[ -f $(patchlevel) ] || touch $(patchlevel)
+ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 	$(SHELL) debian/config.debian --shared
-	$(MAKE) SHRPLDFLAGS='$$(LDDLFLAGS) -Wl,-soname,libperl.so.$(version)' $@
+else
+	$(cross-config)
+endif
+	$(MAKE) SHRPLDFLAGS='$$(LDDLFLAGS) -Wl,-soname,libperl.so.$(version)' $@ CROSS_PERL=$(HOST_PERL)
 	ln -s libperl.so.$(fullversion) libperl.so.$(version)
 	ln -s libperl.so.$(version) libperl.so
+ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 	$(MAKE) all $(test_target) || { rm -f libperl.so*; exit 1; }
+else
+	@echo "Need to use installed (host) extensions when building extensions...."
+	@echo "Overwrite any built so far"
+	cp -fr $(HOST_PERL_LIBS)/auto/* lib/auto/
+	@echo "Now make the extensions"
+	-mkdir lib/$(DEB_HOST_GNU_TYPE)
+	$(MAKE) extensions CROSS_PERL=$(HOST_PERL) INST_ARCHLIB=$(srcdir)/lib/$(DEB_HOST_GNU_TYPE)
+endif
+
 
 clean:
 	$(checkdir)
 	$(checkroot)
 	test -f $(patches)	# maintainer sanity check
-	[ ! -f Makefile ] || $(MAKE) distclean
+	[ ! -f Makefile ] || $(MAKE) distclean  CROSS_PERL=$(HOST_PERL)
 	rm -rf config.over perl.static perl.debug libperl-static libperl.so* \
-	    $(patchlevel) build-stamp install-stamp t/auto debian/shlibs.local \
-	    debian/perl-base.shlibs debian/libperl$(version).shlibs \
+	    $(patchlevel) build-stamp install-stamp t/auto \
+	    debian/libperl$(version).shlibs \
 	    debian/substvars debian/files debian/list.tmp $(tmp) $(build)
 	# <https://rt.cpan.org/Public/Bug/Display.html?id=68214>
 	rm -f cpan/DB_File/DB_File.pm.bak cpan/DB_File/t/db-btree.t.bak \
 	    cpan/DB_File/t/db-hash.t.bak cpan/DB_File/t/db-recno.t.bak
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+	perl-cross-debian --clean
+endif
 
 install-stamp: build-stamp
 	$(checkdir)
 	$(checkroot)
 	$(checkperl)
 	rm -rf $(tmp) $(build)
-
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+	@echo "Copy back all the target-independent extensions - for use and installation"
+	cp -fr $(HOST_PERL_LIBS)/auto/* lib/auto/
+	$(MAKE) install CROSS_PERL=$(HOST_PERL)
+	@echo "Copy the arch dependent ones over the debian ones for installation into packages"
+	find . -name .exists -o -name '*.bs' | xargs rm -f
+	-mkdir -p $(lib)/auto/
+	cp -fr lib/$(DEB_HOST_GNU_TYPE)/auto/*  $(lib)/auto/
+	echo "Don't install INST_ARCHLIB into packages"
+	-find $(tmp)/usr/share/perl -name $(DEB_HOST_GNU_TYPE) -exec rm -fr {} \;
+else
 	$(MAKE) install
+endif
 	# remove temporary prefix on install vars and switch man
 	# extensions to 1p and 3pm for vendor module installs
-	SRCDIR="$(srcdir)" ./perl.static -i -pe 's!\Q$$ENV{SRCDIR}\E/$(tmp)/!/! if /install/;' \
+
+	SRCDIR="$(srcdir)" $(PERL_TO_USE) -i -pe 's!\Q$$ENV{SRCDIR}\E/$(tmp)/!/! if /install/;' \
 	    -e 's/^(man1ext=).*/$$1'\''1p'\''/;' \
 	    -e 's/^(man3ext=).*/$$1'\''3pm'\''/;' \
 		$(lib)/Config.pm $(lib)/Config_heavy.pl
@@ -138,24 +236,24 @@
 		for flag in $(shell dpkg-buildflags --get CPPFLAGS) \
 		         $(shell dpkg-buildflags --get CFLAGS); do \
 			case "$$flag" in -fstack-protector) ;; \
-			     *) ./perl.static -i -pe "/^(cc|cpp)flags/ and \
+			     *) $(PERL_TO_USE) -i -pe "/^(cc|cpp)flags/ and \
 			          s/(['\s])\Q$$flag\E(['\s])/\1\2/ and s/  +/ /" \
 		            $(lib)/Config.pm $(lib)/Config_heavy.pl ;; \
 		    esac; done; \
 		for flag in $(shell dpkg-buildflags --get LDFLAGS); do \
-			./perl.static -i -pe "/^ld(dl)?flags/ and \
+			$(PERL_TO_USE) -i -pe "/^ld(dl)?flags/ and \
 			          s/(['\s])\Q$$flag\E(['\s])/\1\2/ and s/  +/ /" \
 		          $(lib)/Config.pm $(lib)/Config_heavy.pl ; \
 		done; \
 	fi
 
 	# convert required header files
-	-cd /usr/include; $(srcdir)/perl.static -I $(srcdir)/lib \
+	-cd $(HEADER_DIR); $(PERL_TO_USE) -I $(srcdir)/lib \
 	    $(srcdir)/utils/h2ph -a -d $(srcdir)/$(lib) \
 		`cat $(srcdir)/debian/headers`
 
 	# fix up generated headers
-	./perl.static -Ilib debian/fixheaders $(lib)
+	$(PERL_TO_USE) -Ilib debian/fixheaders $(lib)
 
 	# simple wrapper around Errno module
 	cp debian/errno.ph $(lib)
@@ -163,10 +261,10 @@
 ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
 ifeq (,$(findstring x-perl-notest,$(DEB_BUILD_OPTIONS)))
 	# Verify that the headers are usable
-	for ph in `< debian/headers sed -e 's/\.h$$/.ph/'`; do \
-		if [ ! -f $(lib)/$$ph ]; then \
+	for ph in `< $(srcdir)/debian/headers sed -e 's/\.h$$/.ph/'`; do \
+		if [ ! -f $(srcdir)/$(lib)/$$ph ]; then \
 			echo "$$ph: missing"; else \
-			echo $$ph | ./perl.static debian/check-require $(tmp) \
+			echo $$ph | $(PERL_TO_USE) debian/check-require $(tmp) \
 				|| exit 1; \
 		fi; \
 	done
@@ -174,24 +272,32 @@
 endif
 
 	# remove some cruft
-	rm -f $(lib)/.packlist
+	rm -f $(hostlibs)/.packlist
 
 	# installperl copies the symlinks as a files
-	rm -f $(lib)/CORE/libperl.so $(lib)/CORE/libperl.so.$(version)
+	rm -f $(hostlibs)/CORE/libperl.so $(lib)/CORE/libperl.so.$(version)
 
 	# remove versioned binary, relink after moving files
 	rm -f $(bin)/perl$(fullversion)
 
+	# FIXME: remove a2p for now
+	rm -f $(bin)/a2p
+	rm -f $(man)/man1/a2p.1
+	rm -f $(share)/pod/a2p.pod
+
 	# relocate perl libraries and create links
-	cp libperl-static $(tmp)/usr/lib/libperl.a
-	mv $(lib)/CORE/libperl.so.$(fullversion) $(tmp)/usr/lib
+	cp libperl-static $(tmp)/usr/lib/$(archtriplet)/libperl.a
+	mv $(hostlibs)/CORE/libperl.so.$(fullversion) $(tmp)/usr/lib/$(archtriplet)
 
-	ln -s libperl.so.$(fullversion) $(tmp)/usr/lib/libperl.so.$(version)
-	ln -s libperl.so.$(version) $(tmp)/usr/lib/libperl.so
+	ln -s libperl.so.$(fullversion) $(tmp)/usr/lib/$(archtriplet)/libperl.so.$(version)
+	ln -s libperl.so.$(version) $(tmp)/usr/lib/$(archtriplet)/libperl.so
 
 	# move to full version (symlinks created in perl-base below)
-	mv $(lib) $(tmp)/usr/lib/perl/$(fullversion)
+	mv $(lib) $(tmp)/usr/lib/$(archtriplet)/perl/$(fullversion)
 	mv $(share) $(tmp)/usr/share/perl/$(fullversion)
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+	rm -rf $(hostlibs)
+endif
 
 ifeq ($(installtype),static)
 	cp perl.static $(bin)/perl
@@ -201,6 +307,7 @@
 	cp perl.debug $(bin)/debugperl
 
 	# split packages
+	# Note: this relies on the order of debian/control
 	for p in $(packages); \
 	do \
 	    mkdir -p $(build)/$$p; \
@@ -209,52 +316,61 @@
 		do \
 		    list=../$$p.files$$sfx; \
 		    test -s $$list || continue; \
-		    find `cat $$list` ! -type d; \
+		    shopt -s globstar; \
+		    find `grep -v '^#' $$list` ! -type d; \
 		done) >debian/list.tmp; \
 	    (cd $(tmp); cpio -vdumpl ../build/$$p) <debian/list.tmp 2>&1 | \
 		grep -v ' linked to '; \
-	    (cd $(tmp); ../../perl.static -nle unlink) <debian/list.tmp; \
+	    (cd $(tmp); $(PERL_TO_USE) -nle unlink) <debian/list.tmp; \
 	done
 
 	# ensure that all file have been moved from debian/tmp
 	test `find $(tmp) ! -type d | wc -l` -eq 0
 
 	# move pod out of -base modules and into .pod files in -doc
-	./perl.static debian/splitdoc $(build)/perl-base
+	$(PERL_TO_USE) debian/splitdoc $(build)/perl-base
 
 	# create symlinks to match @INC
-	ln -s $(fullversion) $(build)/perl-base/usr/lib/perl/$(version)
+	ln -s $(fullversion) $(build)/perl-base/usr/lib/$(archtriplet)/perl/$(version)
 	ln -s $(fullversion) $(build)/perl-base/usr/share/perl/$(version)
 
 ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
 ifeq (,$(findstring x-perl-notest,$(DEB_BUILD_OPTIONS)))
-	# Verify that perl-base stays self contained
-	# plain "use IO " and "use re" are deprecated and/or useless
+	# Verify that perl-base + libperl$(version) stays self contained
 
-	./perl.static $(srcdir)/debian/check-require $(build)/perl-base \
-	  < debian/perl-base.files
+	( shopt -s globstar; cd $(build)/perl-base; \
+	  find `grep -v '^#' $(srcdir)/debian/perl-base.files` ! -type d ) | \
+	  $(PERL_TO_USE) $(srcdir)/debian/check-require $(build)/perl-base
 endif
 endif
 
-	# move section 1 manual pages back to perl for installed programs
-	mkdir -p $(build)/perl/usr/share/man/man1
-	find $(build)/perl/usr/bin -type f -printf "%f\n" | \
+	# move arch-specific libraries in perl-base to libperl
+	mv $(build)/perl-base/usr/lib/$(archtriplet)/perl \
+	   $(build)/libperl$(version)/usr/lib/$(archtriplet)
+	
+	rmdir $(build)/perl-base/usr/lib/$(archtriplet) $(build)/perl-base/usr/lib
+
+	# move section 1 manual pages back for installed programs
+	for p in perl perl-modules; do \
+	  mkdir -p $(build)/$$p/usr/share/man/man1; \
+	  find $(build)/$$p/usr/bin -type f -printf "%f\n" | \
 	    while read prog; \
 	    do \
 		m=$(build)/perl-doc/usr/share/man/man1/$$prog.1; \
 		if test -f $$m; \
 		then \
-		    mv $$m $(build)/perl/usr/share/man/man1; \
+		    mv $$m $(build)/$$p/usr/share/man/man1; \
 		else \
 		    echo "warning: no manual page for $$prog" >&2; \
 		fi; \
-	    done
+	    done; \
+	done
 
 	# remove some linked man pages (symlinked later and cause
 	# problems as-is when compressing)
-	rm -f $(build)/perl/usr/share/man/man1/pstruct.1 \
-	    $(build)/perl/usr/share/man/man1/perlthanks.1 \
-	    $(build)/perl/usr/share/man/man1/psed.1
+	rm -f $(build)/perl-modules/usr/share/man/man1/pstruct.1 \
+	    $(build)/perl-modules/usr/share/man/man1/perlthanks.1 \
+	    $(build)/perl-modules/usr/share/man/man1/psed.1
 
 	# the diagnostics module needs perldiag.pod
 	mkdir $(build)/perl-modules/usr/share/perl/$(fullversion)/pod
@@ -262,6 +378,7 @@
 	    $(build)/perl-modules/usr/share/perl/$(fullversion)/pod
 
 	# copy dummy perldoc to perl package
+	[ -d $(build)/perl/usr/bin ] || mkdir -p $(build)/perl/usr/bin
 	cp debian/perl.perldoc $(build)/perl/usr/bin/perldoc
 	chmod 755 $(build)/perl/usr/bin/perldoc
 
@@ -269,7 +386,7 @@
 	cp debian/rename $(build)/perl/usr/bin/prename
 	chmod 755 $(build)/perl/usr/bin/prename
 
-	./perl.static -Ilib $(build)/perl/usr/bin/pod2man --official \
+	$(PERL_TO_USE) -Ilib $(build)/perl-modules/usr/bin/pod2man --official \
 	    debian/rename >$(build)/perl/usr/share/man/man1/prename.1
 
 	# install docs
@@ -312,10 +429,10 @@
 	cp debian/libnet.cfg $(build)/perl-modules/etc/perl/Net
 
 	# compress
-	find $(build)/*/usr/share/man -type f -print | xargs -r gzip -9
+	find $(build)/*/usr/share/man -type f -print | xargs -r gzip -n9
 	find $(build)/*/usr/share/doc -type f \
 	    \( -name changelog\* -o \( -size +4k ! -name copyright \) \) \
-	    -print | xargs -r gzip -9
+	    -print | xargs -r gzip -n9
 
 ifeq ($(strip),yes)
 	# strip
@@ -336,12 +453,12 @@
 			dir=$${path%/*}; \
 			test -d $(debug)$$dir || mkdir -p $(debug)$$dir; \
 			# stash debugging symbols \
-			objcopy --only-keep-debug $$f $(debug)$$path; \
+			$(OBJCOPY) --only-keep-debug $$f $(debug)$$path; \
 			# strip \
-			strip --remove-section=.comment --remove-section=.note \
+			$(STRIP) --remove-section=.comment --remove-section=.note \
 			    $$extra $$f; \
 			# add debuglink \
-			objcopy --add-gnu-debuglink=$(debug)$$path $$f; \
+			$(OBJCOPY) --add-gnu-debuglink=$(debug)$$path $$f; \
 		esac; \
 	    done
 	    # versioned hardlink for the detached debug symbols
@@ -369,9 +486,9 @@
 
 	ln -s perl.1.gz $(build)/perl-debug/usr/share/man/man1/debugperl.1.gz
 	ln -s perl.1.gz $(build)/perl-base/usr/share/man/man1/perl$(fullversion).1.gz
-	ln -s c2ph.1.gz $(build)/perl/usr/share/man/man1/pstruct.1.gz
-	ln -s s2p.1.gz $(build)/perl/usr/share/man/man1/psed.1.gz
-	ln -s perlbug.1.gz $(build)/perl/usr/share/man/man1/perlthanks.1.gz
+	ln -s c2ph.1.gz $(build)/perl-modules/usr/share/man/man1/pstruct.1.gz
+	ln -s s2p.1.gz $(build)/perl-modules/usr/share/man/man1/psed.1.gz
+	ln -s perlbug.1.gz $(build)/perl-modules/usr/share/man/man1/perlthanks.1.gz
 
 	ln -s changelog.gz $(build)/perl/usr/share/doc/perl/Changes.gz
 	ln -s ../perl/changelog.gz \
@@ -384,7 +501,7 @@
 	$(checkdir)
 	$(checkroot)
 	rm -f debian/substvars
-	for p in `./perl.static -l -00ne 'print $$1 if /^Architecture:\s+all/m \
+	for p in `$(PERL_TO_USE) -l -00ne 'print $$1 if /^Architecture:\s+all/m \
 	    and /^Package:\s+(.*)/m' debian/control`; \
 	do \
 	    rm -rf $(build)/$$p/DEBIAN; \
@@ -408,19 +525,11 @@
 binary-arch: build-stamp install-stamp
 	$(checkdir)
 	$(checkroot)
-ifeq ($(installtype),static)
-	echo 'libperl $(version) libperl$(version) (= $${source:Version})' \
-	    >debian/shlibs.local
-
-	echo 'libperl $(version) libperl$(version) (>= $(package_upstream_version))' \
+	# this needs to be (>= $(package_upstream_version)) from 5.16 onwards
+	echo 'libperl $(version) libperl$(version) (>= 5.14.2-13)' \
 	    >debian/libperl$(version).shlibs
-else
-	echo 'libperl $(version)' >debian/shlibs.local
-	echo 'libperl $(version) libperl$(version) (>= $(package_upstream_version))' \
-	    >debian/perl-base.shlibs
-endif
 
-	for p in `./perl.static -l -00ne 'print $$1 if /^Architecture:\s+any/m \
+	for p in `$(PERL_TO_USE) -l -00ne 'print $$1 if /^Architecture:\s+any/m \
 	    and /^Package:\s+(.*)/m' debian/control`; \
 	do \
 	    rm -rf $(build)/$$p/DEBIAN debian/substvars; \
@@ -436,16 +545,15 @@
 		>$(build)/$$p/DEBIAN/md5sums; \
 	done
 	# dpkg-shlibdeps needs to be run only after all the shlibs are present
-	for p in `./perl.static -l -00ne 'print $$1 if /^Architecture:\s+any/m \
+	for p in `$(PERL_TO_USE) -l -00ne 'print $$1 if /^Architecture:\s+any/m \
 	    and /^Package:\s+(.*)/m' debian/control`; \
 	do \
 	    find $(build)/$$p/usr -type f \
 		\( -perm +111 -o -name \*.so\* \) -print | \
 		fgrep -v /usr/lib/debug/ | \
-		xargs -r dpkg-shlibdeps -S$(srcdir)/$(build)/libperl$(version) \
-		                        -S$(srcdir)/$(build)/perl-base 2>&1 | \
+		xargs -r dpkg-shlibdeps -S$(srcdir)/$(build)/libperl$(version) 2>&1 | \
 		fgrep -v 'File format not recognized'; # scripts \
-	    dpkg-gencontrol -p$$p -isp -P$(build)/$$p $(subst_perlapi) $(subst_upstream); \
+	    dpkg-gencontrol -p$$p -isp -P$(build)/$$p $(subst_perlapi) $(subst_upstream) $(subst_static); \
 	    dpkg --build $(build)/$$p ..; \
 	done
 
--- debian/splitdoc	2013-02-09 13:29:11.000000000 +0000
+++ perl/codehelp/perl-5.14.2/debian/splitdoc	2013-02-15 09:22:07.000000000 +0000
@@ -35,7 +35,7 @@
 	    {
 		s/\.pm$/.pod/;
 		s/perl-base/perl-doc/;
-		s!/usr/lib/!/usr/share/!;
+		s!/usr/lib/([^/]*/)?perl!/usr/share/perl!;
 		($dir) = m!(.*)/!;
 	    }
 
--- Makefile.SH	2013-02-20 18:13:16.000000000 +0000
+++ perl/codehelp/perl-5.14.2/Makefile.SH	2013-02-16 01:19:46.000000000 +0000
@@ -291,10 +291,12 @@
 OBJ_EXT = $_o
 PATH_SEP = $p_
 
+ifeq (,\$(CROSS_PERL))
 # Macros to invoke a copy of miniperl during the build.  Targets which
 # are built using these macros should depend on \$(MINIPERL_EXE)
 MINIPERL_EXE = miniperl\$(EXE_EXT)
 MINIPERL = \$(LDLIBPTH) \$(RUN) ./miniperl\$(EXE_EXT) -Ilib
+HOST_MINIPERL = $(MINIPERL_EXE)
 
 # Macros to invoke a copy of our fully operational perl during the build.
 PERL_EXE = perl\$(EXE_EXT)
@@ -303,6 +305,23 @@
 # Macros to run our tests
 RUN_TESTS = \$(LDLIBPTH) ./runtests
 
+else # CROSS_PERL
+
+# Macros to invoke a copy of miniperl during the build.  Targets which
+# are built using these macros should depend on \$(MINIPERL_EXE)
+MINIPERL_EXE = miniperl\$(EXE_EXT)
+MINIPERL = \$(CROSS_PERL)
+HOST_MINIPERL = \$(CROSS_PERL)
+
+# Macros to invoke a copy of our fully operational perl during the build.
+PERL_EXE = perl\$(EXE_EXT)
+RUN_PERL = \$(CROSS_PERL)
+
+# Macros to run our tests
+RUN_TESTS = echo "Not running tests"
+
+endif # CROSS_PERL
+
 dynamic_ext = $dynamic_list
 dynamic_ext_re = $dynamic_ext_re
 static_ext = $static_list
@@ -533,6 +552,9 @@
 	@echo " ";
 	@echo "	Everything is up to date. Type '$(MAKE) test' to run test suite."
 
+# Cross building requires a separate target to allow manipulation of the build tree
+extensions:     $(dynamic_ext) $(nonxs_ext)
+
 .PHONY: all translators utilities
 
 # Both git_version.h and lib/Config_git.pl are built
@@ -616,6 +638,9 @@
 
 globals$(OBJ_EXT): uudmap.h bitcount.h
 
+ifeq (,\$(CROSS_PERL))
+# If we're cross-building, we should have uudmap.h and bitcount.h
+# provided already
 uudmap.h: bitcount.h
 
 bitcount.h: generate_uudmap$(HOST_EXE_EXT)
@@ -623,6 +648,7 @@
 
 generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT)
 	$(CC) -o generate_uudmap$(EXE_EXT) $(LDFLAGS) generate_uudmap$(OBJ_EXT) $(libs)
+endif
 
 miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h
 	$(CCCMD) $(PLDLFLAGS) $*.c
@@ -795,18 +821,30 @@
 	aix*|beos*)
 		$spitshell >>$Makefile <<'!NO!SUBS!'
 $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
+ifeq (,$(CROSS_PERL))
 	$(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) \
 	    $(mini_obj) \
 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+else
+	-rm $(MINIPERL_EXE)
+	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
+endif
+
 !NO!SUBS!
 		;;
 	next4*)
 		$spitshell >>$Makefile <<'!NO!SUBS!'
 $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) perlmini$(OBJ_EXT) opmini$(OBJ_EXT)
+ifeq (,$(CROSS_PERL))
 	$(CC) -o $(MINIPERL_EXE) $(mini_obj) \
 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+else
+	-rm $(MINIPERL_EXE)
+	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
+endif
+
 !NO!SUBS!
 		;;
 	darwin*)
@@ -825,20 +863,32 @@
 		$spitshell >>$Makefile <<'!NO!SUBS!'
 $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
 	-@rm -f miniperl.xok
+ifeq (,$(CROSS_PERL))
 	$(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
 	    $(mini_obj) \
 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+else
+	-rm $(MINIPERL_EXE)
+	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
+endif
+
 !NO!SUBS!
 		;;
 	*)
 		$spitshell >>$Makefile <<'!NO!SUBS!'
 $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
 	-@rm -f miniperl.xok
+ifeq (,$(CROSS_PERL))
 	$(LDLIBPTH) $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
 	    $(mini_obj) \
 	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
 	$(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+else
+	-rm $(MINIPERL_EXE)
+	ln -s $(HOST_MINIPERL) $(MINIPERL_EXE)
+endif
+
 !NO!SUBS!
 		;;
 	esac
