summaryrefslogtreecommitdiff
path: root/epoc
diff options
context:
space:
mode:
authorOlaf Flebbe <o.flebbe@science-computing.de>2000-09-21 01:16:26 +0200
committerJarkko Hietaniemi <jhi@iki.fi>2000-10-03 00:34:59 +0000
commited79a026b5aec9cc3f786c2971aa15a4b21f396c (patch)
treeb0e2bf3556083784ba28cbb74402f950712d81d9 /epoc
parent444155da6cc74bc317db82ecaa4272f5cf6d3c9b (diff)
downloadperl-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.sh60
-rw-r--r--epoc/createpkg.pl6
-rw-r--r--epoc/epoc.c66
-rw-r--r--epoc/epoc_stubs.c4
-rw-r--r--epoc/epocish.h1
-rw-r--r--epoc/link.pl6
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\" ");