diff options
author | Jamie Lenehan <lenehan@twibble.org> | 2007-04-21 02:52:14 +0000 |
---|---|---|
committer | Jamie Lenehan <lenehan@twibble.org> | 2007-04-21 02:52:14 +0000 |
commit | 9d7a595a810e75c945a6c5da1868c01fb091746a (patch) | |
tree | 95cd605515570965fddbc3987f1f87c816556bb6 /packages/perl/perl-5.8.8/Makefile.SH.patch | |
parent | ffb2d5eab2ae13cc66f107e6d4988b4075036144 (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.patch | 222 |
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 + |