diff options
author | Olaf Flebbe <o.flebbe@science-computing.de> | 2000-09-21 01:16:26 +0200 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2000-10-03 00:34:59 +0000 |
commit | ed79a026b5aec9cc3f786c2971aa15a4b21f396c (patch) | |
tree | b0e2bf3556083784ba28cbb74402f950712d81d9 /epoc | |
parent | 444155da6cc74bc317db82ecaa4272f5cf6d3c9b (diff) | |
download | perl-ed79a026b5aec9cc3f786c2971aa15a4b21f396c.tar.gz |
Epoc update
Message-ID: <26423.969484586@www10.gmx.net>
p4raw-id: //depot/perl@7124
Diffstat (limited to 'epoc')
-rw-r--r-- | epoc/config.sh | 60 | ||||
-rw-r--r-- | epoc/createpkg.pl | 6 | ||||
-rw-r--r-- | epoc/epoc.c | 66 | ||||
-rw-r--r-- | epoc/epoc_stubs.c | 4 | ||||
-rw-r--r-- | epoc/epocish.h | 1 | ||||
-rw-r--r-- | epoc/link.pl | 6 |
6 files changed, 108 insertions, 35 deletions
diff --git a/epoc/config.sh b/epoc/config.sh index af89237208..d9be3a7acc 100644 --- a/epoc/config.sh +++ b/epoc/config.sh @@ -32,8 +32,8 @@ apirevision='' apisubversion='' apiversion='' ar='arm-pe-ar' -archlib='/perl/lib/5.7.0/epoc' -archlibexp='/perl/lib/5.7.0/epoc' +archlib='?:/perl/lib/5.7.0/epoc' +archlibexp='?:/perl/lib/5.7.0/epoc' archname64='' archname='epoc' archobjs='epoc.o epocish.o epoc_stubs.o' @@ -386,7 +386,7 @@ emacs='' eunicefix=':' exe_ext='' expr='expr' -extensions='Data/Dumper File/Glob IO Socket Fcntl' +extensions='Data/Dumper File/Glob IO Socket Fcntl Sys/Hostname Errno' fflushNULL='undef' fflushall='define' find='' @@ -484,21 +484,21 @@ i_vfork='undef' ignore_versioned_solibs='' incpath='' inews='' -installarchlib='/home/olaf/E/lib' -installbin='/home/olaf/E/bin' -installman1dir='' -installman3dir='' -installprefix='/home/olaf/' +installarchlib='/home/of/PERL/perl/lib/5.6.0/epoc' +installbin='/home/of/PERL/System/Programs/' +installman1dir='/home/of/PERL/man1' +installman3dir='/home/of/PERL/man3' +installprefix='' installprefixexp='' -installprivlib='' -installscript='' -installsitearch='/home/olaf/E/site/' -installsitelib='/home/olaf/E/site/lib' +installprivlib='/home/of/PERL/perl/lib/5.6.0/' +installscript='/home/of/PERL/bin/' +installsitearch='/home/of/PERL/site/lib/site_perl/5.6.0/epoc' +installsitelib='/home/of/PERL/perl/lib/site_perl/5.6.0' installstyle='' installusrbinperl='undef' installvendorlib='' intsize='4' -known_extensions='Data/Dumper File/Glob IO Socket Fcntl' +known_extensions='Data/Dumper File/Glob IO Socket Fcntl Sys/Hostname Errno' ksh='' ld='echo' lddlflags='' @@ -559,7 +559,7 @@ netdb_net_type='int' nm='arm-pe-nm' nm_opt='' nm_so_opt='' -nonxs_ext='' +nonxs_ext='Errno' nroff='nroff' o_nonblock='O_NONBLOCK' obj_ext='' @@ -573,7 +573,7 @@ package='' pager='' passcat='' patchlevel='' -path_sep='' +path_sep=':' perl='' perladmin='' perlpath='' @@ -585,8 +585,8 @@ pmake='' pr='' prefix='' prefixexp='' -privlib='/perl/lib/5.7.0' -privlibexp='/perl/lib/5.7.0' +privlib='?:/perl/lib/5.7.0' +privlibexp='?:/perl/lib/5.7.0' prototype='define' ptrsize='4' randbits='31' @@ -630,11 +630,11 @@ sig_name_init='"ZERO", 0' sig_num='0' sig_num_init='0, 0' signal_t='void' -sitearch='/perl/lib/site_perl/5.7.0/epoc' -sitearchexp='/perl/lib/site_perl/5.7.0/epoc' -sitelib='/perl/lib/site_perl/5.7.0/' -sitelib_stem='/perl/lib/site_perl' -sitelibexp='/perl/lib/site_perl/5.7.0/' +sitearch='?:/perl/lib/site_perl/5.7.0/epoc' +sitearchexp='?:/perl/lib/site_perl/5.7.0/epoc' +sitelib='?:/perl/lib/site_perl/5.7.0/' +sitelib_stem='?:/perl/lib/site_perl' +sitelibexp='?:/perl/lib/site_perl/5.7.0/' siteprefix='' siteprefixexp='' sizesize='4' @@ -652,7 +652,7 @@ src='.' ssizetype='long' startperl='' startsh='#!/bin/sh' -static_ext='Data/Dumper File/Glob IO Socket Fcntl' +static_ext='Data/Dumper File/Glob IO Socket Fcntl Sys/Hostname' stdchar='char' stdio_base='' stdio_bufsiz='' @@ -945,4 +945,16 @@ xs_apiversion='5.005' d_getcwd='define' i_sysmode='undef' d_vendorarch='undef' - +d_frexpl='undef' +d_getespwnam='undef' +d_getprpwnam='undef' +d_isnan='define' +d_isnanl='undef' +d_modfl='undef' +d_setproctitle='undef' +d_socks5_init='undef' +i_libutil='undef' +i_prot='undef' +d_SCNfldbl='undef' +d_perl_otherlibdirs='undef' +nvsize='16' diff --git a/epoc/createpkg.pl b/epoc/createpkg.pl index 77dafb1103..65a881f43f 100644 --- a/epoc/createpkg.pl +++ b/epoc/createpkg.pl @@ -3,9 +3,9 @@ use File::Find; use Cwd; -$VERSION="5.6"; +$VERSION="5.7"; $PATCH="0"; -$EPOC_VERSION=20; +$EPOC_VERSION=24; $CROSSCOMPILEPATH=cwd; $CROSSREPLACEPATH="H:\\perl"; @@ -32,7 +32,7 @@ open OUT,">perl.pkg"; print OUT "#{\"perl$VERSION\"},(0x100051d8),$PATCH,$EPOC_VERSION,0\n"; -print OUT "\"$CROSSREPLACEPATH\\perlmain.exe\"-\"!:\\perl.exe\"\n"; +print OUT "\"$CROSSREPLACEPATH\\perlmain.exe\"-\"!:\\system\\programs\\perl.exe\"\n"; find(\&filefound, cwd.'/lib'); print OUT "@\"G:\\lib\\stdlib.sis\",(0x0100002c3)\n" diff --git a/epoc/epoc.c b/epoc/epoc.c index 498036dbc0..a2691f3d38 100644 --- a/epoc/epoc.c +++ b/epoc/epoc.c @@ -58,6 +58,7 @@ Perl_epoc_init(int *argcp, char ***argvp) { } + #ifdef __MARM__ /* Symbian forgot to include __fixunsdfi into the MARM euser.lib */ /* This is from libgcc2.c , gcc-2.7.2.3 */ @@ -86,6 +87,8 @@ __fixunsdfsi (a) return (SItype) a; } +#endif + #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -143,5 +146,64 @@ do_spawn (pTHX_ SV *really,SV **mark,SV **sp) return rc; } - -#endif +static +XS(epoc_getcwd) /* more or less stolen from win32.c */ +{ + dXSARGS; + /* Make the host for current directory */ + char *buffer; + int buflen = 256; + + char *ptr; + buffer = (char *) malloc( buflen); + if (buffer == NULL) { + XSRETURN_UNDEF; + } + while ((NULL == ( ptr = getcwd( buffer, buflen))) && (errno == ERANGE)) { + buflen *= 2; + if (NULL == realloc( buffer, buflen)) { + XSRETURN_UNDEF; + } + + } + + /* + * If ptr != Nullch + * then it worked, set PV valid, + * else return 'undef' + */ + + if (ptr) { + SV *sv = sv_newmortal(); + char *tptr; + + for (tptr = ptr; *tptr != '\0'; tptr++) { + if (*tptr == '\\') { + *tptr = '/'; + } + } + sv_setpv(sv, ptr); + free( buffer); + + EXTEND(SP,1); + SvPOK_on(sv); + ST(0) = sv; + XSRETURN(1); + } + free( buffer); + XSRETURN_UNDEF; +} + + +void +Perl_init_os_extras(void) +{ + dTHXo; + char *file = __FILE__; + newXS("EPOC::getcwd", epoc_getcwd, file); +} + +void +Perl_my_setenv(pTHX_ char *nam,char *val) { + setenv( nam, val, 1); +} diff --git a/epoc/epoc_stubs.c b/epoc/epoc_stubs.c index b11da400d6..c1c6bcf9e0 100644 --- a/epoc/epoc_stubs.c +++ b/epoc/epoc_stubs.c @@ -8,8 +8,6 @@ #include <string.h> -char *environ = 0; - int getgid() {return 0;} int getegid() {return 0;} int geteuid() {return 0;} @@ -31,7 +29,7 @@ signal() { } int execv() { return -1;} int execvp() { return -1;} -void Perl_do_exec() {} +void Perl_do_exec() {} /*------------------------------------------------------------------*/ /* Two dummy functions implement getproto* */ diff --git a/epoc/epocish.h b/epoc/epocish.h index 75a64fcda0..31da472bd4 100644 --- a/epoc/epocish.h +++ b/epoc/epocish.h @@ -139,4 +139,5 @@ double epoc_atof( const char *ptr); #define atof(a) epoc_atof(a) +#define init_os_extras Perl_init_os_extras diff --git a/epoc/link.pl b/epoc/link.pl index 9da8a356ca..ab3bd652b4 100644 --- a/epoc/link.pl +++ b/epoc/link.pl @@ -15,11 +15,11 @@ system("arm-pe-dlltool --as=arm-pe-as --output-exp $basname.exp " . "--base-file $basname.bas $epoc/lib/eexe.o @objs " . "$epoc/lib/ecrt0.o $epoc/lib/estlib.lib $epoc/lib/euser.lib"); -system("arm-pe-ld -s -e _E32Startup -o $basname.exe $basname.exp " . +system("arm-pe-ld -s -e _E32Startup $basname.exp " . "-o $baspe.exe $epoc/lib/eexe.o @objs " . "$epoc/lib/ecrt0.o $epoc/lib/estlib.lib $epoc/lib/euser.lib"); -system( "wine \"$epoc/bin/petran.exe $baspe.exe $basname.exe " . +system( "wine $epoc/bin/petran.exe \"$baspe.exe $basname.exe " . "-nocall -heap 0x00000400 0x00400000 -stack 0x0000c000 " . - "-uid1 0x1000007a -uid2 0x100051d8 -uid3 0x00000000 \" "); + "-uid1 0x1000007a -uid2 0x100051d8 -uid3 0x00000000\" "); |