EPOC fixes from Olaf Flebbe.
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 12 Dec 2001 21:45:49 +0000 (21:45 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 12 Dec 2001 21:45:49 +0000 (21:45 +0000)
p4raw-id: //depot/perl@13665

README.epoc
epoc/config.sh
epoc/createpkg.pl
ext/Data/Dumper/Dumper.xs
ext/Errno/Errno_pm.PL

index 3078df1..74ea6b7 100644 (file)
@@ -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<perlrun> 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
index 268b283..6909d55 100644 (file)
@@ -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=''
index 5ce70fc..39cd8c4 100644 (file)
@@ -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";
+open OUT, ">Artistic.txt";
+while (my $line = <IN>) {
+  chomp $line;
+  print OUT "$line\x13\x10";
+}
 
+close IN;
+close OUT;
 
index d89bf96..4e26387 100644 (file)
@@ -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);
index 826f37f..d429146 100644 (file)
@@ -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
             ) {