From: Jarkko Hietaniemi Date: Wed, 28 May 2003 05:08:07 +0000 (+0000) Subject: OpenZaurus cross-compilation patches from Redvers Davies. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=e42fa77b579283ff48061baf2c5174858a85329a;p=p5sagit%2Fp5-mst-13.2.git OpenZaurus cross-compilation patches from Redvers Davies. p4raw-id: //depot/perl@19627 --- diff --git a/Cross/Makefile b/Cross/Makefile index f0db84e..4bb4c06 100644 --- a/Cross/Makefile +++ b/Cross/Makefile @@ -1,6 +1,6 @@ ## Toplevel Makefile for cross-compilation of perl # -## $Id: Makefile,v 1.1 2003/04/15 00:38:39 red Exp red $ +## $Id: Makefile,v 1.3 2003/05/27 21:23:19 red Exp red $ export TOPDIR?=${shell pwd} include $(TOPDIR)/config diff --git a/Cross/Makefile.SH.patch b/Cross/Makefile.SH.patch index beaf7a3..0352b4b 100644 --- a/Cross/Makefile.SH.patch +++ b/Cross/Makefile.SH.patch @@ -1,6 +1,34 @@ ---- ../Makefile.SH 2002-06-09 17:04:06.000000000 +0000 -+++ Makefile.SH 2003-04-15 00:30:58.000000000 +0000 -@@ -329,9 +329,20 @@ +--- ../Makefile.SH 2003-04-22 14:13:52.000000000 +0000 ++++ Makefile.SH 2003-05-27 21:07:07.000000000 +0000 +@@ -104,16 +104,17 @@ + + case "$osname" in + linux) +- 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" ++# 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" ++ echo linux libraries overridden my cross-compile patches + ;; + os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth" + ;; +@@ -343,9 +344,20 @@ .c.s: $(CCCMDSRC) -S $*.c @@ -24,7 +52,7 @@ .PHONY: all compile translators utilities -@@ -341,10 +352,10 @@ +@@ -355,10 +367,10 @@ cd x2p; $(MAKE) compile; cd pod; $(MAKE) compile; @@ -37,7 +65,7 @@ @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all -@@ -521,7 +532,7 @@ +@@ -535,7 +547,7 @@ $(CC) -o miniperl $(CLDFLAGS) \ `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs) @@ -46,16 +74,16 @@ !NO!SUBS! ;; beos*|next4*) -@@ -538,7 +549,7 @@ +@@ -552,7 +564,7 @@ -@rm -f miniperl.xok - $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl \ + $(CC) $(CLDFLAGS) -o miniperl \ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs) - $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest +# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! ;; esac -@@ -664,7 +675,7 @@ +@@ -678,7 +690,7 @@ # We need to autosplit in two steps because VOS can't handle so many args # .PHONY: preplibrary @@ -64,7 +92,7 @@ @sh ./makedir lib/auto @echo " AutoSplitting perl library" $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \ -@@ -676,11 +687,11 @@ +@@ -690,11 +702,11 @@ # Take care to avoid modifying lib/Config.pm without reason # (If trying to create a new port and having problems with the configpm script, # try 'make minitest' and/or commenting out the tests at the end of configpm.) @@ -78,7 +106,7 @@ $(LDLIBPTH) ./miniperl minimod.pl > minimod.tmp sh mv-if-diff minimod.tmp $@ -touch lib/ExtUtils/Miniperl.pm -@@ -688,18 +699,18 @@ +@@ -702,18 +714,18 @@ lib/re.pm: ext/re/re.pm cp ext/re/re.pm ext/re/re.tmp && sh mv-if-diff ext/re/re.tmp lib/re.pm @@ -101,7 +129,7 @@ -@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 \ -@@ -738,18 +749,10 @@ +@@ -752,18 +764,10 @@ $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-n install.perl: all installperl @@ -123,7 +151,7 @@ # XXX Experimental. Hardwired values, but useful for testing. # Eventually Configure could ask for some of these values. -@@ -861,16 +864,16 @@ +@@ -870,16 +874,16 @@ # # DynaLoader may be needed for extensions that use Makefile.PL. @@ -144,7 +172,7 @@ @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \ -@@ -1009,7 +1012,7 @@ +@@ -1019,7 +1023,7 @@ test_prep_pre: preplibrary utilities $(nonxs_ext) @@ -153,7 +181,7 @@ PERL=./perl $(MAKE) _test_prep _test_tty: -@@ -1078,7 +1081,7 @@ +@@ -1088,7 +1092,7 @@ # Can't depend on lib/Config.pm because that might be where miniperl # is crashing. diff --git a/Cross/README b/Cross/README index 6244483..e113380 100644 --- a/Cross/README +++ b/Cross/README @@ -4,15 +4,17 @@ Summary This is a patch set which adds cross-compilation to the perl buildsystem. It was built as a part of the Open Zaurus (http://www.openzaurus.com/) distribution. Most / All of the -optimisations are "borrowed" from this excellent project. +arm compiler optimisations are "borrowed" from this excellent +project. The main target is arm-linux but I have also managed to successfully cross-compile perl for solaris x86 using the same buildsystem. We are currently dependent on an existing working local copy of -perl which is available as /usr/bin/perl. This could be migrated -to using native miniperl with some additional effort. +perl ** of the same version and revision ** which is available +as /usr/bin/perl. This could be migrated to using native +miniperl with some additional effort. Obviously you need a working and tested cross-compiler for your build and target combination. The binary directory must be in @@ -47,7 +49,7 @@ documentation in the core - Therefore man pages are not even generated. Enjoy! References -------- +---------- Redvers Davies Open Zaurus http://www.openzaurus.org/ Perl OZ Packages http://www.openzaurus.org/official/testing/feed/ diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux index ee370a30..8dd89e2 100644 --- a/Cross/config.sh-arm-linux +++ b/Cross/config.sh-arm-linux @@ -5,7 +5,7 @@ # do not forget to propagate your changes by running "Configure -der". You may # instead choose to run each of the .SH files by yourself, or "Configure -S". # -# $Id$ +# $Id: config.sh-arm-linux,v 1.2 2003/05/27 21:31:15 red Exp red $ # # Package name : perl5 @@ -35,11 +35,11 @@ ansi2knr='' aphostname='/bin/hostname' api_revision='5' api_subversion='0' -api_version='8' -api_versionstring='5.8.0' +api_version='9' +api_versionstring='5.9.0' ar='arm-linux-ar' -archlib='/usr/lib/perl5/5.8.0/armv4l-linux' -archlibexp='/usr/lib/perl5/5.8.0/armv4l-linux' +archlib='/usr/lib/perl5/5.9.0/armv4l-linux' +archlibexp='/usr/lib/perl5/5.9.0/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -107,6 +107,7 @@ d_SCNfldbl='define' d__fwalk='undef' d_access='define' d_accessx='undef' +d_aintl='undef' d_alarm='define' d_archlib='define' d_asctime_r='undef' @@ -129,6 +130,7 @@ d_class='undef' d_closedir='define' d_cmsghdr_s='define' d_const='define' +d_copysignl='define' d_crypt='undef' d_crypt_r='undef' d_csh='undef' @@ -162,6 +164,7 @@ d_endsent='define' d_endservent_r='undef' d_eofnblk='define' d_eunice='undef' +d_faststdio='define' d_fchdir='define' d_fchmod='define' d_fchown='define' @@ -253,6 +256,7 @@ d_gnulibc='define' d_grpasswd='define' d_hasmntopt='define' d_htonl='define' +d_ilogbl='define' d_index='undef' d_inetaton='define' d_int64_t='define' @@ -289,6 +293,7 @@ d_mkstemps='undef' d_mktime='define' d_mmap='define' d_modfl='undef' +d_modflproto='undef' d_modfl_pow32_bug='undef' d_mprotect='define' d_msg='define' @@ -305,6 +310,7 @@ d_msgsnd='define' d_msync='define' d_munmap='define' d_mymalloc='undef' +d_nanosleep='define' d_nice='define' d_nl_langinfo='define' d_nv_preserves_uv='define' @@ -322,7 +328,6 @@ d_poll='define' d_portable='define' d_procselfexe='undef' d_pthread_atfork='undef' -d_pthread_attr_setscope='undef' d_pthread_yield='undef' d_pwage='undef' d_pwchange='undef' @@ -348,6 +353,7 @@ d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='define' d_sbrkproto='define' +d_scalbnl='define' d_sched_yield='define' d_scm_rights='define' d_seekdir='define' @@ -471,6 +477,7 @@ d_ustat='define' d_vendorarch='undef' d_vendorbin='undef' d_vendorlib='undef' +d_vendorscript='undef' d_vfork='undef' d_void_closedir='undef' d_voidsig='define' @@ -525,6 +532,7 @@ from=':' full_ar='/usr/local/arm/2.95.3/bin/arm-linux-ar' full_csh='csh' full_sed='/bin/sed' +gccansipedantic='' gccosandvers='' gccversion='2.95.1 19990816 (release)' getgrent_r_proto='0' @@ -563,6 +571,10 @@ h_fcntl='false' h_sysfile='true' hint='recommended' hostcat='cat /etc/hosts' +html1dir=' ' +html1direxp='' +html3dir=' ' +html3direxp='' i16size='2' i16type='short' i32size='4' @@ -658,17 +670,19 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.8.0/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.9.0/armv4l-linux' installbin='./install_me_here/usr/bin' installman1dir='' installman3dir='' installprefix='./install_me_here/usr/lib/perl5' installprefixexp='./install_me_here/usr/lib/perl5' -installprivlib='./install_me_here/usr/lib/perl5/5.8.0' +installprivlib='./install_me_here/usr/lib/perl5/5.9.0' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.8.0/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.9.0/armv4l-linux' installsitebin='./install_me_here/usr/bin' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.8.0' +installsitehtml1='' +installsitehtml3='' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.9.0' installstyle='lib/perl5' installusrbinperl='undef' installvendorarch='' @@ -769,7 +783,7 @@ otherlibdirs=' ' package='perl5' pager='/usr/bin/less' passcat='cat /etc/passwd' -patchlevel='8' +patchlevel='9' path_sep=':' perl5='' perl='' @@ -786,8 +800,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.8.0' -privlibexp='/usr/lib/perl5/5.8.0' +privlib='/usr/lib/perl5/5.9.0' +privlibexp='/usr/lib/perl5/5.9.0' procselfexe='' prototype='define' ptrsize='4' @@ -848,14 +862,18 @@ sig_num='0 ' sig_num_init='0, 0' sig_size='1' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.8.0/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.8.0/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.9.0/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.9.0/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' -sitelib='/usr/lib/perl5/site_perl/5.8.0' +sitehtml1=' ' +sitehtml1exp='' +sitehtml3=' ' +sitehtml3exp='' +sitelib='/usr/lib/perl5/site_perl/5.9.0' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.8.0' -siteprefix='/usr/lib/perl5.8.0' +sitelibexp='/usr/lib/perl5/site_perl/5.9.0' +siteprefix='/usr/lib/perl5.9.0' siteprefixexp='/usr' sizesize='4' sizetype='size_t' @@ -922,6 +940,7 @@ use64bitall='undef' use64bitint='undef' usecrosscompile='undef' usedl='undef' +usefaststdio='undef' useithreads='undef' uselargefiles='define' uselongdouble='undef' @@ -956,29 +975,29 @@ vendorlib_stem='' vendorlibexp='' vendorprefix='' vendorprefixexp='' -version='5.8.0' -version_patchlevel_string='version 8 subversion 0' +version='5.9.0' +version_patchlevel_string='version 9 subversion 0 patch 18374' versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' -xs_apiversion='5.8.0' +xs_apiversion='5.9.0' yacc='yacc' yaccflags='' zcat='' zip='zip' # Configure command line arguments. config_arg0='./Configure' -config_args='-Dprefix=/usr/local/perl5.8.0 -Uinstallusrbinperl -des' +config_args='-Dprefix=/usr/local/perl5.9.0 -Uinstallusrbinperl -des' config_argc=3 -config_arg1='-Dprefix=/usr/local/perl5.8.0' +config_arg1='-Dprefix=/usr/local/perl5.9.0' config_arg2='-Uinstallusrbinperl' config_arg3='-des' PERL_REVISION=5 -PERL_VERSION=8 +PERL_VERSION=9 PERL_SUBVERSION=0 PERL_API_REVISION=5 -PERL_API_VERSION=8 +PERL_API_VERSION=9 PERL_API_SUBVERSION=0 -PERL_PATCHLEVEL= +PERL_PATCHLEVEL=18374 PERL_CONFIG_SH=true diff --git a/Cross/generate_config_sh b/Cross/generate_config_sh index 4461b8c..408f5f4 100755 --- a/Cross/generate_config_sh +++ b/Cross/generate_config_sh @@ -9,7 +9,7 @@ # # This means we can go # -# if test "${CC+set}" != set; then +# if test "${AR+set}" != set; then # ar='arm-linux-ar' # else # ar=${AR} @@ -129,3 +129,14 @@ sub library_munge { } + + + + + + + + + + + diff --git a/Cross/installperl.patch b/Cross/installperl.patch index 33ad2d4..1a1c5a6 100644 --- a/Cross/installperl.patch +++ b/Cross/installperl.patch @@ -1,5 +1,5 @@ ---- ../installperl 2002-07-16 18:57:32.000000000 +0000 -+++ installperl 2003-04-15 01:55:54.000000000 +0000 +--- ../installperl 2003-03-26 21:07:13.000000000 +0000 ++++ installperl 2003-05-01 11:17:48.000000000 +0000 @@ -3,8 +3,8 @@ BEGIN { require 5.004; @@ -11,12 +11,12 @@ } use strict; -@@ -876,7 +876,7 @@ - print " " if (@opts); - print "$file\n"; - } -- system("strip", @opts, $file); -+ system("XXSTRIPXX-strip", @opts, $file); - } else { - print "# file '$file' skipped\n" if $verbose; - } +@@ -878,7 +878,7 @@ + print " " if (@opts); + print "$file\n"; + } +- system("strip", @opts, $file); ++ system("XXSTRIPXX-strip", @opts, $file); + } else { + print "# file '$file' skipped\n" if $verbose; + }