Change 30226 by [EMAIL PROTECTED] on 2007/02/12 14:48:32
Integrate:
[ 27884]
Subject: [PATCH] Support compiling for RISC OS
From: Alex Waugh <[EMAIL PROTECTED]>
Date: Mon, 17 Apr 2006 00:14:26 +0100
Message-ID: <[EMAIL PROTECTED]>
[ 27887]
Addition to README.riscos suggested by Nicholas
[ 28239]
Add README.riscos to pod.lst
Affected files ...
... //depot/maint-5.8/perl/MANIFEST#320 integrate
... //depot/maint-5.8/perl/README.riscos#1 branch
... //depot/maint-5.8/perl/ext/Errno/Errno_pm.PL#9 integrate
... //depot/maint-5.8/perl/hints/riscos.sh#1 branch
... //depot/maint-5.8/perl/hv.c#110 integrate
... //depot/maint-5.8/perl/pod.lst#15 integrate
... //depot/maint-5.8/perl/pod/perl.pod#25 integrate
... //depot/maint-5.8/perl/util.c#145 integrate
... //depot/maint-5.8/perl/vms/descrip_mms.template#48 edit
... //depot/maint-5.8/perl/win32/Makefile#63 integrate
... //depot/maint-5.8/perl/win32/makefile.mk#71 integrate
Differences ...
==== //depot/maint-5.8/perl/MANIFEST#320 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#319~30225~ 2007-02-12 06:01:09.000000000 -0800
+++ perl/MANIFEST 2007-02-12 06:48:32.000000000 -0800
@@ -1103,6 +1103,7 @@
hints/qnx.sh Hints for named architecture
hints/README.hints Notes about hints
hints/rhapsody.sh Hints for named architecture
+hints/riscos.sh Hints for named architecture
hints/sco_2_3_0.sh Hints for named architecture
hints/sco_2_3_1.sh Hints for named architecture
hints/sco_2_3_2.sh Hints for named architecture
@@ -2549,6 +2550,7 @@
README.os400 Perl notes for OS/400
README.plan9 Perl notes for Plan 9
README.qnx Perl notes for QNX
+README.riscos Perl notes for RISC OS
README.solaris Perl notes for Solaris
README.tru64 Perl notes for Tru64
README.tw Perl for Traditional Chinese (in Big5)
==== //depot/maint-5.8/perl/README.riscos#1 (text) ====
Index: perl/README.riscos
--- /dev/null 2007-01-16 11:55:45.526841103 -0800
+++ perl/README.riscos 2007-02-12 06:48:32.000000000 -0800
@@ -0,0 +1,67 @@
+If you read this file _as_is_, just ignore the funny characters you
+see. It is written in the POD format (see pod/perlpod.pod) which is
+specifically designed to be readable as is.
+
+=head1 NAME
+
+README.riscos - Perl version 5 for RISC OS
+
+=head1 DESCRIPTION
+
+This document gives instructions for building Perl for RISC OS. It is
+complicated by the need to cross compile. There is a binary version of
+perl available from L<http://www.cp15.org/perl/> which you may wish to
+use instead of trying to compile it yourself.
+
+=head1 BUILD
+
+You need an installed and working gccsdk cross compiler
+L<http://gccsdk.riscos.info/> and REXEN
+L<http://www.cp15.org/programming/>
+
+Firstly, copy the source and build a native copy of perl for your host
+system.
+Then, in the source to be cross compiled:
+
+=over 4
+
+=item
+
+ $ ./Configure
+
+=item
+
+Select the riscos hint file. The default answers for the rest of the
+questions are usually sufficient.
+
+Note that, if you wish to run Configure non-interactively (see the INSTALL
+document for details), to have it select the correct hint file, you'll
+need to provide the argument -Dhintfile=riscos on the Configure
+command-line.
+
+=item
+
+ $ make miniperl
+
+=item
+
+This should build miniperl and then fail when it tries to run it.
+
+=item
+
+Copy the miniperl executable from the native build done earlier to
+replace the cross compiled miniperl.
+
+=item
+
+ $ make
+
+=item
+
+This will use miniperl to complete the rest of the build.
+
+=back
+
+=head1 AUTHOR
+
+Alex Waugh <[EMAIL PROTECTED]>
==== //depot/maint-5.8/perl/ext/Errno/Errno_pm.PL#9 (text) ====
Index: perl/ext/Errno/Errno_pm.PL
--- perl/ext/Errno/Errno_pm.PL#8~25558~ 2005-09-21 13:50:26.000000000 -0700
+++ perl/ext/Errno/Errno_pm.PL 2007-02-12 06:48:32.000000000 -0800
@@ -128,6 +128,12 @@
} elsif ($Config{archname} eq 'epoc') {
# Watch out for cross compiling for EPOC (usually done on linux)
$file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
+ } elsif ($Config{archname} eq 'arm-riscos') {
+ # Watch out for cross compiling for RISC OS
+ my $dep = `echo "#include <errno.h>" | gcc -E -M -`;
+ if ($dep =~ /(\S+errno\.h)/) {
+ $file{$1} = 1;
+ }
} elsif ($^O eq 'linux' &&
$Config{gccversion} ne '' # might be using, say, Intel's icc
) {
==== //depot/maint-5.8/perl/hints/riscos.sh#1 (text) ====
Index: perl/hints/riscos.sh
--- /dev/null 2007-01-16 11:55:45.526841103 -0800
+++ perl/hints/riscos.sh 2007-02-12 06:48:32.000000000 -0800
@@ -0,0 +1,20 @@
+#! /bin/sh
+# riscos.sh - hints for building perl using the gccsdk cross compiler for RISC
OS
+#
+
+
+cc='gcc'
+locincpth=""
+ccflags="-mpoke-function-name -DDYNAMIC_ENV_FETCH -DPERL_USE_SAFE_PUTENV"
+prefix='/<Perl$Dir>'
+osname='riscos'
+libpth=' '
+optimize='-O2'
+myarchname=''
+archname='arm-riscos'
+installprefix='~/PerlInst'
+mkdir -p $installprefix
+startperl="#!/usr/bin/perl"
+i_shadow='undef'
+ebcdic='undef'
+
==== //depot/maint-5.8/perl/hv.c#110 (text) ====
Index: perl/hv.c
--- perl/hv.c#109~30051~ 2007-01-28 13:56:48.000000000 -0800
+++ perl/hv.c 2007-02-12 06:48:32.000000000 -0800
@@ -1738,7 +1738,7 @@
xhv->xhv_eiter = NULL; /* HvEITER(hv) = NULL */
return NULL;
}
-#ifdef DYNAMIC_ENV_FETCH /* set up %ENV for iteration */
+#if defined(DYNAMIC_ENV_FETCH) && !defined(__riscos__) /* set up %ENV for
iteration */
if (!entry && SvRMAGICAL((SV*)hv) && mg_find((SV*)hv, PERL_MAGIC_env)) {
prime_env_iter();
#ifdef VMS
==== //depot/maint-5.8/perl/pod.lst#15 (text) ====
Index: perl/pod.lst
--- perl/pod.lst#14~27058~ 2006-02-03 03:35:30.000000000 -0800
+++ perl/pod.lst 2007-02-12 06:48:32.000000000 -0800
@@ -180,6 +180,7 @@
r perlos400 Perl notes for OS/400
r perlplan9 Perl notes for Plan 9
r perlqnx Perl notes for QNX
+r perlriscos Perl notes for RISC OS
r perlsolaris Perl notes for Solaris
r perltru64 Perl notes for Tru64
r perluts Perl notes for UTS
==== //depot/maint-5.8/perl/pod/perl.pod#25 (text) ====
Index: perl/pod/perl.pod
--- perl/pod/perl.pod#24~27058~ 2006-02-03 03:35:30.000000000 -0800
+++ perl/pod/perl.pod 2007-02-12 06:48:32.000000000 -0800
@@ -195,6 +195,7 @@
perlos400 Perl notes for OS/400
perlplan9 Perl notes for Plan 9
perlqnx Perl notes for QNX
+ perlriscos Perl notes for RISC OS
perlsolaris Perl notes for Solaris
perltru64 Perl notes for Tru64
perluts Perl notes for UTS
==== //depot/maint-5.8/perl/util.c#145 (text) ====
Index: perl/util.c
--- perl/util.c#144~30141~ 2007-02-05 14:46:22.000000000 -0800
+++ perl/util.c 2007-02-12 06:48:32.000000000 -0800
@@ -1583,16 +1583,16 @@
environ[i+1] = NULL; /* make sure it's null terminated */
}
else
- safesysfree(environ[i]);
- nlen = strlen(nam);
- vlen = strlen(val);
-
- environ[i] = (char*)safesysmalloc((nlen+vlen+2) * sizeof(char));
- /* all that work just for this */
- my_setenv_format(environ[i], nam, nlen, val, vlen);
+ safesysfree(environ[i]);
+ nlen = strlen(nam);
+ vlen = strlen(val);
+
+ environ[i] = (char*)safesysmalloc((nlen+vlen+2) * sizeof(char));
+ /* all that work just for this */
+ my_setenv_format(environ[i], nam, nlen, val, vlen);
} else {
# endif
-# if defined(__CYGWIN__) || defined(EPOC) || defined(SYMBIAN)
+# if defined(__CYGWIN__) || defined(EPOC) || defined(__SYMBIAN32__) ||
defined(__riscos__)
# if defined(HAS_UNSETENV)
if (val == NULL) {
(void)unsetenv(nam);
==== //depot/maint-5.8/perl/vms/descrip_mms.template#48 (text) ====
Index: perl/vms/descrip_mms.template
--- perl/vms/descrip_mms.template#47~30208~ 2007-02-10 15:36:59.000000000
-0800
+++ perl/vms/descrip_mms.template 2007-02-12 06:48:32.000000000 -0800
@@ -403,11 +403,11 @@
pod18 = [.lib.pods]perlopentut.pod [.lib.pods]perlos2.pod
[.lib.pods]perlos390.pod [.lib.pods]perlos400.pod [.lib.pods]perlothrtut.pod
pod19 = [.lib.pods]perlpacktut.pod [.lib.pods]perlplan9.pod
[.lib.pods]perlpod.pod [.lib.pods]perlpodspec.pod [.lib.pods]perlport.pod
[.lib.pods]perlqnx.pod
pod20 = [.lib.pods]perlre.pod [.lib.pods]perlref.pod [.lib.pods]perlreftut.pod
[.lib.pods]perlrequick.pod [.lib.pods]perlreref.pod [.lib.pods]perlretut.pod
-pod21 = [.lib.pods]perlrun.pod [.lib.pods]perlsec.pod
[.lib.pods]perlsolaris.pod [.lib.pods]perlstyle.pod [.lib.pods]perlsub.pod
[.lib.pods]perlsyn.pod
-pod22 = [.lib.pods]perlthrtut.pod [.lib.pods]perltie.pod
[.lib.pods]perltoc.pod [.lib.pods]perltodo.pod [.lib.pods]perltooc.pod
[.lib.pods]perltoot.pod
-pod23 = [.lib.pods]perltrap.pod [.lib.pods]perltru64.pod [.lib.pods]perltw.pod
[.lib.pods]perlunicode.pod [.lib.pods]perluniintro.pod [.lib.pods]perlutil.pod
-pod24 = [.lib.pods]perluts.pod [.lib.pods]perlvar.pod [.lib.pods]perlvmesa.pod
[.lib.pods]perlvms.pod [.lib.pods]perlvos.pod [.lib.pods]perlwin32.pod
-pod25 = [.lib.pods]perlxs.pod [.lib.pods]perlxstut.pod
+pod21 = [.lib.pods]perlriscos.pod [.lib.pods]perlrun.pod
[.lib.pods]perlsec.pod [.lib.pods]perlsolaris.pod [.lib.pods]perlstyle.pod
[.lib.pods]perlsub.pod
+pod22 = [.lib.pods]perlsyn.pod [.lib.pods]perlthrtut.pod
[.lib.pods]perltie.pod [.lib.pods]perltoc.pod [.lib.pods]perltodo.pod
[.lib.pods]perltooc.pod
+pod23 = [.lib.pods]perltoot.pod [.lib.pods]perltrap.pod
[.lib.pods]perltru64.pod [.lib.pods]perltw.pod [.lib.pods]perlunicode.pod
[.lib.pods]perluniintro.pod
+pod24 = [.lib.pods]perlutil.pod [.lib.pods]perluts.pod [.lib.pods]perlvar.pod
[.lib.pods]perlvmesa.pod [.lib.pods]perlvms.pod [.lib.pods]perlvos.pod
+pod25 = [.lib.pods]perlwin32.pod [.lib.pods]perlxs.pod [.lib.pods]perlxstut.pod
pod = $(pod0) $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8)
$(pod9) $(pod10) $(pod11) $(pod12) $(pod13) $(pod14) $(pod15) $(pod16) $(pod17)
$(pod18) $(pod19) $(pod20) $(pod21) $(pod22) $(pod23) $(pod24) $(pod25)
# Would be useful to automate the generation of this rule from pod/buildtoc
@@ -1141,6 +1141,10 @@
@ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods]
Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pods]
+[.lib.pods]perlriscos.pod : [.pod]perlriscos.pod
+ @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods]
+ Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pods]
+
[.lib.pods]perlrun.pod : [.pod]perlrun.pod
@ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods]
Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pods]
==== //depot/maint-5.8/perl/win32/Makefile#63 (text) ====
Index: perl/win32/Makefile
--- perl/win32/Makefile#62~30209~ 2007-02-10 15:55:04.000000000 -0800
+++ perl/win32/Makefile 2007-02-12 06:48:32.000000000 -0800
@@ -1150,6 +1150,7 @@
copy ..\README.os400 ..\pod\perlos400.pod
copy ..\README.plan9 ..\pod\perlplan9.pod
copy ..\README.qnx ..\pod\perlqnx.pod
+ copy ..\README.riscos ..\pod\perlriscos.pod
copy ..\README.solaris ..\pod\perlsolaris.pod
copy ..\README.tru64 ..\pod\perltru64.pod
copy ..\README.tw ..\pod\perltw.pod
@@ -1227,9 +1228,9 @@
perljp.pod perlko.pod perllinux.pod perlmachten.pod \
perlmacos.pod perlmacosx.pod perlmint.pod perlmpeix.pod \
perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
- perlos400.pod perlplan9.pod perlqnx.pod perlsolaris.pod \
- perltru64.pod perltw.pod perluts.pod perlvmesa.pod perlvms.pod \
- perlvms.pod perlvos.pod perlwin32.pod \
+ perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
+ perlsolaris.pod perltru64.pod perltw.pod perluts.pod \
+ perlvmesa.pod perlvms.pod perlvms.pod perlvos.pod perlwin32.pod \
pod2html pod2latex pod2man pod2text pod2usage \
podchecker podselect
-cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
==== //depot/maint-5.8/perl/win32/makefile.mk#71 (text) ====
Index: perl/win32/makefile.mk
--- perl/win32/makefile.mk#70~30209~ 2007-02-10 15:55:04.000000000 -0800
+++ perl/win32/makefile.mk 2007-02-12 06:48:32.000000000 -0800
@@ -1303,6 +1303,7 @@
copy ..\README.os400 ..\pod\perlos400.pod
copy ..\README.plan9 ..\pod\perlplan9.pod
copy ..\README.qnx ..\pod\perlqnx.pod
+ copy ..\README.riscos ..\pod\perlriscos.pod
copy ..\README.solaris ..\pod\perlsolaris.pod
copy ..\README.tru64 ..\pod\perltru64.pod
copy ..\README.tw ..\pod\perltw.pod
@@ -1374,9 +1375,9 @@
perljp.pod perlko.pod perllinux.pod perlmachten.pod \
perlmacos.pod perlmacosx.pod perlmint.pod perlmpeix.pod \
perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
- perlos400.pod perlplan9.pod perlqnx.pod perlsolaris.pod \
- perltru64.pod perltw.pod perluts.pod perlvmesa.pod perlvms.pod \
- perlvms.pod perlvos.pod perlwin32.pod \
+ perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
+ perlsolaris.pod perltru64.pod perltw.pod perluts.pod \
+ perlvmesa.pod perlvms.pod perlvms.pod perlvos.pod perlwin32.pod \
pod2html pod2latex pod2man pod2text pod2usage \
podchecker podselect
-cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
End of Patch.