From: Jarkko Hietaniemi Date: Wed, 12 Dec 2001 21:45:49 +0000 (+0000) Subject: EPOC fixes from Olaf Flebbe. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=02a99678fa25e3993355f34f3aaf4bc0c9f2c745;p=p5sagit%2Fp5-mst-13.2.git EPOC fixes from Olaf Flebbe. p4raw-id: //depot/perl@13665 --- diff --git a/README.epoc b/README.epoc index 3078df1..74ea6b7 100644 --- a/README.epoc +++ b/README.epoc @@ -16,10 +16,9 @@ EPOC is an OS for palmtops and mobile phones. For more informations look at: http://www.symbian.com/ This is a port of perl to EPOC. It runs on ER5 machines: Psion 5mx, -5mx Pro, Psion Revo and on the Ericson M128. I have no report about -the Psion Netbook or the S7. It runs on ER3 Hardware (Series 5 -classic), too. For more information about this hardware please refer -to http://www.psion.com. +5mx Pro, Psion Revo, Psion Netbook and on the Ericson M128. It runs on +ER3 Hardware (Series 5 classic), too. For more information about this +hardware please refer to http://www.psion.com. Vendors which like to have support for their devices are free to send me a sample. @@ -50,13 +49,7 @@ start perl with a double click on the camel icon. Be sure to configure the perl installation drive first. You can even provide a script with a special commandline, if needed. -Alternatively you can get ESHELL from symbian: -http://developer.epocworld.com/downloads/progs/Eshell.zip - -Running ESHELL you can enter: perl -de 0 in order to run the perl -debugger. If you are leaving perl, you get into the system screen. You -have to switch back manually to ESHELL. When perl is running, you will -see a task with the name STDOUT in the task list. +Alternatively you can use the epocemx shell If you have an ER3 machine (i.e. a PSION 5), you may have to supply the full path to the perl executable C:\system\programs\perl.exe. @@ -67,9 +60,8 @@ command line switch '-x'. See L for details. =head1 STOPPING PERL ON EPOC You can stop a running perl process in the task list by closing the -application `STDOUT'. You cannot stop a running perl process if it has -not written anything to stdout or stderr! Be very cautious with I/O -redirection. You will have to reboot the PDA! +application `STDOUT'. You can use the kill command in the epocemx +shell to kill perl. =head1 USING PERL ON EPOC @@ -110,7 +102,7 @@ perl.exe C:/test.pl >C:/output.txt =head2 Editors on Epoc A suitable text editor can be downloaded from symbian - http://developer.epocworld.com/downloads/progs/Editor.zip +http://www.symbian.com/developer/downloads/files/editor.zip =head2 Features of Perl on Epoc @@ -169,17 +161,8 @@ Sorry, this is far too short. =item * -You will need the C++ SDK from http://developer.epocworld.com/. - -=item * - -You will need to set up the cross SDK from -http://www.science-computing.de/o.flebbe/sdk - -=item * - -You may have to adjust config.sh (cc, cppflags) to reflect your epoc -and SDK location. +You will need the epocemx SDK from Eberhard Mattes. Watch out for an +announcement. =item * @@ -201,16 +184,9 @@ Start again from scratch make cp miniperl.native miniperl make - make ext/Errno/pm_to_blib - perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ - lib/auto/Data/Dumper/Dumper.a \ - lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ - lib/auto/Socket/Socket.a \ - lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \ - perl.a `cat ext.libs` perl createpkg.pl - wine G:/bin/makesis perl.pkg perl.sis + emxsis perl.pkg perl.sis =back @@ -226,6 +202,6 @@ http://www.science-computing.de/o.flebbe/perl/ =head1 LAST UPDATE -2001-02-26 +2001-12-12 =cut diff --git a/epoc/config.sh b/epoc/config.sh index 268b283..6909d55 100644 --- a/epoc/config.sh +++ b/epoc/config.sh @@ -32,7 +32,7 @@ aphostname='' apirevision='' apisubversion='' apiversion='' -ar='arm-pe-ar' +ar='arm-epoc-pe-ar' archlib='?:/perl/lib/5.7.2/epoc' archlibexp='?:/perl/lib/5.7.2/epoc' archname64='' @@ -50,14 +50,14 @@ byteorder='1234' c='' castflags='0' cat='cat' -cc='arm-pe-gcc -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/ -nostdinc -D__SYMBIAN32__ -D__PSISOFT32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__EXE__ -I/usr/local/epoc/include/ -I/usr/local/epoc/include/libc -DEPOC' +cc='arm-epoc-pe-gcc -DEPOC' cccdlflags='' ccdlflags='' -ccflags='-Wno-ctor-dtor-privacy -mcpu-arm710 -mapcs-32 -mshort-load-bytes -msoft-float -fcheck-new -fvtable-thunks' +ccflags='' ccsymbols='' cf_by='olaf' cf_email='o.flebbe@gmx.de' -cf_time='Dec 1999' +cf_time='Dec 2001' chgrp='' chmod='' chown='' @@ -67,14 +67,14 @@ compress='' contains='grep' cp='cp' cpio='' -cpp='arm-pe-cpp' +cpp='arm-epoc-pe-cpp' cpp_stuff='42' cppccsymbols='EPOC=1' -cppflags=' -nostdinc -D__SYMBIAN32__ -D__PSISOFT32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__EXE__ -I/usr/local/epoc/include/ -I/usr/local/epoc/include/libc' +cppflags='' cpplast='-' cppminus='-' -cpprun='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/' -cppstdin='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/' +cpprun='arm-epoc-pe-gcc -E' +cppstdin='arm-epoc-pe-gcc -E' cppsymbols='' cryptlib='' csh='csh' @@ -436,7 +436,7 @@ firstmakefile='makefile' flex='' fpostype='fpos_t' freetype='void' -full_ar='/usr/local/bin/arm-pe-ar' +full_ar='arm-epoc-pe-ar' full_csh='' full_sed='/usr/bin/sed' gccversion='' @@ -546,7 +546,7 @@ known_extensions='Data/Dumper File/Glob IO Socket Fcntl Sys/Hostname Errno' ksh='' ld='echo' lddlflags='' -ldflags='' +ldflags='-Wl,-heap,0x04000000' ldlibpthname='' less='' lib_ext='' @@ -615,7 +615,7 @@ netdb_hlen_type='int' netdb_host_type='const char *' netdb_name_type='const char *' netdb_net_type='int' -nm='arm-pe-nm' +nm='arm-epoc-pe-nm' nm_opt='' nm_so_opt='' nonxs_ext='Errno' @@ -652,7 +652,7 @@ ptrsize='4' randbits='31' randfunc='' randseedtype='unsigned' -ranlib='arm-pe-ranlib' +ranlib='arm-epoc-pe-ranlib' rd_nodata='-1' rm='rm' rmail='' diff --git a/epoc/createpkg.pl b/epoc/createpkg.pl index 5ce70fc..39cd8c4 100644 --- a/epoc/createpkg.pl +++ b/epoc/createpkg.pl @@ -6,35 +6,38 @@ use Cwd; $VERSION="5.7"; $PATCH="1"; $EPOC_VERSION=27; -$CROSSCOMPILEPATH=cwd; -$CROSSREPLACEPATH="H:\\perl"; sub filefound { - my $f = $File::Find::name; - - return if ( $f =~ /CVS|unicode|CPAN|ExtUtils|IPC|User|DB.pm|\.a$|\.ld$|\.exists$|\.pod$/i); - my $back = $f; - - $back =~ s|$CROSSCOMPILEPATH||; - $back =~ s|/|\\|g; + my $f = $File::Find::name; + + return if ( $f =~ /CVS|unicode|CPAN|ExtUtils|IPC|User|DB.pm|\.a$|\.ld$|\.exists$|\.pod$/i); + my $back = $f; - my $psiback = $back; + my $psiback = $back; - $psiback =~ s/\\lib\\/\\perl\\lib\\$VERSION.$PATCH\\/i; + $psiback =~ s|.*/lib/|\\perl\\lib\\$VERSION.$PATCH\\|; - print OUT "\"$CROSSREPLACEPATH$back\"-\"!:$psiback\"\n" if ( -f $f ); -; + print OUT "\"$back\"-\"!:$psiback\"\n" if ( -f $f ); } open OUT,">perl.pkg"; print OUT "#{\"perl$VERSION\"},(0x100051d8),$PATCH,$EPOC_VERSION,0\n"; -print OUT "\"$CROSSREPLACEPATH\\Artistic\"-\"\",FT,TA\n"; -print OUT "\"$CROSSREPLACEPATH\\perlmain.exe\"-\"!:\\system\\programs\\perl.exe\"\n"; +print OUT "\"" . cwd . "/Artistic.txt\"-\"\",FT,TA\n"; +print OUT "\"" . cwd . "/perl\"-\"!:\\system\\programs\\perl.exe\"\n"; find(\&filefound, cwd.'/lib'); -print OUT "@\"G:\\lib\\stdlib.sis\",(0x0100002c3)\n" +# print OUT "@\"G:\\lib\\stdlib.sis\",(0x0100002c3)\n"; + +open IN, "Artistic.txt"; +while (my $line = ) { + chomp $line; + print OUT "$line\x13\x10"; +} +close IN; +close OUT; diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs index d89bf96..4e26387 100644 --- a/ext/Data/Dumper/Dumper.xs +++ b/ext/Data/Dumper/Dumper.xs @@ -510,7 +510,11 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, } sortsv(AvARRAY(keys), av_len(keys)+1, +#ifdef USE_LOCALE_NUMERIC IN_LOCALE ? Perl_sv_cmp_locale : Perl_sv_cmp); +#else + Perl_sv_cmp); +#endif } else { dSP; ENTER; SAVETMPS; PUSHMARK(sp); diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL index 826f37f..d429146 100644 --- a/ext/Errno/Errno_pm.PL +++ b/ext/Errno/Errno_pm.PL @@ -97,7 +97,7 @@ sub get_files { $file{'../../vmesa/errno.h'} = 1; } elsif ($Config{archname} eq 'epoc') { # Watch out for cross compiling for EPOC (usually done on linux) - $file{'/usr/local/epoc/include/libc/sys/errno.h'} = 1; + $file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1; } elsif ($^O eq 'linux' && $Config{gccversion} ne '' # might be using, say, Intel's icc ) {