From: Jarkko Hietaniemi Date: Mon, 17 Oct 2005 18:27:57 +0000 (+0300) Subject: even more Symbian X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=5c271e2566556176f5be72955599e28e159007fd;p=p5sagit%2Fp5-mst-13.2.git even more Symbian Message-ID: p4raw-id: //depot/perl@25782 --- diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs index c638648..0d2d8c6 100644 --- a/ext/Storable/Storable.xs +++ b/ext/Storable/Storable.xs @@ -1082,7 +1082,7 @@ static int store_blessed(pTHX_ stcxt_t *cxt, SV *sv, int type, HV *pkg); typedef int (*sv_store_t)(pTHX_ stcxt_t *cxt, SV *sv); -static sv_store_t sv_store[] = { +static const sv_store_t sv_store[] = { (sv_store_t)store_ref, /* svis_REF */ (sv_store_t)store_scalar, /* svis_SCALAR */ (sv_store_t)store_array, /* svis_ARRAY */ diff --git a/symbian/TODO b/symbian/TODO index e8586d2..52436da 100644 --- a/symbian/TODO +++ b/symbian/TODO @@ -47,9 +47,6 @@ fragile (see Symbian FAQ-0929), intensive debugging and fix needed - in S60 2.6 (at least in Nokia 6630 v4.03.11) launching scripts via FExplorer does not open up the console -- in the SDK the build creates DLLs in the system area - (e.g. epoc32\release\thumb\urel\io.dll), this is dangerous. Prefix them? - (needs changes in xsbuild and DynaLoader/XSLoader) =head2 Unicode diff --git a/symbian/find_writeable_data.pl b/symbian/find_writeable_data.pl index 24bf298..bdb5790 100644 --- a/symbian/find_writeable_data.pl +++ b/symbian/find_writeable_data.pl @@ -34,7 +34,7 @@ use Cwd; use File::Basename; my $dir = lc(getcwd()); -my $tgt = basename(shift @ARGV); +my $tgt = basename(shift(@ARGV), ".mmp"); $dir =~ s!/!\\!g; $dir =~ s!^c:!c:$ENV{EPOCROOT}epoc32\\build!; diff --git a/symbian/xsbuild.pl b/symbian/xsbuild.pl index 556db70..0f6d66d 100644 --- a/symbian/xsbuild.pl +++ b/symbian/xsbuild.pl @@ -206,10 +206,12 @@ sub read_mmp { } sub write_mmp { - my ( $base, $userinclude, @src ) = @_; + my ( $ext, $base, $userinclude, @src ) = @_; + + my $extdash = $ext; $extdash =~ s!\\!-!g; print "\t$base.mmp\n"; - $CONF{TARGET} = "$base.dll"; + $CONF{TARGET} = "perl$VERSION-$extdash.dll"; $CONF{TARGETPATH} = "\\System\\Libs\\Perl\\$R_V_SV"; $CONF{SOURCE} = [@src]; $CONF{SOURCEPATH} = [ $CWD, $BUILDROOT ]; @@ -410,8 +412,10 @@ sub xsconfig { $extdirdir = $extdirdir eq "." ? "" : "$extdirdir\\"; + my $extdash = $ext; $extdash =~ s!\\!-!g; + my %lst; - $lst{"$UREL\\$base.dll"} = + $lst{"$UREL\\perl$VERSION-$extdash.dll"} = "$targetroot\\$ARM-symbian\\$base.dll" if -f $basexs; $lst{"$dir\\$base.pm"} = "$targetroot\\$extdirdir$base.pm" @@ -424,6 +428,7 @@ sub xsconfig { my @found; find( sub { push @found, $File::Find::name if -f $_ }, 'lib' ); for my $found (@found) { + next if $found =~ /\.bak$/i; # Zlib my ($short) = ( $found =~ m/^lib.(.+)/ ); $short =~ s!/!\\!g; $found =~ s!/!\\!g; @@ -603,7 +608,7 @@ __EOF__ unlink($submf); my $subbase = $d; $subbase =~ s!/!::!g; - write_mmp( $subbase, ["..\\Encode"], "$subbase.c", + write_mmp( $ext, $subbase, ["..\\Encode"], "$subbase.c", @subsrc ); write_makefile( $subbase, $build ); write_bld_inf($subbase); @@ -630,7 +635,7 @@ __EOF__ print "Configuring Encode...\n"; } - write_mmp( $base, [ keys %incdir ], @src ); + write_mmp( $ext, $base, [ keys %incdir ], @src ); write_makefile( $base, $build ); } my $lstname = $ext; @@ -658,6 +663,7 @@ sub update_cwd { for my $ext (@ARGV) { $ext =~ s!::!\\!g; + my $extdash = "ext\\$ext"; $extdash =~ s!\\!-!g; $ext =~ s!/!\\!g; my $cfg; @@ -794,8 +800,8 @@ __EOF__ my %symbol; my $def; my $basef; - for my $f ("$SDK\\Epoc32\\Build$CWD\\$base\\WINS\\$base.def", - "..\\BMARM\\${base}u.def") { + for my $f ("$SDK\\Epoc32\\Build$CWD\\$base\\WINS\\perl$VERSION-$extdash.def", + "..\\BMARM\\perl$VERSION-${extdash}u.def") { print "\t($f - "; if ( open( $def, $f ) ) { print "OK)\n";