summaryrefslogtreecommitdiff
path: root/packages/perl/perl-5.8.8/Makefile.SH.patch
diff options
context:
space:
mode:
authorJamie Lenehan <lenehan@twibble.org>2007-04-21 02:52:14 +0000
committerJamie Lenehan <lenehan@twibble.org>2007-04-21 02:52:14 +0000
commit9d7a595a810e75c945a6c5da1868c01fb091746a (patch)
tree95cd605515570965fddbc3987f1f87c816556bb6 /packages/perl/perl-5.8.8/Makefile.SH.patch
parentffb2d5eab2ae13cc66f107e6d4988b4075036144 (diff)
perl: Add 5.8.8 and use DEFAULT_PREFERENCE to disable it until more
testing is done. Main differences from the 5.8.7 recipe are: * Always use gcc to link. Same arch's require this, while others can happily use ld. Use gcc for everything. * Fix threading issues by enabling threading in both perl-native and perl. In fact make the configurations almost identical. * No per ARCH configuration, just 32/64/le/be configs. This should stop configurations differing between arch's which made fixing things 5.8.7 difficult. Also means new ARCH's should work without any changes. * Fix up the way miniperl is handled so it shouldn't be the cause of problems for people anymore. * Stop perl-modules depending on perl-dbg, perl-pod, perl-dev etc. * In theory should work for MACHINE="native" now. Only tested for an sh4/glibc target built on an x86_64 host so far. A lot more testing and more cleanups are needed before this is ready to be enabled by default. NOTE: You must build the matching version of perl-native before attempting to build perl (that applies for any version).
Diffstat (limited to 'packages/perl/perl-5.8.8/Makefile.SH.patch')
-rw-r--r--packages/perl/perl-5.8.8/Makefile.SH.patch222
1 files changed, 222 insertions, 0 deletions
diff --git a/packages/perl/perl-5.8.8/Makefile.SH.patch b/packages/perl/perl-5.8.8/Makefile.SH.patch
new file mode 100644
index 0000000000..c674ce9ee5
--- /dev/null
+++ b/packages/perl/perl-5.8.8/Makefile.SH.patch
@@ -0,0 +1,222 @@
+--- perl-5.8.8/Makefile.SH 2007/04/20 12:43:33 1.1
++++ perl-5.8.8/Makefile.SH 2007/04/20 15:20:40
+@@ -129,18 +129,7 @@
+ # INSTALL file, under "Building a shared perl library".
+ # If there is no pre-existing $libperl, we don't need
+ # to do anything further.
+- if test -f $archlib/CORE/$libperl; then
+- rm -f preload
+- cat <<'EOT' > preload
+-#! /bin/sh
+-lib=$1
+-shift
+-test -r $lib && export LD_PRELOAD="$lib $LD_PRELOAD"
+-exec "$@"
+-EOT
+- chmod 755 preload
+- ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl"
+- fi
++ echo linux libraries overwritten by cross-compile patches
+ ;;
+ os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth"
+ ;;
+@@ -401,9 +390,19 @@
+ .c.s:
+ $(CCCMDSRC) -S $*.c
+
+-all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
+- @echo " ";
+- @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
++#all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
++# @echo " ";
++# @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
++
++all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT)
++
++more: extra.pods $(private) $(public)
++
++more2: $(dynamic_ext)
++
++more3: $(nonxs_ext)
++
++more4: extras.make
+
+ .PHONY: all compile translators utilities
+
+@@ -413,10 +412,10 @@
+ cd x2p; $(MAKE) compile;
+ cd pod; $(MAKE) compile;
+
+-translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE
++translators: $(CONFIGPM) FORCE
+ @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
+
+-utilities: miniperl$(EXE_EXT) $(CONFIGPM) $(plextract) lib/lib.pm FORCE
++utilities: $(CONFIGPM) $(plextract) lib/lib.pm FORCE
+ @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
+
+
+@@ -550,7 +549,7 @@
+ case "$useshrplib" in
+ true)
+ $spitshell >>Makefile <<'!NO!SUBS!'
+- $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs)
++ $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs) -Wl,-soname,libperl.so.5
+ !NO!SUBS!
+ case "$osname" in
+ aix)
+@@ -591,7 +590,9 @@
+ $(CC) -o miniperl $(CLDFLAGS) \
+ `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
+ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs)
+- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++ mv -f miniperl miniperl-target
++ ln -s hostperl miniperl
++# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ !NO!SUBS!
+ ;;
+ next4*)
+@@ -599,7 +600,9 @@
+ miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
+ $(CC) -o miniperl `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
+ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs)
+- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++ mv -f miniperl miniperl-target
++ ln -s hostperl miniperl
++# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ !NO!SUBS!
+ ;;
+ darwin*)
+@@ -620,7 +623,9 @@
+ -@rm -f miniperl.xok
+ $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o miniperl \
+ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
+- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++ mv -f miniperl miniperl-target
++ ln -s hostperl miniperl
++# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ !NO!SUBS!
+ ;;
+ *)
+@@ -629,7 +634,9 @@
+ -@rm -f miniperl.xok
+ $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl \
+ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
+- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
++ mv -f miniperl miniperl-target
++ ln -s hostperl miniperl
++# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
+ !NO!SUBS!
+ ;;
+ esac
+@@ -766,7 +773,7 @@
+ # We need to autosplit in two steps because VOS can't handle so many args
+ #
+ .PHONY: preplibrary
+-preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
++preplibrary: $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
+ @sh ./makedir lib/auto
+ @echo " AutoSplitting perl library"
+ $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
+@@ -775,35 +782,35 @@
+ autosplit_lib_modules(@ARGV)' lib/*/*.pm
+ $(MAKE) lib/re.pm
+
+-lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary
++lib/Config.pod: config.sh configpm Porting/Glossary
+ $(LDLIBPTH) ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl lib/Config.pm
+
+ $(CONFIGPM): lib/Config.pod
+
+-lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM)
++lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM)
+ $(LDLIBPTH) ./miniperl minimod.pl > lib/ExtUtils/Miniperl.pm
+
+ lib/re.pm: ext/re/re.pm
+ cp ext/re/re.pm lib/re.pm
+
+-$(plextract): miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p
++$(plextract): $(CONFIGPM) x2p/s2p
+ @-rm -f $@
+ $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL
+
+-x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL
++x2p/s2p: $(CONFIGPM) x2p/s2p.PL
+ cd x2p; $(LDLIBPTH) $(MAKE) s2p
+
+-lib/lib.pm: miniperl$(EXE_EXT) $(CONFIGPM)
++lib/lib.pm: $(CONFIGPM)
+ @-rm -f $@
+ $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
+
+ unidatafiles $(unidatafiles): uni.data
+
+-uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables
++uni.data: $(CONFIGPM) lib/unicore/mktables
+ cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w
+ touch uni.data
+
+-extra.pods: miniperl$(EXE_EXT)
++extra.pods:
+ -@test -f extra.pods && rm -f `cat extra.pods`
+ -@rm -f extra.pods
+ -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \
+@@ -850,18 +857,7 @@
+ INSTALL_DEPENDENCE = all
+
+ install.perl: $(INSTALL_DEPENDENCE) installperl
+- if [ -n "$(COMPILE)" ]; \
+- then \
+- cd utils; $(MAKE) compile; \
+- cd ../x2p; $(MAKE) compile; \
+- cd ../pod; $(MAKE) compile; \
+- else :; \
+- fi
+- $(LDLIBPTH) ./perl installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
+- $(MAKE) extras.install
+-
+-install.man: all installman
+- $(LDLIBPTH) ./perl installman --destdir=$(DESTDIR) $(INSTALLFLAGS)
++ ./hostperl -Ifake_config_library -Ilib -MConfig installperl $(INSTALLFLAGS) $(STRIPFLAGS)
+
+ # XXX Experimental. Hardwired values, but useful for testing.
+ # Eventually Configure could ask for some of these values.
+@@ -978,16 +974,16 @@
+ #
+ # DynaLoader may be needed for extensions that use Makefile.PL.
+
+-$(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE
++$(DYNALOADER): preplibrary FORCE
+ @$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+
+-d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
++d_dummy $(dynamic_ext): preplibrary $(DYNALOADER) FORCE
+ @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+
+-s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
++s_dummy $(static_ext): preplibrary $(DYNALOADER) FORCE
+ @$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+
+-n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
++n_dummy $(nonxs_ext): preplibrary $(DYNALOADER) FORCE
+ @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+
+ .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
+@@ -1125,7 +1121,7 @@
+
+ test_prep_pre: preplibrary utilities $(nonxs_ext)
+
+-test_prep: test_prep_pre miniperl$(EXE_EXT) $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
++test_prep: test_prep_pre $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
+ PERL=./perl $(MAKE) _test_prep
+
+ _test_tty:
+@@ -1238,7 +1234,7 @@
+
+ # Can't depend on lib/Config.pm because that might be where miniperl
+ # is crashing.
+-minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
++minitest: lib/re.pm minitest.prep
+ - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
+ && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
+