5.9.x (and 5.8.x): Symbian update
Jarkko Hietaniemi [Thu, 18 Aug 2005 13:43:46 +0000 (16:43 +0300)]
Message-ID: <B356D8F434D20B40A8CEDAEC305A1F24E7A41B@esebe105.NOE.Nokia.com>

p4raw-id: //depot/perl@25304

README.symbian
ext/Compress/Zlib/Zlib.xs
numeric.c
symbian/TODO
symbian/config.pl
symbian/config.sh
symbian/install.cfg
symbian/symbian_stubs.c
symbian/xsbuild.pl

index e6cb4dc..db7f1de 100644 (file)
@@ -31,7 +31,8 @@ mainly as demonstrations.
 (0) You need to have the Symbian SDK installed.
 
     These instructions have been tested under various Nokia Series 60
-    Symbian SDKs (1.2 to 2.6).  You can get the SDKs from
+    Symbian SDKs (1.2 to 2.6, 2.8 should also work, 1.2 compiles but
+    does not work).  You can get the SDKs from
     Forum Nokia (http://www.forum.nokia.com/).
 
     A prerequisite for any of the SDKs is to install ActivePerl
@@ -42,7 +43,7 @@ mainly as demonstrations.
     or the Microsoft Visual C++ 6.0 installed (SP3 minimum, SP5 recommended).
 
     Note that for example the Serie s60 2.0 VC SDK installation talks
-    about ActivePerl build 518, which does no more (as of mid-2004) exist
+    about ActivePerl build 518, which does no more (as of mid-2005) exist
     at the ActiveState website.  The ActivePerl 5.8.4 build 810 was
     used successfully for compiling Perl on Symbian.  The 5.6.x ActivePerls
     do not work.
@@ -93,6 +94,8 @@ mainly as demonstrations.
         2.1 | -  | +  | 6670
         2.6 | +  | +  | 6630    
 
+    Also 2.8 should work fine.
+
     If you are using the 'make' directly, it is the GNU make from the SDKs,
     and it will invoke the right make commands for the Windows emulator
     build and the Arm target builds ('thumb' by default) as necessary.
@@ -331,7 +334,7 @@ Perl Symbian Port version 0.1.0: April 2005
     DynaLoader Exporter File::Spec integer lib strict Symbol
     vars warnings XSLoader
   - The following extensions are available:
-    attrs Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
+    attrs Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
     Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64
     PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes
   - The following extensions are missing for various technical reasons:
index c6fd54d..5162f1e 100644 (file)
@@ -85,7 +85,7 @@ typedef gzType* Compress__Zlib__gzFile ;
 #define crcInitial crc32(0L, Z_NULL, 0)
 
 #if 1
-static char *my_z_errmsg[] = {
+static const char * const my_z_errmsg[] = {
     "need dictionary",     /* Z_NEED_DICT     2 */
     "stream end",          /* Z_STREAM_END    1 */
     "",                    /* Z_OK            0 */
@@ -98,8 +98,20 @@ static char *my_z_errmsg[] = {
     ""};
 #endif
 
+#if defined(__SYMBIAN32__)
+# define NO_WRITEABLE_DATA
+#endif
+
+#define TRACE_DEFAULT 0
+
+#ifdef NO_WRITEABLE_DATA
+#define trace TRACE_DEFAULT
+#else
+static int trace = TRACE_DEFAULT ;
+#endif
 
-static int trace = 0 ;
+/* Dodge PerlIO hiding of these functions. */
+#undef printf
 
 static void
 #ifdef CAN_PROTOTYPE
@@ -109,6 +121,7 @@ SetGzErrorNo(error_no)
 int error_no ;
 #endif
 {
+    dTHX;
     char * errstr ;
     SV * gzerror_sv = perl_get_sv(GZERRNO, FALSE) ;
   
@@ -249,7 +262,7 @@ gzreadline(file, output)
   SV * output ;
 #endif
 {
-
+    dTHX;
     SV * store = file->buffer ;
     char *nl = "\n"; 
     char *p;
@@ -303,6 +316,7 @@ SV * sv ;
 char * string;
 #endif
 {
+    dTHX;
     if (SvROK(sv)) {
        sv = SvRV(sv) ;
        switch(SvTYPE(sv)) {
index 5eafdda..2970dad 100644 (file)
--- a/numeric.c
+++ b/numeric.c
@@ -897,7 +897,7 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value)
 
 #ifdef HAS_STRTOD
     if (*s == 'n' || *s == 'N' || *s == 'i' || *s == 'I') {
-        char *p = negative ? s-1 : s;
+        const char *p = negative ? s - 1 : s;
         char *endp;
         NV rslt;
         rslt = strtod(p, &endp);
index 78dcd24..9472641 100644 (file)
        - libnet
        - Bundle::CPAN
                - Archive::Tar
-               - Compress::Zlib (zlib?) (there is builtin gz support)
                - Term::ReadKey (useless?)
                - Term::ReadLine (useless?)
        - Bundle::LWP
                - HTML::HeadParser
                - LWP
        - Crypt::SSLeay? (ssl?)
-       - IO::Zlib? (zlib?)
        - IMAP?
        - Net::Telnet?
        - Archive::Zip?
        - Date::Calc?
        - XML? XML::Simple? (expat?) (there is builtin xml support)
        - RSS?
-       - DBI
+       - DBI (DBD::???)
        - DBD::SQLite? (sqlite?)
        - SOAP? XML-RPC?
 
index e2cd2c6..ce5d926 100644 (file)
@@ -554,12 +554,12 @@ perllib.sis:      \$(PM)
 perlext.sis:   perldll_arm buildext_sis
        perl symbian\\makesis.pl perl${VERSION}ext
 
-EXT =  Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader attrs
+EXT =  Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader attrs
 
-buildext: perldll symbian\\xsbuild.pl
+buildext: perldll symbian\\xsbuild.pl lib\\Config.pm
        perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) \$(EXT)
 
-buildext_sis: perldll.sis symbian\\xsbuild.pl
+buildext_sis: perldll.sis symbian\\xsbuild.pl lib\\Config.pm
        perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) --sis \$(EXT)
 
 cleanext: symbian\\xsbuild.pl
index dea35d5..731dd5c 100644 (file)
@@ -645,7 +645,7 @@ pm_apiversion='5.005'
 privlib='\\system\\libs\\perl\\x.y.z'
 privlibexp='\\system\\libs\\perl\\x.y.z'
 procselfexe=''
-prototype='undef'
+prototype='define'
 ptrsize='4'
 quadkind='4'
 quadtype='int64_t'
index 8cc7b10..3ff71e5 100644 (file)
@@ -38,6 +38,7 @@ lib   FileHandle.pm
 lib    Filter/Simple.pm
 lib    if.pm
 lib    integer.pm
+lib    IO/Zlib.pm
 lib    lib.pm
 lib    Net/Cmd.pm
 lib    Net/Config.pm
@@ -69,6 +70,7 @@ lib   warnings/register.pm
 # Extensions.
 #
 ext    attrs
+ext    Compress/Zlib           -zlib-src
 ext    Cwd
 ext    Data/Dumper
 ext    Devel/Peek
index 1505698..c997446 100644 (file)
@@ -43,8 +43,8 @@ void Perl_my_setenv(pTHX_ char *var, char *val) { }
 void Perl_my_setenv(pTHX_ const char *var, const char *val) { }
 #endif
 
-bool Perl_do_exec(pTHX_ char *cmd) { return FALSE; }
-bool Perl_do_exec3(pTHX_ char *cmd, int fd, int flag) { return FALSE; }
+bool Perl_do_exec(pTHX_ const char *cmd) { return FALSE; }
+bool Perl_do_exec3(pTHX_ const char *cmd, int fd, int flag) { return FALSE; }
 
 int Perl_do_spawn(pTHX_ char *cmd) { return symbian_do_spawn(cmd); }
 int Perl_do_aspawn(pTHX_ SV *really, SV** mark, SV **sp) { return symbian_do_aspawn(really, mark, sp); }
index ac6c147..afbc9ef 100644 (file)
@@ -427,18 +427,24 @@ sub xsconfig {
         }
     }
     if ( my @c = glob("*.c *.cpp */*.c */*.cpp") ) {
+        @c = grep { ! m:^zlib-src/: } @c if $ext eq 'ext\Compress\Zlib';
         for my $c (@c) {
             $c =~ s:/:\\:g;
             $src{$c}++;
         }
     }
     if ( my @h = glob("*.h */*.h") ) {
+        @h = grep { ! m:^zlib-src/: } @h if $ext eq 'ext\Compress\Zlib';
         for my $h (@h) {
             $h =~ s:/:\\:g;
             $h = dirname($h);
             $incdir{"$dir\\$h"}++ unless $h eq ".";
         }
     }
+    if ( $ext eq 'ext\Compress\Zlib' ) {
+        system_echo("perl -pi.bak -e s:True:False: config.in") == 0
+          or die "$0: changing BUILD_ZLIB failed: $!\n";
+    }
     if ( exists $EXTCFG{$ext} ) {
         for my $cfg ( @{ $EXTCFG{$ext} } ) {
             if ( $cfg =~ /^([-+])?(.+\.(c|cpp|h))$/ ) {