summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-01-10 05:27:03 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-01-10 05:27:03 +0000
commit3a2f06e93704a4187f4ca10ac210246cacbd9b05 (patch)
treee2098523c3499c3b9f0441e69fa72fd71a73907a
parent5a3e78123e3b27b54e7f651bd5fa051044f04189 (diff)
downloadperl-3a2f06e93704a4187f4ca10ac210246cacbd9b05.tar.gz
EPOC port update (from Olaf Flebbe <O.Flebbe@science-computing.de>)
p4raw-id: //depot/perl@4782
-rw-r--r--MANIFEST10
-rw-r--r--README.epoc168
-rw-r--r--epoc/Config.pm6
-rw-r--r--epoc/autosplit.pl3
-rw-r--r--epoc/config.h2471
-rw-r--r--epoc/config.sh764
-rw-r--r--epoc/createpkg.pl23
-rw-r--r--epoc/epoc.c59
-rw-r--r--epoc/epoc_stubs.c56
-rw-r--r--epoc/epocish.c34
-rw-r--r--epoc/epocish.h15
-rw-r--r--epoc/link.pl25
-rw-r--r--epoc/perl.mmp20
-rw-r--r--epoc/perl.pkg141
-rw-r--r--ext/IO/lib/IO/Socket.pm2
-rw-r--r--lib/Sys/Hostname.pm4
16 files changed, 1061 insertions, 2740 deletions
diff --git a/MANIFEST b/MANIFEST
index d7c381039a..f6e96a7d8b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -153,15 +153,13 @@ emacs/ptags Creates smart TAGS file
embed.h Maps symbols to safer names
embed.pl Produces {embed,embedvar,objXSUB,proto}.h, global.sym
embedvar.h C namespace management
-epoc/autosplit.pl EPOC port
-epoc/config.h EPOC port
-epoc/Config.pm EPOC port
-epoc/createpkg.pl EPOC port
+epoc/config.sh EPOC port config.sh template
+epoc/createpkg.pl EPOC port generate PKG file
epoc/epoc.c EPOC port
epoc/epoc_stubs.c EPOC port
+epoc/epocish.c EPOC port
epoc/epocish.h EPOC port
-epoc/perl.mmp EPOC port
-epoc/perl.pkg EPOC port
+epoc/link.pl EPOC port link a exe
ext/B/B.pm Compiler backend support functions and methods
ext/B/B.xs Compiler backend external subroutines
ext/B/B/Asmdata.pm Compiler backend data for assembler
diff --git a/README.epoc b/README.epoc
index 88d2e5ed83..2ff36fd8f9 100644
--- a/README.epoc
+++ b/README.epoc
@@ -1,42 +1,49 @@
-=================================================
+=====================================================================
Perl 5 README file for the EPOC operating system.
-==================================================
+=====================================================================
Olaf Flebbe <o.flebbe@gmx.de>
-http://www.linuxstart.com/~oflebbe/perl/perl.html
-1999-11-01
+http://www.linuxstart.com/~oflebbe/perl/perl5.html
+2000-01-08
+=====================================================================
Introduction
-------------
+=====================================================================
-This is a port of Perl version 5.005_62 to EPOC.
+EPOC is a OS for palmtops and mobile phones. For more informations look at:
+http://www.symbian.com/
-There are many features left out, because of restrictions of the POSIX
-support in the SDK.
+This is a port of Perl version 5.005_63 to EPOC. It runs on the Perl
+Series 5, Series 5mx. I have no reports about the Psion Revo, the
+Ericcson (??) and the Psion NetBook. I only have acess to an Series 5.
+Features are left out, because of restrictions of the POSIX support.
+=====================================================================
Installation/Usage
-------------------
+=====================================================================
-You will need ~4MB free space in order to run perl.
+You will need ~4MB free space in order to install and run perl.
-Install perl.sis on the EPOC machine (most likely a PSION Series
-5). If you do not know how to do that, you are on your own. You may
-have to use a CF Card in order to work with perl. The perl debugger
-uses more then 1.5 MB additional RAM. The heap is limited to 2 MB.
+Install perl.sis on the EPOC machine (most likely a PSION Series 5,
+5mx). If you do not know how to do that, you are on your own.
-Perl itself and its standard library are using 1.7MB disk space. I
-left out UTF support and modules which will not work with this
-version. (For details look into epoc/createpkg.pl).
+Perl itself and its standard library are using 2.5 MB disk space. I
+left out unicode support modules and modules which will not work with
+this version. (For details look into epoc/createpkg.pl). If you like
+to use them, you are free to copy them from a current perl release.
-Copy eshell.exe to the same location as perl. Start eshell.exe with a
-double click.
+Copy eshell.exe from the same page you got perl to your EPOC device.
+Start eshell.exe with a double tap.
Now you can enter: perl -de 0 in order to run the perl debugger. If
-you are leaving perl, you have to switch back manually to eshell.exe
-(With Ctrl-System or the button in the upper right corner of the
-System screen.) When perl is running, you will see a task with the
-name STDOUT in the task list.
+you are leaving perl, you get into the system screen. You have to
+switch back manually to eshell.exe When perl is running, you will see
+a task with the name STDOUT in the task list.
+
+======================================================================
+IO Redirection
+======================================================================
You can redirect the output with the UNIX bourne shell syntax (this is
built into perl rather then eshell) For instance the following command
@@ -45,88 +52,113 @@ stdout_file, the errors to stderr_file and input from stdin_file.
perl test.pl >stdout_file <stdin_file 2>stderr_file
-Alternativly you can use 2>&1 in order to add the standard error output to
-stdout.
+Alternativly you can use 2>&1 in order to add the standard error
+output to stdout.
+
+======================================================================
+PATH Names
+======================================================================
Pathnames to executables in eshell.exe have to be written with
-backslashes, file arguments to perl with slashes. The default drive of
-perl is the same as the drive perl.exe is located on, the default path
-is the path perl.exe is / (???).
+backslashes '\', file arguments to perl with slashes '/'. The default
+drive of perl is the same as the drive perl.exe is located on, the
+default path seems to be '/'.
i.e. command lines look a little bit funny:
D:\perl.exe C:/test.pl >C:/output.txt
-In order to use Getopt::Long you have to autosplit this module by hand: run
+You can automatically search for file on all EPOC drives with a ? as
+the driver letter. For instance ?:\a.txt seraches for C:\a.txt,
+D:\b.txt (and Z:\a.txt).
-\perl.exe \autosplit.pl in order to create the necessary files.
+======================================================================
+Editors
+======================================================================
You may have a problem to create perl scripts. A cumbersome workaround
is to use the OPL Editor and exporting to text.
-Problems
---------
+The OPL+ Editor is quite good. (Shareware: http://www.twiddlebit.com)
+There is a port of vim around:
+ http://www.starship.freeserve.co.uk/index.html
+
+======================================================================
+Restrictions
+======================================================================
-The following known problems exist:
+The following things are left out of this perl port:
-1) no support for system, backquoting, pipes etc. One cannot exec a
- different process.
++ backquoting, pipes etc.
-2) no signals, kill, alarm. Do not try to use them. This may be
- impossible to implement on EPOC.
++ system() does not inherit ressources like: file descriptors,
+ environment etc.
-3) select is missing.
++ signal, kill, alarm. Do not try to use them. This may be
+ impossible to implement on EPOC.
-4) binmode does not exist. (No CR LF to LF translation for text files)
++ select is missing.
-5) Only a stub Config.pm
++ binmode does not exist. (No CR LF to LF translation for text files)
-6) EPOC does not handle the notion of current drive and current
- directory very well (i.e. not at all, but it tries hard to emulate
- one)
++ EPOC does not handle the notion of current drive and current
+ directory very well (i.e. not at all, but it tries hard to emulate
+ one) See PATH.
-7) sockets may hardly of any use.
++ sockets seems to work now!
-8) You need the shell eshell.exe in order to run perl.exe and supply
- it with arguments.
++ You need the shell eshell.exe in order to run perl.exe and supply
+ it with arguments.
++ Heap is limited to 4MB.
+===================================================================
Compiling Perl 5 on the EPOC cross compiling envionment.
---------------------------------------------------------
+===================================================================
-0. You will need the C++ SDK from
- http://developer.epocworld.com/. Install it on a separate
- drive.
+Sorry, this is far too short.
-1. Get the Perl sources from your nearest CPAN site.
- Unpack the sources of perl5.005_60 in the epoc development drive.
-
-2. Copy all files in the directory perl5.005_60/epoc to perl5.005_60.
+ You will need the C++ SDK from http://developer.epocworld.com/.
-3. Check the perl.mmp file: It should have the correct locations for
- project und subproject (see step 1)
+ You will need to set up the cross SDK from
+ http://www.linuxstart.com/~oflebbe
-4. Change to the EPOC development drive and run
- makmake perl marm
- nmake -f perl.marm
- makesis perl.pkg perl5.005.sis
+ You may have to adjust config.sh (cc, cppflags) for your epoc
+ install location.
-5. Beam the perl5.005.sis to the Psion5, install and enjoy!
+ You may have to adjust config.sh for your cross SDK location
-You can use epoc\createpkg.pl to generate a new perl.pkg file.
+ Get the Perl sources from your nearest CPAN site.
+ Unpack the sources.
-Wish List
----------
+ Build a native miniperl...
+ cp epoc/* .
+ for i in *.SH ; do
+ sh $i
+ done
+ make perl
+ cp miniperl.native miniperl
+ make perl
+ perl linkit perlmain.o lib/auto/DynaLoader/DynaLoader.a \
+ lib/auto/Data/Dumper.a \
+ lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \
+ lib/auto/Socket/Socket.a perl.a `cat ext.libs`
+ perl createpkg.pl
+ wine "G:/bin/makesis perl.pkg perl.sis"
-- Implement an OPX to get rid of eshell.exe.
-- Implement system(), in order to run the tests.
+====================================================================
+TODO
+====================================================================
-- Implement getprotcolbyname() and relatives.
+- Get the HTTPD::* working (Hey, It worked the first time for me!)
+- Threads ?
+- Acess to the GUI?
+====================================================================
Support Status
---------------
+====================================================================
I'm offering this port "as is". You can ask me questions, but I can't
guarantee I'll be able to answer them; I don't know much about Perl
diff --git a/epoc/Config.pm b/epoc/Config.pm
deleted file mode 100644
index 24dba58ca0..0000000000
--- a/epoc/Config.pm
+++ /dev/null
@@ -1,6 +0,0 @@
-package Config;
-
-use Exporter ();
-@ISA = (Exporter);
-@EXPORT = qw(%Config);
-1;
diff --git a/epoc/autosplit.pl b/epoc/autosplit.pl
deleted file mode 100644
index 0d1e54dd2d..0000000000
--- a/epoc/autosplit.pl
+++ /dev/null
@@ -1,3 +0,0 @@
-use AutoSplit;
-mkdir "/perl/lib/5.00562/auto", 0777;
-autosplit("/perl/lib/5.00562/Getopt/Long.pm","/perl/lib/5.00562/auto", 1, 0, 0);
diff --git a/epoc/config.h b/epoc/config.h
deleted file mode 100644
index 9f7f37023e..0000000000
--- a/epoc/config.h
+++ /dev/null
@@ -1,2471 +0,0 @@
-/* This file (config_H) is a sample config.h file. If you are unable
- to successfully run Configure, copy this file to config.h and
- edit it to suit your system.
-*/
-/*
- * This file was produced by running the config_h.SH script, which
- * gets its values from config.sh, which is generally produced by
- * running Configure.
- *
- * Feel free to modify any of this as the need arises. Note, however,
- * that running config_h.SH again will wipe out any changes you've made.
- * For a more permanent change edit config.sh and rerun config_h.SH.
- *
- * $Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
- */
-
-/*
- * Package name : perl5
- * Source directory : .
- * Configuration time: Sat May 22 00:43:12 EET DST 1999
- * Configured by : jhi
- * Target system : osf1 alpha.hut.fi v4.0 878 alpha
- */
-
-#ifndef _config_h_
-#define _config_h_
-
-#define EPOC 1
-#define PERL_CORE 1
-
-/* LOC_SED:
- * This symbol holds the complete pathname to the sed program.
- */
-/* #define LOC_SED "/usr/bin/sed" /**/
-
-/* BIN:
- * This symbol holds the path of the bin directory where the package will
- * be installed. Program must be prepared to deal with ~name substitution.
- */
-/* BIN_EXP:
- * This symbol is the filename expanded version of the BIN symbol, for
- * programs that do not want to deal with that at run-time.
- */
-#define BIN "/perl" /**/
-#define BIN_EXP "/perl" /**/
-
-/* HAS_ALARM:
- * This symbol, if defined, indicates that the alarm routine is
- * available.
- */
-/* #define HAS_ALARM /**/
-
-/* HASATTRIBUTE:
- * This symbol indicates the C compiler can check for function attributes,
- * such as printf formats. This is normally only supported by GNU cc.
- */
-#ifdef __MARM__
-#define HASATTRIBUTE / **/
-#endif
-#ifndef HASATTRIBUTE
-#define __attribute__(_arg_)
-#endif
-
-/* HAS_BCMP:
- * This symbol is defined if the bcmp() routine is available to
- * compare blocks of memory.
- */
-#define HAS_BCMP /**/
-
-/* HAS_BCOPY:
- * This symbol is defined if the bcopy() routine is available to
- * copy blocks of memory.
- */
-#define HAS_BCOPY /**/
-
-/* HAS_BZERO:
- * This symbol is defined if the bzero() routine is available to
- * set a memory block to 0.
- */
-#define HAS_BZERO /**/
-
-/* HAS_CHOWN:
- * This symbol, if defined, indicates that the chown routine is
- * available.
- */
-/*#define HAS_CHOWN /**/
-
-/* HAS_CHROOT:
- * This symbol, if defined, indicates that the chroot routine is
- * available.
- */
-/*#define HAS_CHROOT /**/
-
-/* HAS_CHSIZE:
- * This symbol, if defined, indicates that the chsize routine is available
- * to truncate files. You might need a -lx to get this routine.
- */
-/*#define HAS_CHSIZE / **/
-
-/* HASCONST:
- * This symbol, if defined, indicates that this C compiler knows about
- * the const type. There is no need to actually test for that symbol
- * within your programs. The mere use of the "const" keyword will
- * trigger the necessary tests.
- */
-#define HASCONST /**/
-#ifndef HASCONST
-#define const
-#endif
-
-/* HAS_CRYPT:
- * This symbol, if defined, indicates that the crypt routine is available
- * to encrypt passwords and the like.
- */
-/*#define HAS_CRYPT /**/
-
-/* HAS_CUSERID:
- * This symbol, if defined, indicates that the cuserid routine is
- * available to get character login names.
- */
-/*#define HAS_CUSERID /**/
-
-/* HAS_DBL_DIG:
- * This symbol, if defined, indicates that this system's <float.h>
- * or <limits.h> defines the symbol DBL_DIG, which is the number
- * of significant digits in a double precision number. If this
- * symbol is not defined, a guess of 15 is usually pretty good.
- */
-/*#define HAS_DBL_DIG /* */
-
-/* HAS_DIFFTIME:
- * This symbol, if defined, indicates that the difftime routine is
- * available.
- */
-#define HAS_DIFFTIME /**/
-
-/* HAS_DLERROR:
- * This symbol, if defined, indicates that the dlerror routine is
- * available to return a string describing the last error that
- * occurred from a call to dlopen(), dlclose() or dlsym().
- */
-/*#define HAS_DLERROR /**/
-
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
-/*#define DOSUID / **/
-
-/* HAS_DUP2:
- * This symbol, if defined, indicates that the dup2 routine is
- * available to duplicate file descriptors.
- */
-/*#define HAS_DUP2 /**/
-
-/* HAS_FCHMOD:
- * This symbol, if defined, indicates that the fchmod routine is available
- * to change mode of opened files. If unavailable, use chmod().
- */
-/*#define HAS_FCHMOD /**/
-
-/* HAS_FCHOWN:
- * This symbol, if defined, indicates that the fchown routine is available
- * to change ownership of opened files. If unavailable, use chown().
- */
-/*#define HAS_FCHOWN /**/
-
-/* HAS_FCNTL:
- * This symbol, if defined, indicates to the C program that
- * the fcntl() function exists.
- */
-/*#define HAS_FCNTL /**/
-
-/* HAS_FGETPOS:
- * This symbol, if defined, indicates that the fgetpos routine is
- * available to get the file position indicator, similar to ftell().
- */
-#define HAS_FGETPOS /**/
-
-/* FLEXFILENAMES:
- * This symbol, if defined, indicates that the system supports filenames
- * longer than 14 characters.
- */
-#define FLEXFILENAMES /**/
-
-/* HAS_FLOCK:
- * This symbol, if defined, indicates that the flock routine is
- * available to do file locking.
- */
-/*#define HAS_FLOCK /**/
-
-/* HAS_FORK:
- * This symbol, if defined, indicates that the fork routine is
- * available.
- */
-/*#define HAS_FORK /**/
-
-/* HAS_FSETPOS:
- * This symbol, if defined, indicates that the fsetpos routine is
- * available to set the file position indicator, similar to fseek().
- */
-#define HAS_FSETPOS /**/
-
-/* HAS_GETTIMEOFDAY:
- * This symbol, if defined, indicates that the gettimeofday() system
- * call is available for a sub-second accuracy clock. Usually, the file
- * <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
- * The type "Timeval" should be used to refer to "struct timeval".
- */
-#define HAS_GETTIMEOFDAY /**/
-#ifdef HAS_GETTIMEOFDAY
-#define Timeval struct timeval /* Structure used by gettimeofday() */
-#endif
-
-/* HAS_GETGROUPS:
- * This symbol, if defined, indicates that the getgroups() routine is
- * available to get the list of process groups. If unavailable, multiple
- * groups are probably not supported.
- */
-/*#define HAS_GETGROUPS /**/
-
-/* HAS_GETLOGIN:
- * This symbol, if defined, indicates that the getlogin routine is
- * available to get the login name.
- */
-/*#define HAS_GETLOGIN /**/
-
-/* HAS_GETPGID:
- * This symbol, if defined, indicates to the C program that
- * the getpgid(pid) function is available to get the
- * process group id.
- */
-/*#define HAS_GETPGID /**/
-
-/* HAS_GETPGRP:
- * This symbol, if defined, indicates that the getpgrp routine is
- * available to get the current process group.
- */
-/* USE_BSD_GETPGRP:
- * This symbol, if defined, indicates that getpgrp needs one
- * arguments whereas USG one needs none.
- */
-/*#define HAS_GETPGRP /**/
-/*#define USE_BSD_GETPGRP / **/
-
-/* HAS_GETPGRP2:
- * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
- * routine is available to get the current process group.
- */
-/*#define HAS_GETPGRP2 / **/
-
-/* HAS_GETPPID:
- * This symbol, if defined, indicates that the getppid routine is
- * available to get the parent process ID.
- */
-/*#define HAS_GETPPID /**/
-
-/* HAS_GETPRIORITY:
- * This symbol, if defined, indicates that the getpriority routine is
- * available to get a process's priority.
- */
-/*#define HAS_GETPRIORITY /**/
-
-/* HAS_INET_ATON:
- * This symbol, if defined, indicates to the C program that the
- * inet_aton() function is available to parse IP address "dotted-quad"
- * strings.
- */
-/*#define HAS_INET_ATON /**/
-
-/* HAS_KILLPG:
- * This symbol, if defined, indicates that the killpg routine is available
- * to kill process groups. If unavailable, you probably should use kill
- * with a negative process number.
- */
-/*#define HAS_KILLPG /**/
-
-/* HAS_LINK:
- * This symbol, if defined, indicates that the link routine is
- * available to create hard links.
- */
-/*#define HAS_LINK /**/
-
-/* HAS_LOCALECONV:
- * This symbol, if defined, indicates that the localeconv routine is
- * available for numeric and monetary formatting conventions.
- */
-/*#define HAS_LOCALECONV /**/
-
-/* HAS_LOCKF:
- * This symbol, if defined, indicates that the lockf routine is
- * available to do file locking.
- */
-/*#define HAS_LOCKF /**/
-
-/* HAS_LSTAT:
- * This symbol, if defined, indicates that the lstat routine is
- * available to do file stats on symbolic links.
- */
-/*#define HAS_LSTAT /**/
-
-/* HAS_MBLEN:
- * This symbol, if defined, indicates that the mblen routine is available
- * to find the number of bytes in a multibye character.
- */
-/*#define HAS_MBLEN /**/
-
-/* HAS_MBSTOWCS:
- * This symbol, if defined, indicates that the mbstowcs routine is
- * available to covert a multibyte string into a wide character string.
- */
-/*#define HAS_MBSTOWCS /**/
-
-/* HAS_MBTOWC:
- * This symbol, if defined, indicates that the mbtowc routine is available
- * to covert a multibyte to a wide character.
- */
-/*#define HAS_MBTOWC /**/
-
-/* HAS_MEMCMP:
- * This symbol, if defined, indicates that the memcmp routine is available
- * to compare blocks of memory.
- */
-#define HAS_MEMCMP /**/
-
-/* HAS_MEMCPY:
- * This symbol, if defined, indicates that the memcpy routine is available
- * to copy blocks of memory.
- */
-#define HAS_MEMCPY /**/
-
-/* HAS_MEMMOVE:
- * This symbol, if defined, indicates that the memmove routine is available
- * to copy potentially overlapping blocks of memory. This should be used
- * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
- * own version.
- */
-#define HAS_MEMMOVE /**/
-
-/* HAS_MEMSET:
- * This symbol, if defined, indicates that the memset routine is available
- * to set blocks of memory.
- */
-#define HAS_MEMSET /**/
-
-/* HAS_MKDIR:
- * This symbol, if defined, indicates that the mkdir routine is available
- * to create directories. Otherwise you should fork off a new process to
- * exec /bin/mkdir.
- */
-#define HAS_MKDIR /**/
-
-/* HAS_MKFIFO:
- * This symbol, if defined, indicates that the mkfifo routine is
- * available to create FIFOs. Otherwise, mknod should be able to
- * do it for you. However, if mkfifo is there, mknod might require
- * super-user privileges which mkfifo will not.
- */
-/*#define HAS_MKFIFO /**/
-
-/* HAS_MKTIME:
- * This symbol, if defined, indicates that the mktime routine is
- * available.
- */
-#define HAS_MKTIME /**/
-
-/* HAS_NICE:
- * This symbol, if defined, indicates that the nice routine is
- * available.
- */
-/*#define HAS_NICE /**/
-
-/* HAS_PATHCONF:
- * This symbol, if defined, indicates that pathconf() is available
- * to determine file-system related limits and options associated
- * with a given filename.
- */
-/* HAS_FPATHCONF:
- * This symbol, if defined, indicates that pathconf() is available
- * to determine file-system related limits and options associated
- * with a given open file descriptor.
- */
-/*#define HAS_PATHCONF /**/
-/*#define HAS_FPATHCONF /**/
-
-/* HAS_PAUSE:
- * This symbol, if defined, indicates that the pause routine is
- * available to suspend a process until a signal is received.
- */
-/*#define HAS_PAUSE /**/
-
-/* HAS_PIPE:
- * This symbol, if defined, indicates that the pipe routine is
- * available to create an inter-process channel.
- */
-/*#define HAS_PIPE /**/
-
-/* HAS_POLL:
- * This symbol, if defined, indicates that the poll routine is
- * available to poll active file descriptors. You may safely
- * include <poll.h> when this symbol is defined.
- */
-/*#define HAS_POLL /**/
-
-/* HAS_READDIR:
- * This symbol, if defined, indicates that the readdir routine is
- * available to read directory entries. You may have to include
- * <dirent.h>. See I_DIRENT.
- */
-#define HAS_READDIR /**/
-
-/* HAS_SEEKDIR:
- * This symbol, if defined, indicates that the seekdir routine is
- * available. You may have to include <dirent.h>. See I_DIRENT.
- */
-#define HAS_SEEKDIR /**/
-
-/* HAS_TELLDIR:
- * This symbol, if defined, indicates that the telldir routine is
- * available. You may have to include <dirent.h>. See I_DIRENT.
- */
-#define HAS_TELLDIR /**/
-
-/* HAS_REWINDDIR:
- * This symbol, if defined, indicates that the rewinddir routine is
- * available. You may have to include <dirent.h>. See I_DIRENT.
- */
-#define HAS_REWINDDIR /**/
-
-/* HAS_READLINK:
- * This symbol, if defined, indicates that the readlink routine is
- * available to read the value of a symbolic link.
- */
-/*#define HAS_READLINK /**/
-
-/* HAS_RENAME:
- * This symbol, if defined, indicates that the rename routine is available
- * to rename files. Otherwise you should do the unlink(), link(), unlink()
- * trick.
- */
-#define HAS_RENAME /**/
-
-/* HAS_RMDIR:
- * This symbol, if defined, indicates that the rmdir routine is
- * available to remove directories. Otherwise you should fork off a
- * new process to exec /bin/rmdir.
- */
-#define HAS_RMDIR /**/
-
-/* HAS_SELECT:
- * This symbol, if defined, indicates that the select routine is
- * available to select active file descriptors. If the timeout field
- * is used, <sys/time.h> may need to be included.
- */
-/*#define HAS_SELECT /**/
-
-/* HAS_SETEGID:
- * This symbol, if defined, indicates that the setegid routine is available
- * to change the effective gid of the current program.
- */
-/*#define HAS_SETEGID /**/
-
-/* HAS_SETEUID:
- * This symbol, if defined, indicates that the seteuid routine is available
- * to change the effective uid of the current program.
- */
-/*#define HAS_SETEUID /**/
-
-/* HAS_SETLINEBUF:
- * This symbol, if defined, indicates that the setlinebuf routine is
- * available to change stderr or stdout from block-buffered or unbuffered
- * to a line-buffered mode.
- */
-/*#define HAS_SETLINEBUF /**/
-
-/* HAS_SETLOCALE:
- * This symbol, if defined, indicates that the setlocale routine is
- * available to handle locale-specific ctype implementations.
- */
-/*#define HAS_SETLOCALE /**/
-
-/* HAS_SETPGID:
- * This symbol, if defined, indicates that the setpgid(pid, gpid)
- * routine is available to set process group ID.
- */
-/*#define HAS_SETPGID /**/
-
-/* HAS_SETPGRP:
- * This symbol, if defined, indicates that the setpgrp routine is
- * available to set the current process group.
- */
-/* USE_BSD_SETPGRP:
- * This symbol, if defined, indicates that setpgrp needs two
- * arguments whereas USG one needs none. See also HAS_SETPGID
- * for a POSIX interface.
- */
-/*#define HAS_SETPGRP /**/
-/*#define USE_BSD_SETPGRP /**/
-
-/* HAS_SETPGRP2:
- * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
- * routine is available to set the current process group.
- */
-/*#define HAS_SETPGRP2 / **/
-
-/* HAS_SETPRIORITY:
- * This symbol, if defined, indicates that the setpriority routine is
- * available to set a process's priority.
- */
-/*#define HAS_SETPRIORITY /**/
-
-/* HAS_SETREGID:
- * This symbol, if defined, indicates that the setregid routine is
- * available to change the real and effective gid of the current
- * process.
- */
-/* HAS_SETRESGID:
- * This symbol, if defined, indicates that the setresgid routine is
- * available to change the real, effective and saved gid of the current
- * process.
- */
-/*#define HAS_SETREGID /**/
-/*#define HAS_SETRESGID / **/
-
-/* HAS_SETREUID:
- * This symbol, if defined, indicates that the setreuid routine is
- * available to change the real and effective uid of the current
- * process.
- */
-/* HAS_SETRESUID:
- * This symbol, if defined, indicates that the setresuid routine is
- * available to change the real, effective and saved uid of the current
- * process.
- */
-/*#define HAS_SETREUID /**/
-/*#define HAS_SETRESUID / **/
-
-/* HAS_SETRGID:
- * This symbol, if defined, indicates that the setrgid routine is available
- * to change the real gid of the current program.
- */
-/*#define HAS_SETRGID /**/
-
-/* HAS_SETRUID:
- * This symbol, if defined, indicates that the setruid routine is available
- * to change the real uid of the current program.
- */
-/*#define HAS_SETRUID /**/
-
-/* HAS_SETSID:
- * This symbol, if defined, indicates that the setsid routine is
- * available to set the process group ID.
- */
-/*#define HAS_SETSID /**/
-
-/* Shmat_t:
- * This symbol holds the return type of the shmat() system call.
- * Usually set to 'void *' or 'char *'.
- */
-/* HAS_SHMAT_PROTOTYPE:
- * This symbol, if defined, indicates that the sys/shm.h includes
- * a prototype for shmat(). Otherwise, it is up to the program to
- * guess one. Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
- * but not always right so it should be emitted by the program only
- * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
- */
-/*#define Shmat_t void * /**/
-/*#define HAS_SHMAT_PROTOTYPE /**/
-
-/* HAS_STRCHR:
- * This symbol is defined to indicate that the strchr()/strrchr()
- * functions are available for string searching. If not, try the
- * index()/rindex() pair.
- */
-/* HAS_INDEX:
- * This symbol is defined to indicate that the index()/rindex()
- * functions are available for string searching.
- */
-#define HAS_STRCHR /**/
-/*#define HAS_INDEX / **/
-
-/* HAS_STRCOLL:
- * This symbol, if defined, indicates that the strcoll routine is
- * available to compare strings using collating information.
- */
-#define HAS_STRCOLL /**/
-
-/* USE_STRUCT_COPY:
- * This symbol, if defined, indicates that this C compiler knows how
- * to copy structures. If undefined, you'll need to use a block copy
- * routine of some sort instead.
- */
-#define USE_STRUCT_COPY /**/
-
-/* HAS_STRTOD:
- * This symbol, if defined, indicates that the strtod routine is
- * available to provide better numeric string conversion than atof().
- */
-#define HAS_STRTOD /**/
-
-/* HAS_STRTOL:
- * This symbol, if defined, indicates that the strtol routine is available
- * to provide better numeric string conversion than atoi() and friends.
- */
-#define HAS_STRTOL /**/
-
-/* HAS_STRTOUL:
- * This symbol, if defined, indicates that the strtoul routine is
- * available to provide conversion of strings to unsigned long.
- */
-#define HAS_STRTOUL /**/
-
-/* HAS_STRXFRM:
- * This symbol, if defined, indicates that the strxfrm() routine is
- * available to transform strings.
- */
-#define HAS_STRXFRM /**/
-
-/* HAS_SYMLINK:
- * This symbol, if defined, indicates that the symlink routine is available
- * to create symbolic links.
- */
-/*#define HAS_SYMLINK /**/
-
-/* HAS_SYSCALL:
- * This symbol, if defined, indicates that the syscall routine is
- * available to call arbitrary system calls. If undefined, that's tough.
- */
-/*#define HAS_SYSCALL /**/
-
-/* HAS_SYSCONF:
- * This symbol, if defined, indicates that sysconf() is available
- * to determine system related limits and options.
- */
-#define HAS_SYSCONF /**/
-
-/* HAS_SYSTEM:
- * This symbol, if defined, indicates that the system routine is
- * available to issue a shell command.
- */
-#define HAS_SYSTEM /**/
-
-/* HAS_TCGETPGRP:
- * This symbol, if defined, indicates that the tcgetpgrp routine is
- * available to get foreground process group ID.
- */
-/*#define HAS_TCGETPGRP /**/
-
-/* HAS_TCSETPGRP:
- * This symbol, if defined, indicates that the tcsetpgrp routine is
- * available to set foreground process group ID.
- */
-/*#define HAS_TCSETPGRP /**/
-
-/* HAS_TRUNCATE:
- * This symbol, if defined, indicates that the truncate routine is
- * available to truncate files.
- */
-/*#define HAS_TRUNCATE /**/
-
-/* HAS_TZNAME:
- * This symbol, if defined, indicates that the tzname[] array is
- * available to access timezone names.
- */
-/*#define HAS_TZNAME /**/
-
-/* HAS_UMASK:
- * This symbol, if defined, indicates that the umask routine is
- * available to set and get the value of the file creation mask.
- */
-/*#define HAS_UMASK /**/
-
-/* HASVOLATILE:
- * This symbol, if defined, indicates that this C compiler knows about
- * the volatile declaration.
- */
-#define HASVOLATILE /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
-/* HAS_WAIT4:
- * This symbol, if defined, indicates that wait4() exists.
- */
-/*#define HAS_WAIT4 /**/
-
-/* HAS_WAITPID:
- * This symbol, if defined, indicates that the waitpid routine is
- * available to wait for child process.
- */
-/*#define HAS_WAITPID /**/
-
-/* HAS_WCSTOMBS:
- * This symbol, if defined, indicates that the wcstombs routine is
- * available to convert wide character strings to multibyte strings.
- */
-/*#define HAS_WCSTOMBS /**/
-
-/* HAS_WCTOMB:
- * This symbol, if defined, indicates that the wctomb routine is available
- * to covert a wide character to a multibyte.
- */
-/*#define HAS_WCTOMB /**/
-
-/* I_ARPA_INET:
- * This symbol, if defined, indicates to the C program that it should
- * include <arpa/inet.h> to get inet_addr and friends declarations.
- */
-#define I_ARPA_INET /**/
-
-/* I_DBM:
- * This symbol, if defined, indicates that <dbm.h> exists and should
- * be included.
- */
-/* I_RPCSVC_DBM:
- * This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
- * should be included.
- */
-/*#define I_DBM /**/
-/*#define I_RPCSVC_DBM / **/
-
-/* I_DIRENT:
- * This symbol, if defined, indicates to the C program that it should
- * include <dirent.h>. Using this symbol also triggers the definition
- * of the Direntry_t define which ends up being 'struct dirent' or
- * 'struct direct' depending on the availability of <dirent.h>.
- */
-/* DIRNAMLEN:
- * This symbol, if defined, indicates to the C program that the length
- * of directory entry names is provided by a d_namlen field. Otherwise
- * you need to do strlen() on the d_name field.
- */
-/* Direntry_t:
- * This symbol is set to 'struct direct' or 'struct dirent' depending on
- * whether dirent is available or not. You should use this pseudo type to
- * portably declare your directory entries.
- */
-#define I_DIRENT /**/
-/*#define DIRNAMLEN /**/
-#define Direntry_t struct dirent
-
-/* I_DLFCN:
- * This symbol, if defined, indicates that <dlfcn.h> exists and should
- * be included.
- */
-/*#define I_DLFCN /**/
-
-/* I_FCNTL:
- * This manifest constant tells the C program to include <fcntl.h>.
- */
-#define I_FCNTL / **/
-
-/* I_FLOAT:
- * This symbol, if defined, indicates to the C program that it should
- * include <float.h> to get definition of symbols like DBL_MAX or
- * DBL_MIN, i.e. machine dependent floating point values.
- */
-/*#define I_FLOAT /**/
-
-/* I_LIMITS:
- * This symbol, if defined, indicates to the C program that it should
- * include <limits.h> to get definition of symbols like WORD_BIT or
- * LONG_MAX, i.e. machine dependant limitations.
- */
-#define I_LIMITS /**/
-
-/* I_LOCALE:
- * This symbol, if defined, indicates to the C program that it should
- * include <locale.h>.
- */
-/*#define I_LOCALE /**/
-
-/* I_MATH:
- * This symbol, if defined, indicates to the C program that it should
- * include <math.h>.
- */
-#define I_MATH /**/
-
-/* I_MEMORY:
- * This symbol, if defined, indicates to the C program that it should
- * include <memory.h>.
- */
-/*#define I_MEMORY / **/
-
-/* I_NDBM:
- * This symbol, if defined, indicates that <ndbm.h> exists and should
- * be included.
- */
-/*#define I_NDBM /**/
-
-/* I_NET_ERRNO:
- * This symbol, if defined, indicates that <net/errno.h> exists and
- * should be included.
- */
-/*#define I_NET_ERRNO / **/
-
-/* I_NETINET_IN:
- * This symbol, if defined, indicates to the C program that it should
- * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
- */
-#define I_NETINET_IN /**/
-
-/* I_SFIO:
- * This symbol, if defined, indicates to the C program that it should
- * include <sfio.h>.
- */
-/*#define I_SFIO / **/
-
-/* I_STDDEF:
- * This symbol, if defined, indicates that <stddef.h> exists and should
- * be included.
- */
-#define I_STDDEF /**/
-
-/* I_STDLIB:
- * This symbol, if defined, indicates that <stdlib.h> exists and should
- * be included.
- */
-#define I_STDLIB /**/
-
-/* I_STRING:
- * This symbol, if defined, indicates to the C program that it should
- * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
- */
-#define I_STRING /**/
-
-/* I_SYS_DIR:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/dir.h>.
- */
-/*#define I_SYS_DIR /**/
-
-/* I_SYS_FILE:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/file.h> to get definition of R_OK and friends.
- */
-/*#define I_SYS_FILE /**/
-
-/* I_SYS_IOCTL:
- * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
- * be included. Otherwise, include <sgtty.h> or <termio.h>.
- */
-#define I_SYS_IOCTL /**/
-
-/* I_SYS_NDIR:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/ndir.h>.
- */
-/*#define I_SYS_NDIR / **/
-
-/* I_SYS_PARAM:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/param.h>.
- */
-#define I_SYS_PARAM /**/
-
-/* I_SYS_RESOURCE:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/resource.h>.
- */
-#define I_SYS_RESOURCE /**/
-
-/* I_SYS_SELECT:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/select.h> in order to get definition of struct timeval.
- */
-/*#define I_SYS_SELECT /**/
-
-/* I_SYS_STAT:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/stat.h>.
- */
-#define I_SYS_STAT /**/
-
-/* I_SYS_TIMES:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/times.h>.
- */
-#define I_SYS_TIMES /**/
-
-/* I_SYS_TYPES:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/types.h>.
- */
-#define I_SYS_TYPES /**/
-
-/* I_SYS_UN:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/un.h> to get UNIX domain socket definitions.
- */
-/*#define I_SYS_UN /**/
-
-/* I_SYS_WAIT:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/wait.h>.
- */
-#define I_SYS_WAIT /**/
-
-/* I_TERMIO:
- * This symbol, if defined, indicates that the program should include
- * <termio.h> rather than <sgtty.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/* I_TERMIOS:
- * This symbol, if defined, indicates that the program should include
- * the POSIX termios.h rather than sgtty.h or termio.h.
- * There are also differences in the ioctl() calls that depend on the
- * value of this symbol.
- */
-/* I_SGTTY:
- * This symbol, if defined, indicates that the program should include
- * <sgtty.h> rather than <termio.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/*#define I_TERMIO / **/
-/*#define I_TERMIOS /**/
-/*#define I_SGTTY / **/
-
-/* I_UNISTD:
- * This symbol, if defined, indicates to the C program that it should
- * include <unistd.h>.
- */
-#define I_UNISTD /**/
-
-/* I_UTIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <utime.h>.
- */
-/*#define I_UTIME /**/
-
-/* I_VALUES:
- * This symbol, if defined, indicates to the C program that it should
- * include <values.h> to get definition of symbols like MINFLOAT or
- * MAXLONG, i.e. machine dependant limitations. Probably, you
- * should use <limits.h> instead, if it is available.
- */
-/*#define I_VALUES /**/
-
-/* I_STDARG:
- * This symbol, if defined, indicates that <stdarg.h> exists and should
- * be included.
- */
-/* I_VARARGS:
- * This symbol, if defined, indicates to the C program that it should
- * include <varargs.h>.
- */
-#define I_STDARG /**/
-/*#define I_VARARGS / **/
-
-/* I_VFORK:
- * This symbol, if defined, indicates to the C program that it should
- * include vfork.h.
- */
-/*#define I_VFORK / **/
-
-/* CAN_PROTOTYPE:
- * If defined, this macro indicates that the C compiler can handle
- * function prototypes.
- */
-/* _:
- * This macro is used to declare function parameters for folks who want
- * to make declarations with prototypes using a different style than
- * the above macros. Use double parentheses. For example:
- *
- * int main _((int argc, char *argv[]));
- */
-#define CAN_PROTOTYPE /**/
-#ifdef CAN_PROTOTYPE
-#define _(args) args
-#else
-#define _(args) ()
-#endif
-
-/* SH_PATH:
- * This symbol contains the full pathname to the shell used on this
- * on this system to execute Bourne shell scripts. Usually, this will be
- * /bin/sh, though it's possible that some systems will have /bin/ksh,
- * /bin/pdksh, /bin/ash, /bin/bash, or even something such as
- * D:/bin/sh.exe.
- */
-#define SH_PATH "/bin/sh" /**/
-
-/* STDCHAR:
- * This symbol is defined to be the type of char used in stdio.h.
- * It has the values "unsigned char" or "char".
- */
-#define STDCHAR char /**/
-
-/* HAS_ACCESSX:
- * This symbol, if defined, indicates that the accessx routine is
- * available to do extended access checks.
- */
-/*#define HAS_ACCESSX / **/
-
-/* HAS_EACCESS:
- * This symbol, if defined, indicates that the eaccess routine is
- * available to do extended access checks.
- */
-/*#define HAS_EACCESS / **/
-
-/* I_SYS_ACCESS:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/access.h>.
- */
-/*#define I_SYS_ACCESS /**/
-
-/* I_SYS_SECURITY:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/security.h>.
- */
-/*#define I_SYS_SECURITY /**/
-
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-#define CROSSCOMPILE / **/
-
-/* INTSIZE:
- * This symbol contains the value of sizeof(int) so that the C
- * preprocessor can make decisions based on it.
- */
-/* LONGSIZE:
- * This symbol contains the value of sizeof(long) so that the C
- * preprocessor can make decisions based on it.
- */
-/* SHORTSIZE:
- * This symbol contains the value of sizeof(short) so that the C
- * preprocessor can make decisions based on it.
- */
-#define INTSIZE 4 /**/
-#define LONGSIZE 4 /**/
-#define SHORTSIZE 2 /**/
-
-/* MULTIARCH:
- * This symbol, if defined, signifies that the build
- * process will produce some binary files that are going to be
- * used in a cross-platform environment. This is the case for
- * example with the NeXT "fat" binaries that contain executables
- * for several CPUs.
- */
-#define MULTIARCH / **/
-
-/* MEM_ALIGNBYTES:
- * This symbol contains the number of bytes required to align a
- * double. Usual values are 2, 4 and 8. The default is eight,
- * for safety.
- */
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
-#else
-#define MEM_ALIGNBYTES 8
-#endif
-
-/* BYTEORDER:
- * This symbol holds the hexadecimal constant defined in byteorder,
- * i.e. 0x1234 or 0x4321, etc...
- * If the compiler supports cross-compiling or multiple-architecture
- * binaries (eg. on NeXT systems), use compiler-defined macros to
- * determine the byte order.
- * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- * Binaries (MAB) on either big endian or little endian machines.
- * The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
- * one system, and used by a different architecture to build an
- * extension. Older versions of NeXT that might not have
- * defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
- * This might matter for NeXT 3.0.
- */
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
-# ifdef __LITTLE_ENDIAN__
-# if LONGSIZE == 4
-# define BYTEORDER 0x1234
-# else
-# if LONGSIZE == 8
-# define BYTEORDER 0x12345678
-# endif
-# endif
-# else
-# ifdef __BIG_ENDIAN__
-# if LONGSIZE == 4
-# define BYTEORDER 0x4321
-# else
-# if LONGSIZE == 8
-# define BYTEORDER 0x87654321
-# endif
-# endif
-# endif
-# endif
-# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-# define BYTEORDER 0x4321
-# endif
-#else
-#define BYTEORDER 0x12345678 /* large digits for MSB */
-#endif /* NeXT */
-
-/* CASTI32:
- * This symbol is defined if the C compiler can cast negative
- * or large floating point numbers to 32-bit ints.
- */
-/*#define CASTI32 / **/
-
-/* CASTNEGFLOAT:
- * This symbol is defined if the C compiler can cast negative
- * numbers to unsigned longs, ints and shorts.
- */
-/* CASTFLAGS:
- * This symbol contains flags that say what difficulties the compiler
- * has casting odd floating values to unsigned long:
- * 0 = ok
- * 1 = couldn't cast < 0
- * 2 = couldn't cast >= 0x80000000
- * 4 = couldn't cast in argument expression list
- */
-/*#define CASTNEGFLOAT /**/
-/*#define CASTFLAGS 0 /**/
-
-/* VOID_CLOSEDIR:
- * This symbol, if defined, indicates that the closedir() routine
- * does not return a value.
- */
-/*#define VOID_CLOSEDIR / **/
-
-/* HAS_FD_SET:
- * This symbol, when defined, indicates presence of the fd_set typedef
- * in <sys/types.h>
- */
-#define HAS_FD_SET /**/
-
-/* Gconvert:
- * This preprocessor macro is defined to convert a floating point
- * number to a string without a trailing decimal point. This
- * emulates the behavior of sprintf("%g"), but is sometimes much more
- * efficient. If gconvert() is not available, but gcvt() drops the
- * trailing decimal point, then gcvt() is used. If all else fails,
- * a macro using sprintf("%g") is used. Arguments for the Gconvert
- * macro are: value, number of digits, whether trailing zeros should
- * be retained, and the output buffer.
- * Possible values are:
- * d_Gconvert='gconvert((x),(n),(t),(b))'
- * d_Gconvert='gcvt((x),(n),(b))'
- * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
- * The last two assume trailing zeros should not be kept.
- */
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
-
-/* HAS_GNULIBC:
- * This symbol, if defined, indicates to the C program that
- * the GNU C library is being used.
- */
-/*#define HAS_GNULIBC / **/
-/* HAS_ISASCII:
- * This manifest constant lets the C program know that isascii
- * is available.
- */
-#define HAS_ISASCII /**/
-
-/* HAS_LCHOWN:
- * This symbol, if defined, indicates that the lchown routine is
- * available to operate on a symbolic link (instead of following the
- * link).
- */
-/*##define HAS_LCHOWN /**/
-
-/* HAS_OPEN3:
- * This manifest constant lets the C program know that the three
- * argument form of open(2) is available.
- */
-#define HAS_OPEN3 /**/
-
-/* HAS_SAFE_BCOPY:
- * This symbol, if defined, indicates that the bcopy routine is available
- * to copy potentially overlapping memory blocks. Otherwise you should
- * probably use memmove() or memcpy(). If neither is defined, roll your
- * own version.
- */
-/*##define HAS_SAFE_BCOPY /**/
-
-/* HAS_SAFE_MEMCPY:
- * This symbol, if defined, indicates that the memcpy routine is available
- * to copy potentially overlapping memory blocks. Otherwise you should
- * probably use memmove() or memcpy(). If neither is defined, roll your
- * own version.
- */
-/*#define HAS_SAFE_MEMCPY / **/
-
-/* HAS_SANE_MEMCMP:
- * This symbol, if defined, indicates that the memcmp routine is available
- * and can be used to compare relative magnitudes of chars with their high
- * bits set. If it is not defined, roll your own version.
- */
-#define HAS_SANE_MEMCMP /**/
-
-/* HAS_SIGACTION:
- * This symbol, if defined, indicates that Vr4's sigaction() routine
- * is available.
- */
-/*##define HAS_SIGACTION /**/
-
-/* HAS_SIGSETJMP:
- * This variable indicates to the C program that the sigsetjmp()
- * routine is available to save the calling process's registers
- * and stack environment for later use by siglongjmp(), and
- * to optionally save the process's signal mask. See
- * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
- */
-/* Sigjmp_buf:
- * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
- */
-/* Sigsetjmp:
- * This macro is used in the same way as sigsetjmp(), but will invoke
- * traditional setjmp() if sigsetjmp isn't available.
- * See HAS_SIGSETJMP.
- */
-/* Siglongjmp:
- * This macro is used in the same way as siglongjmp(), but will invoke
- * traditional longjmp() if siglongjmp isn't available.
- * See HAS_SIGSETJMP.
- */
-/*##define HAS_SIGSETJMP /**/
-#ifdef HAS_SIGSETJMP
-#define Sigjmp_buf sigjmp_buf
-#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
-#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
-#else
-#define Sigjmp_buf jmp_buf
-#define Sigsetjmp(buf,save_mask) setjmp((buf))
-#define Siglongjmp(buf,retval) longjmp((buf),(retval))
-#endif
-
-/* USE_STDIO_PTR:
- * This symbol is defined if the _ptr and _cnt fields (or similar)
- * of the stdio FILE structure can be used to access the stdio buffer
- * for a file handle. If this is defined, then the FILE_ptr(fp)
- * and FILE_cnt(fp) macros will also be defined and should be used
- * to access these fields.
- */
-/* FILE_ptr:
- * This macro is used to access the _ptr field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_PTR is defined.
- */
-/* STDIO_PTR_LVALUE:
- * This symbol is defined if the FILE_ptr macro can be used as an
- * lvalue.
- */
-/* FILE_cnt:
- * This macro is used to access the _cnt field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_PTR is defined.
- */
-/* STDIO_CNT_LVALUE:
- * This symbol is defined if the FILE_cnt macro can be used as an
- * lvalue.
- */
-/*##define USE_STDIO_PTR /**/
-#ifdef USE_STDIO_PTR
-#define FILE_ptr(fp) ((fp)->_ptr)
-#define STDIO_PTR_LVALUE /**/
-#define FILE_cnt(fp) ((fp)->_cnt)
-#define STDIO_CNT_LVALUE /**/
-#endif
-
-/* USE_STDIO_BASE:
- * This symbol is defined if the _base field (or similar) of the
- * stdio FILE structure can be used to access the stdio buffer for
- * a file handle. If this is defined, then the FILE_base(fp) macro
- * will also be defined and should be used to access this field.
- * Also, the FILE_bufsiz(fp) macro will be defined and should be used
- * to determine the number of bytes in the buffer. USE_STDIO_BASE
- * will never be defined unless USE_STDIO_PTR is.
- */
-/* FILE_base:
- * This macro is used to access the _base field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_BASE is defined.
- */
-/* FILE_bufsiz:
- * This macro is used to determine the number of bytes in the I/O
- * buffer pointed to by _base field (or equivalent) of the FILE
- * structure pointed to its argument. This macro will always be defined
- * if USE_STDIO_BASE is defined.
- */
-/*##define USE_STDIO_BASE /**/
-#ifdef USE_STDIO_BASE
-#define FILE_base(fp) ((fp)->_base)
-#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
-#endif
-
-/* HAS_VPRINTF:
- * This symbol, if defined, indicates that the vprintf routine is available
- * to printf with a pointer to an argument list. If unavailable, you
- * may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- * This symbol is defined if this system has vsprintf() returning type
- * (char*). The trend seems to be to declare it as "int vsprintf()". It
- * is up to the package author to declare vsprintf correctly based on the
- * symbol.
- */
-#define HAS_VPRINTF /**/
-/*#define USE_CHAR_VSPRINTF / **/
-
-/* DOUBLESIZE:
- * This symbol contains the size of a double, so that the C preprocessor
- * can make decisions based on it.
- */
-#define DOUBLESIZE 8 /**/
-
-/* I_TIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <time.h>.
- */
-/* I_SYS_TIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/time.h>.
- */
-/* I_SYS_TIME_KERNEL:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/time.h> with KERNEL defined.
- */
-#define I_TIME / **/
-#define I_SYS_TIME /**/
-/*#define I_SYS_TIME_KERNEL / **/
-
-/* VAL_O_NONBLOCK:
- * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
- * non-blocking I/O for the file descriptor. Note that there is no way
- * back, i.e. you cannot turn it blocking again this way. If you wish to
- * alternatively switch between blocking and non-blocking, use the
- * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
- */
-/* VAL_EAGAIN:
- * This symbol holds the errno error code set by read() when no data was
- * present on the non-blocking file descriptor.
- */
-/* RD_NODATA:
- * This symbol holds the return code from read() when no data is present
- * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
- * not defined, then you can't distinguish between no data and EOF by
- * issuing a read(). You'll have to find another way to tell for sure!
- */
-/* EOF_NONBLOCK:
- * This symbol, if defined, indicates to the C program that a read() on
- * a non-blocking file descriptor will return 0 on EOF, and not the value
- * held in RD_NODATA (-1 usually, in that case!).
- */
-#define VAL_O_NONBLOCK O_NONBLOCK
-#define VAL_EAGAIN EAGAIN
-#define RD_NODATA -1
-#define EOF_NONBLOCK
-
-/* PTRSIZE:
- * This symbol contains the size of a pointer, so that the C preprocessor
- * can make decisions based on it. It will be sizeof(void *) if
- * the compiler supports (void *); otherwise it will be
- * sizeof(char *).
- */
-#define PTRSIZE 8 /**/
-
-/* Drand01:
- * This macro is to be used to generate uniformly distributed
- * random numbers over the range [0., 1.[. You may have to supply
- * an 'extern double drand48();' in your program since SunOS 4.1.3
- * doesn't provide you with anything relevant in it's headers.
- * See HAS_DRAND48_PROTO.
- */
-/* Rand_seed_t:
- * This symbol defines the type of the argument of the
- * random seed function.
- */
-/* seedDrand01:
- * This symbol defines the macro to be used in seeding the
- * random number generator (see Drand01).
- */
-/* RANDBITS:
- * This symbol indicates how many bits are produced by the
- * function used to generate normalized random numbers.
- * Values include 15, 16, 31, and 48.
- */
-#define Drand01() (rand()/(double)((unsigned)1<<RANDBITS))
-#define Rand_seed_t unsigned /**/
-#define seedDrand01(x) srand((Rand_seed_t)x) /**/
-#define RANDBITS 15 /**/
-
-/* SSize_t:
- * This symbol holds the type used by functions that return
- * a count of bytes or an error condition. It must be a signed type.
- * It is usually ssize_t, but may be long or int, etc.
- * It may be necessary to include <sys/types.h> or <unistd.h>
- * to get any typedef'ed information.
- * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
- */
-#define SSize_t long /* signed count of bytes */
-
-/* EBCDIC:
- * This symbol, if defined, indicates that this system uses
- * EBCDIC encoding.
- */
-/*#define EBCDIC / **/
-
-/* OSNAME:
- * This symbol contains the name of the operating system, as determined
- * by Configure. You shouldn't rely on it too much; the specific
- * feature tests from Configure are generally more reliable.
- */
-#define OSNAME "epoc" /**/
-
-/* CAT2:
- * This macro catenates 2 tokens together.
- */
-/* STRINGIFY:
- * This macro surrounds its token with double quotes.
- */
-#if 42 == 1
-#define CAT2(a,b)a/**/b
-#define STRINGIFY(a)"a"
- /* If you can get stringification with catify, tell me how! */
-#endif
-#if 42 == 42
-#define CAT2(a,b)a ## b
-#define StGiFy(a)# a
-#define STRINGIFY(a)StGiFy(a)
-#endif
-#if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
-#endif
-
-/* CPPSTDIN:
- * This symbol contains the first part of the string which will invoke
- * the C preprocessor on the standard input and produce to standard
- * output. Typical value of "cc -E" or "/lib/cpp", but it can also
- * call a wrapper. See CPPRUN.
- */
-/* CPPMINUS:
- * This symbol contains the second part of the string which will invoke
- * the C preprocessor on the standard input and produce to standard
- * output. This symbol will have the value "-" if CPPSTDIN needs a minus
- * to specify standard input, otherwise the value is "".
- */
-/* CPPRUN:
- * This symbol contains the string which will invoke a C preprocessor on
- * the standard input and produce to standard output. It needs to end
- * with CPPLAST, after all other preprocessor flags have been specified.
- * The main difference with CPPSTDIN is that this program will never be a
- * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
- * available directly to the user. Note that it may well be different from
- * the preprocessor used to compile the C program.
- */
-#define CPPSTDIN "cppstdin"
-#define CPPMINUS ""
-#define CPPRUN "/usr/bin/cpp"
-
-/* HAS_ACCESS:
- * This manifest constant lets the C program know that the access()
- * system call is available to check for accessibility using real UID/GID.
- * (always present on UNIX.)
- */
-/*#define HAS_ACCESS /**/
-
-/* HAS_CSH:
- * This symbol, if defined, indicates that the C-shell exists.
- */
-/* CSH:
- * This symbol, if defined, contains the full pathname of csh.
- */
-/*#define HAS_CSH /**/
-#ifdef HAS_CSH
-#define CSH "/usr/bin/csh" /**/
-#endif
-
-/* HAS_ENDGRENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for finalizing sequential access of the group database.
- */
-/*#define HAS_ENDGRENT /**/
-
-/* HAS_ENDHOSTENT:
- * This symbol, if defined, indicates that the endhostent() routine is
- * available to close whatever was being used for host queries.
- */
-/*#define HAS_ENDHOSTENT /**/
-
-/* HAS_ENDNETENT:
- * This symbol, if defined, indicates that the endnetent() routine is
- * available to close whatever was being used for network queries.
- */
-/*#define HAS_ENDNETENT /**/
-
-/* HAS_ENDPROTOENT:
- * This symbol, if defined, indicates that the endprotoent() routine is
- * available to close whatever was being used for protocol queries.
- */
-/*#define HAS_ENDPROTOENT /**/
-
-/* HAS_ENDPWENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for finalizing sequential access of the passwd database.
- */
-/*#define HAS_ENDPWENT /**/
-
-/* HAS_ENDSERVENT:
- * This symbol, if defined, indicates that the endservent() routine is
- * available to close whatever was being used for service queries.
- */
-/*#define HAS_ENDSERVENT /**/
-
-/* HAS_GETGRENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for sequential access of the group database.
- */
-/*#define HAS_GETGRENT /**/
-
-/* HAS_GETHOSTBYADDR:
- * This symbol, if defined, indicates that the gethostbyaddr() routine is
- * available to look up hosts by their IP addresses.
- */
-#define HAS_GETHOSTBYADDR /**/
-
-/* HAS_GETHOSTBYNAME:
- * This symbol, if defined, indicates that the gethostbyname() routine is
- * available to look up host names in some data base or other.
- */
-#define HAS_GETHOSTBYNAME /**/
-
-/* HAS_GETHOSTENT:
- * This symbol, if defined, indicates that the gethostent() routine is
- * available to look up host names in some data base or another.
- */
-/*#define HAS_GETHOSTENT /**/
-
-/* HAS_GETHOSTNAME:
- * This symbol, if defined, indicates that the C program may use the
- * gethostname() routine to derive the host name. See also HAS_UNAME
- * and PHOSTNAME.
- */
-/* HAS_UNAME:
- * This symbol, if defined, indicates that the C program may use the
- * uname() routine to derive the host name. See also HAS_GETHOSTNAME
- * and PHOSTNAME.
- */
-/* PHOSTNAME:
- * This symbol, if defined, indicates the command to feed to the
- * popen() routine to derive the host name. See also HAS_GETHOSTNAME
- * and HAS_UNAME. Note that the command uses a fully qualified path,
- * so that it is safe even if used by a process with super-user
- * privileges.
- */
-/*#define HAS_GETHOSTNAME /**/
-/*#define HAS_UNAME /**/
-#undef HAS_PHOSTNAME
-#ifdef HAS_PHOSTNAME
-#define PHOSTNAME "" /* How to get the host name */
-#endif
-
-/* HAS_GETNETBYADDR:
- * This symbol, if defined, indicates that the getnetbyaddr() routine is
- * available to look up networks by their IP addresses.
- */
-/*#define HAS_GETNETBYADDR /**/
-
-/* HAS_GETNETBYNAME:
- * This symbol, if defined, indicates that the getnetbyname() routine is
- * available to look up networks by their names.
- */
-/*#define HAS_GETNETBYNAME /**/
-
-/* HAS_GETNETENT:
- * This symbol, if defined, indicates that the getnetent() routine is
- * available to look up network names in some data base or another.
- */
-/*#define HAS_GETNETENT /**/
-
-/* HAS_GETPROTOENT:
- * This symbol, if defined, indicates that the getprotoent() routine is
- * available to look up protocols in some data base or another.
- */
-/*#define HAS_GETPROTOENT /**/
-
-/* HAS_GETPROTOBYNAME:
- * This symbol, if defined, indicates that the getprotobyname()
- * routine is available to look up protocols by their name.
- */
-/* HAS_GETPROTOBYNUMBER:
- * This symbol, if defined, indicates that the getprotobynumber()
- * routine is available to look up protocols by their number.
- */
-/*#define HAS_GETPROTOBYNAME /**/
-/*#define HAS_GETPROTOBYNUMBER /**/
-
-/* HAS_GETPWENT:
- * This symbol, if defined, indicates that the getpwent routine is
- * available for sequential access of the passwd database.
- * If this is not available, the older getpw() function may be available.
- */
-/*#define HAS_GETPWENT /**/
-
-/* HAS_GETSERVENT:
- * This symbol, if defined, indicates that the getservent() routine is
- * available to look up network services in some data base or another.
- */
-/*#define HAS_GETSERVENT /**/
-
-/* HAS_GETSERVBYNAME:
- * This symbol, if defined, indicates that the getservbyname()
- * routine is available to look up services by their name.
- */
-/* HAS_GETSERVBYPORT:
- * This symbol, if defined, indicates that the getservbyport()
- * routine is available to look up services by their port.
- */
-/*#define HAS_GETSERVBYNAME /**/
-/*#define HAS_GETSERVBYPORT /**/
-/*
-/* HAS_HTONL:
- * This symbol, if defined, indicates that the htonl() routine (and
- * friends htons() ntohl() ntohs()) are available to do network
- * order byte swapping.
- */
-/* HAS_HTONS:
- * This symbol, if defined, indicates that the htons() routine (and
- * friends htonl() ntohl() ntohs()) are available to do network
- * order byte swapping.
- */
-/* HAS_NTOHL:
- * This symbol, if defined, indicates that the ntohl() routine (and
- * friends htonl() htons() ntohs()) are available to do network
- * order byte swapping.
- */
-/* HAS_NTOHS:
- * This symbol, if defined, indicates that the ntohs() routine (and
- * friends htonl() htons() ntohl()) are available to do network
- * order byte swapping.
- */
-#define HAS_HTONL /**/
-#define HAS_HTONS /**/
-#define HAS_NTOHL /**/
-#define HAS_NTOHS /**/
-
-/* HAS_LONG_DOUBLE:
- * This symbol will be defined if the C compiler supports long
- * doubles.
- */
-/* LONG_DOUBLESIZE:
- * This symbol contains the size of a long double, so that the
- * C preprocessor can make decisions based on it. It is only
- * defined if the system supports long doubles.
- */
-/*#define HAS_LONG_DOUBLE /**/
-#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 8 /**/
-#endif
-
-/* HAS_LONG_LONG:
- * This symbol will be defined if the C compiler supports long long.
- */
-/* LONGLONGSIZE:
- * This symbol contains the size of a long long, so that the
- * C preprocessor can make decisions based on it. It is only
- * defined if the system supports long long.
- */
-/*#define HAS_LONG_LONG /**/
-#ifdef HAS_LONG_LONG
-#define LONGLONGSIZE 8 /**/
-#endif
-
-/* HAS_MEMCHR:
- * This symbol, if defined, indicates that the memchr routine is available
- * to locate characters within a C string.
- */
-#define HAS_MEMCHR /**/
-
-/* HAS_MSG:
- * This symbol, if defined, indicates that the entire msg*(2) library is
- * supported (IPC mechanism based on message queues).
- */
-/*#define HAS_MSG /**/
-
-/* HAS_SEM:
- * This symbol, if defined, indicates that the entire sem*(2) library is
- * supported.
- */
-/*#define HAS_SEM /**/
-
-/* HAS_SETGRENT:
- * This symbol, if defined, indicates that the setgrent routine is
- * available for initializing sequential access of the group database.
- */
-/*#define HAS_SETGRENT /**/
-
-/* HAS_SETGROUPS:
- * This symbol, if defined, indicates that the setgroups() routine is
- * available to set the list of process groups. If unavailable, multiple
- * groups are probably not supported.
- */
-/*#define HAS_SETGROUPS /**/
-
-/* HAS_SETHOSTENT:
- * This symbol, if defined, indicates that the sethostent() routine is
- * available.
- */
-/*#define HAS_SETHOSTENT /**/
-
-/* HAS_SETNETENT:
- * This symbol, if defined, indicates that the setnetent() routine is
- * available.
- */
-/*#define HAS_SETNETENT /**/
-
-/* HAS_SETPROTOENT:
- * This symbol, if defined, indicates that the setprotoent() routine is
- * available.
- */
-/*#define HAS_SETPROTOENT /**/
-
-/* HAS_SETPWENT:
- * This symbol, if defined, indicates that the setpwent routine is
- * available for initializing sequential access of the passwd database.
- */
-/*#define HAS_SETPWENT /**/
-
-/* HAS_SETSERVENT:
- * This symbol, if defined, indicates that the setservent() routine is
- * available.
- */
-/*#define HAS_SETSERVENT /**/
-
-/* HAS_SETVBUF:
- * This symbol, if defined, indicates that the setvbuf routine is
- * available to change buffering on an open stdio stream.
- * to a line-buffered mode.
- */
-/*#define HAS_SETVBUF /**/
-
-/* HAS_SHM:
- * This symbol, if defined, indicates that the entire shm*(2) library is
- * supported.
- */
-/*#define HAS_SHM /**/
-
-/* HAS_SOCKET:
- * This symbol, if defined, indicates that the BSD socket interface is
- * supported.
- */
-/* HAS_SOCKETPAIR:
- * This symbol, if defined, indicates that the BSD socketpair() call is
- * supported.
- */
-/* HAS_MSG_CTRUNC:
- * This symbol, if defined, indicates that the MSG_CTRUNC is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_DONTROUTE:
- * This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_OOB:
- * This symbol, if defined, indicates that the MSG_OOB is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_PEEK:
- * This symbol, if defined, indicates that the MSG_PEEK is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_PROXY:
- * This symbol, if defined, indicates that the MSG_PROXY is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_SCM_RIGHTS:
- * This symbol, if defined, indicates that the SCM_RIGHTS is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-#define HAS_SOCKET /**/
-/*#define HAS_SOCKETPAIR /**/
-/*#define HAS_MSG_CTRUNC /**/
-/*#define HAS_MSG_DONTROUTE /**/
-/*#define HAS_MSG_OOB /**/
-/*#define HAS_MSG_PEEK /**/
-/*#define HAS_MSG_PROXY / **/
-/*#define HAS_SCM_RIGHTS /**/
-
-/* USE_STAT_BLOCKS:
- * This symbol is defined if this system has a stat structure declaring
- * st_blksize and st_blocks.
- */
-#define USE_STAT_BLOCKS /**/
-
-/* HAS_STRERROR:
- * This symbol, if defined, indicates that the strerror routine is
- * available to translate error numbers to strings. See the writeup
- * of Strerror() in this file before you try to define your own.
- */
-/* HAS_SYS_ERRLIST:
- * This symbol, if defined, indicates that the sys_errlist array is
- * available to translate error numbers to strings. The extern int
- * sys_nerr gives the size of that table.
- */
-/* Strerror:
- * This preprocessor symbol is defined as a macro if strerror() is
- * not available to translate error numbers to strings but sys_errlist[]
- * array is there.
- */
-#define HAS_STRERROR /**/
-/*##define HAS_SYS_ERRLIST /**/
-#define Strerror(e) strerror(e)
-
-/* HAS_UNION_SEMUN:
- * This symbol, if defined, indicates that the union semun is
- * defined by including <sys/sem.h>. If not, the user code
- * probably needs to define it as:
- * union semun {
- * int val;
- * struct semid_ds *buf;
- * unsigned short *array;
- * }
- */
-/* USE_SEMCTL_SEMUN:
- * This symbol, if defined, indicates that union semun is
- * used for semctl IPC_STAT.
- */
-/* USE_SEMCTL_SEMID_DS:
- * This symbol, if defined, indicates that struct semid_ds * is
- * used for semctl IPC_STAT.
- */
-/*#define HAS_UNION_SEMUN / **/
-#define USE_SEMCTL_SEMUN /**/
-#define USE_SEMCTL_SEMID_DS /**/
-
-/* HAS_VFORK:
- * This symbol, if defined, indicates that vfork() exists.
- */
-/*#define HAS_VFORK / **/
-
-/* Signal_t:
- * This symbol's value is either "void" or "int", corresponding to the
- * appropriate return type of a signal handler. Thus, you can declare
- * a signal handler using "Signal_t (*handler)()", and define the
- * handler using "Signal_t handler(sig)".
- */
-#define Signal_t void /* Signal handler's return type */
-
-/* Groups_t:
- * This symbol holds the type used for the second argument to
- * getgroups() and setgropus(). Usually, this is the same as
- * gidtype (gid_t) , but sometimes it isn't.
- * It can be int, ushort, uid_t, etc...
- * It may be necessary to include <sys/types.h> to get any
- * typedef'ed information. This is only required if you have
- * getgroups() or setgropus()..
- */
-#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
-#define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
-#endif
-
-/* I_GRP:
- * This symbol, if defined, indicates to the C program that it should
- * include <grp.h>.
- */
-/* GRPASSWD:
- * This symbol, if defined, indicates to the C program that struct group
- * in <grp.h> contains gr_passwd.
- */
-/*##define I_GRP /**/
-/*##define GRPASSWD /**/
-
-/* I_NETDB:
- * This symbol, if defined, indicates that <netdb.h> exists and
- * should be included.
- */
-#define I_NETDB /**/
-
-/* I_PWD:
- * This symbol, if defined, indicates to the C program that it should
- * include <pwd.h>.
- */
-/* PWQUOTA:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_quota.
- */
-/* PWAGE:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_age.
- */
-/* PWCHANGE:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_change.
- */
-/* PWCLASS:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_class.
- */
-/* PWEXPIRE:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_expire.
- */
-/* PWCOMMENT:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_comment.
- */
-/* PWGECOS:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_gecos.
- */
-/* PWPASSWD:
- * This symbol, if defined, indicates to the C program that struct passwd
- * contains pw_passwd.
- */
-/*#define I_PWD /**/
-/*#define PWQUOTA /**/
-/*#define PWAGE / **/
-/*#define PWCHANGE / **/
-/*#define PWCLASS / **/
-/*#define PWEXPIRE / **/
-/*#define PWCOMMENT /**/
-/*#define PWGECOS /**/
-/*#define PWPASSWD /**/
-
-/* Free_t:
- * This variable contains the return type of free(). It is usually
- * void, but occasionally int.
- */
-/* Malloc_t:
- * This symbol is the type of pointer returned by malloc and realloc.
- */
-#define Malloc_t void * /**/
-#define Free_t void /**/
-
-/* MYMALLOC:
- * This symbol, if defined, indicates that we're using our own malloc.
- */
-/*#define MYMALLOC / **/
-
-/* SIG_NAME:
- * This symbol contains a list of signal names in order of
- * signal number. This is intended
- * to be used as a static array initialization, like this:
- * char *sig_name[] = { SIG_NAME };
- * The signals in the list are separated with commas, and each signal
- * is surrounded by double quotes. There is no leading SIG in the signal
- * name, i.e. SIGQUIT is known as "QUIT".
- * Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
- * etc., where nn is the actual signal number (e.g. NUM37).
- * The signal number for sig_name[i] is stored in sig_num[i].
- * The last element is 0 to terminate the list with a NULL. This
- * corresponds to the 0 at the end of the sig_num list.
- */
-/* SIG_NUM:
- * This symbol contains a list of signal numbers, in the same order as the
- * SIG_NAME list. It is suitable for static array initialization, as in:
- * int sig_num[] = { SIG_NUM };
- * The signals in the list are separated with commas, and the indices
- * within that list and the SIG_NAME list match, so it's easy to compute
- * the signal name from a number or vice versa at the price of a small
- * dynamic linear lookup.
- * Duplicates are allowed, but are moved to the end of the list.
- * The signal number corresponding to sig_name[i] is sig_number[i].
- * if (i < NSIG) then sig_number[i] == i.
- * The last element is 0, corresponding to the 0 at the end of
- * the sig_name list.
- */
-#define SIG_NAME "ZERO", 0 /**/
-#define SIG_NUM 0, 0 /**/
-
-/* VOIDFLAGS:
- * This symbol indicates how much support of the void type is given by this
- * compiler. What various bits mean:
- *
- * 1 = supports declaration of void
- * 2 = supports arrays of pointers to functions returning void
- * 4 = supports comparisons between pointers to void functions and
- * addresses of void functions
- * 8 = suports declaration of generic void pointers
- *
- * The package designer should define VOIDUSED to indicate the requirements
- * of the package. This can be done either by #defining VOIDUSED before
- * including config.h, or by defining defvoidused in Myinit.U. If the
- * latter approach is taken, only those flags will be tested. If the
- * level of void support necessary is not present, defines void to int.
- */
-#ifndef VOIDUSED
-#define VOIDUSED 15
-#endif
-#define VOIDFLAGS 15
-#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
-#define void int /* is void to be avoided? */
-#define M_VOID /* Xenix strikes again */
-#endif
-
-/* ARCHLIB:
- * This variable, if defined, holds the name of the directory in
- * which the user wants to put architecture-dependent public
- * library files for perl5. It is most often a local directory
- * such as /usr/local/lib. Programs using this variable must be
- * prepared to deal with filename expansion. If ARCHLIB is the
- * same as PRIVLIB, it is not defined, since presumably the
- * program already searches PRIVLIB.
- */
-/* ARCHLIB_EXP:
- * This symbol contains the ~name expanded version of ARCHLIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define ARCHLIB "/perl/lib/5.00562/epoc" /**/
-#define ARCHLIB_EXP "/perl/lib/5.00562/epoc" /**/
-
-/* DLSYM_NEEDS_UNDERSCORE:
- * This symbol, if defined, indicates that we need to prepend an
- * underscore to the symbol name before calling dlsym(). This only
- * makes sense if you *have* dlsym, which we will presume is the
- * case if you're using dl_dlopen.xs.
- */
-/*#define DLSYM_NEEDS_UNDERSCORE / **/
-
-/* HAS_FSEEKO:
- * This symbol, if defined, indicates that the fseeko routine is
- * available to fseek beyond 32 bits (useful for ILP32 hosts).
- */
-/*#define HAS_FSEEKO / **/
-
-/* HAS_FTELLO:
- * This symbol, if defined, indicates that the ftello routine is
- * available to ftell from beyond 32 bits (useful for ILP32 hosts).
- */
-/*#define HAS_FTELLO / **/
-
-/* HAS_GETMNTENT:
- * This symbol, if defined, indicates that the getmntent routine is
- * available to iterate through mounted file systems.
- */
-/*#define HAS_GETMNTENT / **/
-
-/* HAS_HASMNTOPT:
- * This symbol, if defined, indicates that the hasmntopt routine is
- * available to query the mount options of file systems.
- */
-/*#define HAS_HASMNTOPT / **/
-
-/* USE_SFIO:
- * This symbol, if defined, indicates that sfio should
- * be used.
- */
-/*#define USE_SFIO / **/
-
-/* HAS_FSTATFS:
- * This symbol, if defined, indicates that the fstatfs routine is
- * available to stat filesystems of file descriptors.
- */
-/* HAS_STRUCT_STATFS_FLAGS:
- * This symbol, if defined, indicates that the struct statfs
- * does have the f_flags member containing the mount flags of
- * the filesystem holding the file.
- * This kind of struct statfs is coming from sys/mount.h (BSD),
- * not from sys/statfs.h (SYSV).
- */
-#define HAS_FSTATFS /**/
-#define HAS_STRUCT_STATFS_FLAGS /**/
-
-/* HAS_FSTATVFS:
- * This symbol, if defined, indicates that the fstatvfs routine is
- * available to stat filesystems of file descriptors.
- */
-/*#define HAS_FSTATVFS /**/
-
-/* HAS_TELLDIR_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the telldir() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern long telldir _((DIR*));
- */
-#define HAS_TELLDIR_PROTO /**/
-
-/* USE_DYNAMIC_LOADING:
- * This symbol, if defined, indicates that dynamic loading of
- * some sort is available.
- */
-/*#define USE_DYNAMIC_LOADING /**/
-
-/* FFLUSH_NULL:
- * This symbol, if defined, tells that fflush(NULL) does flush
- * all pending stdio output.
- */
-/* FFLUSH_ALL:
- * This symbol, if defined, tells that to flush
- * all pending stdio output one must loop through all
- * the stdio file handles stored in an array and fflush them.
- * Note that if fflushNULL is defined, fflushall will not
- * even be probed for and will be left undefined.
- */
-/*#define FFLUSH_NULL /**/
-#define FFLUSH_ALL / **/
-
-/* DB_Prefix_t:
- * This symbol contains the type of the prefix structure element
- * in the <db.h> header file. In older versions of DB, it was
- * int, while in newer ones it is u_int32_t.
- */
-/* DB_Hash_t:
- * This symbol contains the type of the prefix structure element
- * in the <db.h> header file. In older versions of DB, it was
- * int, while in newer ones it is size_t.
- */
-/*#define DB_Hash_t u_int32_t /**/
-/*#define DB_Prefix_t size_t /**/
-
-/* I_INTTYPES:
- * This symbol, if defined, indicates to the C program that it should
- * include <inttypes.h>.
- */
-/* HAS_INT64_T:
- * This symbol will defined if the C compiler supports int64_t.
- * Usually the <inttypes.h> needs to be included, but sometimes
- * <sys/types.h> is enough.
- */
-/*#define I_INTTYPES / **/
-/*#define HAS_INT64_T / **/
-
-/* I_MNTENT:
- * This symbol, if defined, indicates that <mntent.h> exists and
- * should be included.
- */
-/*#define I_MNTENT / **/
-
-/* I_NETINET_TCP:
- * This symbol, if defined, indicates to the C program that it should
- * include <netinet/tcp.h>.
- */
-#define I_NETINET_TCP /**/
-
-/* I_POLL:
- * This symbol, if defined, indicates that <poll.h> exists and
- * should be included.
- */
-/*#define I_POLL /**/
-
-/* I_SYS_MOUNT:
- * This symbol, if defined, indicates that <sys/mount.h> exists and
- * should be included.
- */
-/*#define I_SYS_MOUNT /**/
-
-/* I_SYS_STATVFS:
- * This symbol, if defined, indicates that <sys/statvfs.h> exists and
- * should be included.
- */
-/*#define I_SYS_STATVFS /**/
-
-/* INSTALL_USR_BIN_PERL:
- * This symbol, if defined, indicates that Perl is to be installed
- * also as /usr/bin/perl.
- */
-/*#define INSTALL_USR_BIN_PERL /**/
-
-/* PRIVLIB:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- */
-/* PRIVLIB_EXP:
- * This symbol contains the ~name expanded version of PRIVLIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define PRIVLIB "/perl/lib/5.00562" /**/
-#define PRIVLIB_EXP "/perl/lib/5.00562" /**/
-
-/* SELECT_MIN_BITS:
- * This symbol holds the minimum number of bits operated by select.
- * That is, if you do select(n, ...), how many bits at least will be
- * cleared in the masks if some activity is detected. Usually this
- * is either n or 32*ceil(n/32), especially many little-endians do
- * the latter. This is only useful if you have select(), naturally.
- */
-#define SELECT_MIN_BITS 32 /**/
-
-/* SITEARCH:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- * The standard distribution will put nothing in this directory.
- * Individual sites may place their own extensions and modules in
- * this directory.
- */
-/* SITEARCH_EXP:
- * This symbol contains the ~name expanded version of SITEARCH, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define SITEARCH "/perl/lib/site_perl/5.00562/epoc" /**/
-#define SITEARCH_EXP "/perl/lib/site_perl/5.00562/epoc" /**/
-
-/* SITELIB:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- * The standard distribution will put nothing in this directory.
- * Individual sites may place their own extensions and modules in
- * this directory.
- */
-/* SITELIB_EXP:
- * This symbol contains the ~name expanded version of SITELIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define SITELIB "/perl/lib/site_perl/5.00562" /**/
-#define SITELIB_EXP "/perl/lib/site_perl/5.00562" /**/
-
-/* STARTPERL:
- * This variable contains the string to put in front of a perl
- * script to make sure (one hopes) that it runs with perl and not
- * some shell.
- */
-#define STARTPERL "#!/opt/perl/bin/perl" /**/
-
-/* HAS_STDIO_STREAM_ARRAY:
- * This symbol, if defined, tells that there is an array
- * holding the stdio streams.
- */
-/* STDIO_STREAM_ARRAY:
- * This symbol tells the name of the array holding the stdio streams.
- * Usual values include _iob, __iob, and __sF.
- */
-/*#define HAS_STDIO_STREAM_ARRAY /**/
-/*#define STDIO_STREAM_ARRAY _iob
-
-/* USE_64_BITS:
- * This symbol, if defined, indicates that 64-bit interfaces should
- * be used when available. If not defined, the native default interfaces
- * will be used (be they 32 or 64 bits).
- */
-/*#define USE_64_BITS /**/
-
-/* MULTIPLICITY:
- * This symbol, if defined, indicates that Perl should
- * be built to use multiplicity.
- */
-/*#define MULTIPLICITY / **/
-
-/* USE_PERLIO:
- * This symbol, if defined, indicates that the PerlIO abstraction should
- * be used throughout. If not defined, stdio should be
- * used in a fully backward compatible manner.
- */
-/*#define USE_PERLIO / **/
-
-/* HAS_DRAND48_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the drand48() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern double drand48 _((void));
- */
-#define HAS_DRAND48_PROTO /**/
-
-/* HAS_GETHOST_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for gethostent(), gethostbyname(), and
- * gethostbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETHOST_PROTOS /**/
-
-/* HAS_GETNET_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getnetent(), getnetbyname(), and
- * getnetbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETNET_PROTOS /**/
-
-/* HAS_GETPROTO_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getprotoent(), getprotobyname(), and
- * getprotobyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETPROTO_PROTOS /**/
-
-/* HAS_GETSERV_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getservent(), getservbyname(), and
- * getservbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETSERV_PROTOS /**/
-
-/* Netdb_host_t:
- * This symbol holds the type used for the 1st argument
- * to gethostbyaddr().
- */
-/* Netdb_hlen_t:
- * This symbol holds the type used for the 2nd argument
- * to gethostbyaddr().
- */
-/* Netdb_name_t:
- * This symbol holds the type used for the argument to
- * gethostbyname().
- */
-/* Netdb_net_t:
- * This symbol holds the type used for the 1st argument to
- * getnetbyaddr().
- */
-#define Netdb_host_t const char * /**/
-#define Netdb_hlen_t int /**/
-#define Netdb_name_t const char * /**/
-#define Netdb_net_t int /**/
-
-/* Select_fd_set_t:
- * This symbol holds the type used for the 2nd, 3rd, and 4th
- * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
- * is defined, and 'int *' otherwise. This is only useful if you
- * have select(), of course.
- */
-#define Select_fd_set_t fd_set * /**/
-
-/* ARCHNAME:
- * This symbol holds a string representing the architecture name.
- * It may be used to construct an architecture-dependant pathname
- * where library files may be held under a private library, for
- * instance.
- */
-#define ARCHNAME "epoc" /**/
-
-/* OLD_PTHREAD_CREATE_JOINABLE:
- * This symbol, if defined, indicates how to create pthread
- * in joinable (aka undetached) state. NOTE: not defined
- * if pthread.h already has defined PTHREAD_CREATE_JOINABLE
- * (the new version of the constant).
- * If defined, known values are PTHREAD_CREATE_UNDETACHED
- * and __UNDETACHED.
- */
-/*#define OLD_PTHREAD_CREATE_JOINABLE / **/
-
-/* HAS_PTHREAD_YIELD:
- * This symbol, if defined, indicates that the pthread_yield
- * routine is available to yield the execution of the current
- * thread. sched_yield is preferable to pthread_yield.
- */
-/* SCHED_YIELD:
- * This symbol defines the way to yield the execution of
- * the current thread. Known ways are sched_yield,
- * pthread_yield, and pthread_yield with NULL.
- */
-/* HAS_SCHED_YIELD:
- * This symbol, if defined, indicates that the sched_yield
- * routine is available to yield the execution of the current
- * thread. sched_yield is preferable to pthread_yield.
- */
-/*#define HAS_PTHREAD_YIELD / **/
-/*#define SCHED_YIELD sched_yield() /**/
-/*#define HAS_SCHED_YIELD /**/
-
-/* I_MACH_CTHREADS:
- * This symbol, if defined, indicates to the C program that it should
- * include <mach/cthreads.h>.
- */
-/*#define I_MACH_CTHREADS / **/
-
-/* USE_THREADS:
- * This symbol, if defined, indicates that Perl should
- * be built to use threads.
- */
-/* OLD_PTHREADS_API:
- * This symbol, if defined, indicates that Perl should
- * be built to use the old draft POSIX threads API.
- */
-/*#define USE_THREADS /**/
-/*#define OLD_PTHREADS_API / **/
-
-/* Time_t:
- * This symbol holds the type returned by time(). It can be long,
- * or time_t on BSD sites (in which case <sys/types.h> should be
- * included).
- */
-#define Time_t time_t /* Time type */
-
-/* HAS_TIMES:
- * This symbol, if defined, indicates that the times() routine exists.
- * Note that this became obsolete on some systems (SUNOS), which now
- * use getrusage(). It may be necessary to include <sys/times.h>.
- */
-/*#define HAS_TIMES /**/
-
-/* Fpos_t:
- * This symbol holds the type used to declare file positions in libc.
- * It can be fpos_t, long, uint, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Fpos_t fpos_t /* File position type */
-
-/* Gid_t:
- * This symbol holds the return type of getgid() and the type of
- * argument to setrgid() and related functions. Typically,
- * it is the type of group ids in the kernel. It can be int, ushort,
- * uid_t, etc... It may be necessary to include <sys/types.h> to get
- * any typedef'ed information.
- */
-#define Gid_t gid_t /* Type for getgid(), etc... */
-
-/* Off_t:
- * This symbol holds the type used to declare offsets in the kernel.
- * It can be int, long, off_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-/* LSEEKSIZE:
- * This symbol holds the number of bytes used by the Off_t.
- */
-#define Off_t off_t /* <offset> type */
-#define LSEEKSIZE 8 /* <offset> size */
-
-/* Mode_t:
- * This symbol holds the type used to declare file modes
- * for systems calls. It is usually mode_t, but may be
- * int or unsigned short. It may be necessary to include <sys/types.h>
- * to get any typedef'ed information.
- */
-#define Mode_t mode_t /* file mode parameter for system calls */
-
-/* Pid_t:
- * This symbol holds the type used to declare process ids in the kernel.
- * It can be int, uint, pid_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Pid_t pid_t /* PID type */
-
-/* Size_t:
- * This symbol holds the type used to declare length parameters
- * for string functions. It is usually size_t, but may be
- * unsigned long, int, etc. It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Size_t size_t /* length paramater for string functions */
-
-/* Uid_t:
- * This symbol holds the type used to declare user ids in the kernel.
- * It can be int, ushort, uid_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Uid_t uid_t /* UID type */
-
-/* PERL_PRIfldbl:
- * This symbol, if defined, contains the string used by stdio to
- * format long doubles (format 'f') for output.
- */
-/* PERL_PRIgldbl:
- * This symbol, if defined, contains the string used by stdio to
- * format long doubles (format 'g') for output.
- */
-#define PERL_PRIfldbl "f" /**/
-#define PERL_PRIgldbl "g" /**/
-
-#endif
-
diff --git a/epoc/config.sh b/epoc/config.sh
new file mode 100644
index 0000000000..55ca6bd51c
--- /dev/null
+++ b/epoc/config.sh
@@ -0,0 +1,764 @@
+#!/bin/sh
+#
+# This file was produced by running the Configure script. It holds all the
+# definitions figured out by Configure. Should you modify one of these values,
+# do not forget to propagate your changes by running "Configure -der". You may
+# instead choose to run each of the .SH files by yourself, or "Configure -S".
+#
+
+# Package name : perl5
+# Source directory : .
+# Configuration time: Sun Oct 3 02:17:38 EET DST 1999
+# Configured by : jhi
+# Target system : osf1 alpha.hut.fi v4.0 878 alpha
+
+Author=''
+Date='$Date'
+Header=''
+Id='$Id'
+Locker=''
+Log='$Log'
+Mcc=''
+RCSfile='$RCSfile'
+Revision='$Revision'
+Source=''
+State=''
+_a='.a'
+_exe='.exe'
+_o='.o'
+afs='false'
+alignbytes='8'
+ansi2knr=''
+aphostname=''
+apirevision=''
+apisubversion=''
+apiversion=''
+ar='arm-pe-ar'
+archlib='/perl/lib/5.5.640/epoc'
+archlibexp='/perl/lib/5.5.640/epoc'
+archname64=''
+archname='epoc'
+archobjs='epoc.o epocish.o epoc_stubs.o'
+awk='awk'
+baserev='5.0'
+bash=''
+bin=''
+bincompat5005='false'
+binexp=''
+bison='bison'
+byacc=''
+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'
+cccdlflags=''
+ccdlflags=''
+ccflags='-Wno-ctor-dtor-privacy -mcpu-arm710 -mapcs-32 -mshort-load-bytes -msoft-float -fcheck-new -fvtable-thunks'
+ccsymbols=''
+cf_by='olaf'
+cf_email='o.flebbe@gmx.de'
+cf_time='Dec 1999'
+chgrp=''
+chmod=''
+chown=''
+clocktype=''
+comm=''
+compress=''
+contains='grep'
+cp='cp'
+cpio=''
+cpp='arm-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'
+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/'
+cppsymbols=''
+crosscompile='define'
+cryptlib=''
+csh='csh'
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+d_PRIEldbl='undef'
+d_PRIFldbl='undef'
+d_PRIGldbl='undef'
+d_PRIX64='undef'
+d_PRId64='undef'
+d_PRIeldbl='undef'
+d_PRIfldbl='define'
+d_PRIgldbl='define'
+d_PRIi64='undef'
+d_PRIo64='undef'
+d_PRIu64='undef'
+d_PRIx64='undef'
+d_access='undef'
+d_accessx='undef'
+d_alarm='undef'
+d_archlib='define'
+d_atolf='undef'
+d_atoll='undef'
+d_attribut='undef'
+d_bcmp='define'
+d_bcopy='define'
+d_bincompat5005='undef'
+d_bsd='undef'
+d_bsdgetpgrp='undef'
+d_bsdsetpgrp='undef'
+d_bzero='define'
+d_casti32='undef'
+d_castneg='undef'
+d_charvspr='undef'
+d_chown='undef'
+d_chroot='undef'
+d_chsize='undef'
+d_closedir='undef'
+d_cmsghdr_s='undef'
+d_const='define'
+d_crypt='undef'
+d_csh='undef'
+d_cuserid='undef'
+d_dbl_dig='undef'
+d_difftime='define'
+d_dirnamlen='undef'
+d_dlerror='undef'
+d_dlopen='undef'
+d_dlsymun='undef'
+d_dosuid='undef'
+d_drand48proto='define'
+d_dup2='undef'
+d_eaccess='undef'
+d_endgrent='undef'
+d_endhent='undef'
+d_endnent='undef'
+d_endpent='undef'
+d_endpwent='undef'
+d_endsent='undef'
+d_endspent='undef'
+d_eofnblk='define'
+d_eunice='undef'
+d_fchmod='undef'
+d_fchown='undef'
+d_fcntl='undef'
+d_fd_macros='undef'
+d_fd_set='define'
+d_fds_bits='undef'
+d_fgetpos='define'
+d_flexfnam='define'
+d_flock='undef'
+d_fork='undef'
+d_fpathconf='undef'
+d_fpos64_t='undef'
+d_fseeko='undef'
+d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='undef'
+d_ftello='undef'
+d_ftime='undef'
+d_getgrent='undef'
+d_getgrps='undef'
+d_gethbyaddr='define'
+d_gethbyname='define'
+d_gethent='undef'
+d_gethname='undef'
+d_gethostprotos='define'
+d_getlogin='undef'
+d_getmntent='undef'
+d_getnbyaddr='undef'
+d_getnbyname='undef'
+d_getnent='undef'
+d_getnetprotos='define'
+d_getpbyname='define'
+d_getpbynumber='define'
+d_getpent='undef'
+d_getpgid='undef'
+d_getpgrp2='undef'
+d_getpgrp='undef'
+d_getppid='undef'
+d_getprior='undef'
+d_getprotoprotos='define'
+d_getpwent='undef'
+d_getsbyname='undef'
+d_getsbyport='undef'
+d_getsent='undef'
+d_getservprotos='define'
+d_getspent='undef'
+d_getspnam='undef'
+d_gettimeod='define'
+d_gnulibc='undef'
+d_grpasswd='undef'
+d_hasmntopt='undef'
+d_htonl='define'
+d_index='undef'
+d_inetaton='define'
+d_int64t='undef'
+d_iovec_s='undef'
+d_isascii='define'
+d_killpg='undef'
+d_lchown='undef'
+d_ldbl_dig='undef'
+d_link='undef'
+d_llseek='undef'
+d_locconv='undef'
+d_lockf='undef'
+d_longdbl='undef'
+d_longlong='define'
+d_lstat='undef'
+d_madvise='undef'
+d_mblen='undef'
+d_mbstowcs='undef'
+d_mbtowc='undef'
+d_memchr='define'
+d_memcmp='define'
+d_memcpy='define'
+d_memmove='define'
+d_memset='define'
+d_mkdir='define'
+d_mkfifo='undef'
+d_mktime='define'
+d_mmap='undef'
+d_mprotect='undef'
+d_msg='undef'
+d_msg_ctrunc='undef'
+d_msg_dontroute='undef'
+d_msg_oob='undef'
+d_msg_peek='undef'
+d_msg_proxy='undef'
+d_msgctl='undef'
+d_msgget='undef'
+d_msghdr_s='undef'
+d_msgrcv='undef'
+d_msgsnd='undef'
+d_msync='undef'
+d_munmap='undef'
+d_mymalloc='undef'
+d_nice='undef'
+d_off64_t='undef'
+d_old_pthread_create_joinable='undef'
+d_oldpthreads='undef'
+d_oldsock='undef'
+d_open3='define'
+d_pathconf='undef'
+d_pause='undef'
+d_phostname='undef'
+d_pipe='undef'
+d_poll='undef'
+d_portable='undef'
+d_pthread_yield='undef'
+d_pwage='undef'
+d_pwchange='undef'
+d_pwclass='undef'
+d_pwcomment='undef'
+d_pwexpire='undef'
+d_pwgecos='undef'
+d_pwpasswd='undef'
+d_pwquota='undef'
+d_readdir='define'
+d_readlink='undef'
+d_readv='undef'
+d_recvmsg='undef'
+d_rename='define'
+d_rewinddir='define'
+d_rmdir='define'
+d_safebcpy='undef'
+d_safemcpy='undef'
+d_sanemcmp='define'
+d_sched_yield='undef'
+d_scm_rights='undef'
+d_seekdir='define'
+d_select='undef'
+d_sem='undef'
+d_semctl='undef'
+d_semctl_semid_ds='define'
+d_semctl_semun='define'
+d_semget='undef'
+d_semop='undef'
+d_sendmsg='undef'
+d_setegid='undef'
+d_seteuid='undef'
+d_setgrent='undef'
+d_setgrps='undef'
+d_sethent='undef'
+d_setlinebuf='undef'
+d_setlocale='undef'
+d_setnent='undef'
+d_setpent='undef'
+d_setpgid='undef'
+d_setpgrp2='undef'
+d_setpgrp='undef'
+d_setprior='undef'
+d_setpwent='undef'
+d_setregid='undef'
+d_setresgid='undef'
+d_setresuid='undef'
+d_setreuid='undef'
+d_setrgid='undef'
+d_setruid='undef'
+d_setsent='undef'
+d_setsid='undef'
+d_setspent='undef'
+d_setvbuf='undef'
+d_sfio='undef'
+d_shm='undef'
+d_shmat='undef'
+d_shmatprototype='undef'
+d_shmctl='undef'
+d_shmdt='undef'
+d_shmget='undef'
+d_sigaction='undef'
+d_sigsetjmp='undef'
+d_socket='define'
+d_sockpair='undef'
+d_statblks='define'
+d_statfs='undef'
+d_statfsflags='define'
+d_statvfs='undef'
+d_stdio_cnt_lval='define'
+d_stdio_ptr_lval='define'
+d_stdio_stream_array='undef'
+d_stdiobase='undef'
+d_stdstdio='undef'
+d_strchr='define'
+d_strcoll='define'
+d_strctcpy='define'
+d_strerrm='strerror(e)'
+d_strerror='define'
+d_strtod='define'
+d_strtol='define'
+d_strtoul='define'
+d_strtoull='undef'
+d_strxfrm='define'
+d_suidsafe='undef'
+d_symlink='undef'
+d_syscall='undef'
+d_sysconf='define'
+d_sysernlst='undef'
+d_syserrlst='undef'
+d_system='define'
+d_tcgetpgrp='undef'
+d_tcsetpgrp='undef'
+d_telldir='define'
+d_telldirproto='define'
+d_time='undef'
+d_times='undef'
+d_truncate='undef'
+d_tzname='undef'
+d_umask='undef'
+d_uname='undef'
+d_union_semun='undef'
+d_vendorlib='undef'
+d_vfork='undef'
+d_void_closedir='undef'
+d_voidsig='undef'
+d_voidtty='undef'
+d_volatile='define'
+d_vprintf='define'
+d_wait4='undef'
+d_waitpid='undef'
+d_wcstombs='undef'
+d_wctomb='undef'
+d_writev='undef'
+d_xenix='undef'
+date='date'
+db_hashtype='undef'
+db_prefixtype='undef'
+defvoidused='15'
+direntrytype='struct dirent'
+dlext='none'
+dlsrc='dl_none.xs'
+doublesize='8'
+drand01='(rand()/(double)(1U<<RANDBITS))'
+dynamic_ext=''
+eagain='EAGAIN'
+ebcdic='undef'
+echo='echo'
+egrep='egrep'
+emacs=''
+eunicefix=':'
+exe_ext=''
+expr='expr'
+extensions='Data/Dumper File/Glob IO Socket'
+fflushNULL='undef'
+fflushall='define'
+find=''
+firstmakefile='makefile'
+flex=''
+fpostype='fpos_t'
+freetype='void'
+full_ar='/usr/local/bin/arm-pe-ar'
+full_csh=''
+full_sed='/usr/bin/sed'
+gccversion=''
+gidtype='gid_t'
+glibpth=''
+grep='grep'
+groupcat=''
+groupstype='gid_t'
+gzip='gzip'
+h_fcntl=''
+h_sysfile=''
+hint=''
+hostcat=''
+huge=''
+i_arpainet='define'
+i_bsdioctl='undef'
+i_db='undef'
+i_dbm='undef'
+i_dirent='define'
+i_dld='undef'
+i_dlfcn='undef'
+i_fcntl='define'
+i_float='undef'
+i_gdbm='undef'
+i_grp='undef'
+i_inttypes='undef'
+i_limits='define'
+i_locale='undef'
+i_machcthr='undef'
+i_malloc='undef'
+i_math='define'
+i_memory='undef'
+i_mntent='undef'
+i_ndbm='undef'
+i_netdb='define'
+i_neterrno='undef'
+i_netinettcp='define'
+i_niin='define'
+i_poll='undef'
+i_pthread='undef'
+i_pwd='undef'
+i_rpcsvcdbm='undef'
+i_sfio='undef'
+i_sgtty='undef'
+i_shadow='undef'
+i_socks='undef'
+i_stdarg='define'
+i_stddef='define'
+i_stdlib='define'
+i_string='define'
+i_sysaccess='undef'
+i_sysdir='undef'
+i_sysfile='undef'
+i_sysfilio='undef'
+i_sysin='undef'
+i_sysioctl='define'
+i_sysmman='undef'
+i_sysmount='undef'
+i_sysndir='undef'
+i_sysparam='define'
+i_sysresrc='define'
+i_syssecrt='undef'
+i_sysselct='undef'
+i_syssockio='undef'
+i_sysstat='define'
+i_sysstatvfs='undef'
+i_systime='define'
+i_systimek='undef'
+i_systimes='define'
+i_systypes='define'
+i_sysuio='undef'
+i_sysun='undef'
+i_syswait='define'
+i_termio='undef'
+i_termios='undef'
+i_time='define'
+i_unistd='define'
+i_utime='undef'
+i_values='undef'
+i_varargs='undef'
+i_varhdr='undef'
+i_vfork='undef'
+ignore_versioned_solibs=''
+incpath=''
+inews=''
+installarchlib='/home/olaf/E/lib'
+installbin='/home/olaf/E/bin'
+installman1dir=''
+installman3dir=''
+installprefix='/home/olaf/'
+installprefixexp=''
+installprivlib=''
+installscript=''
+installsitearch='/home/olaf/E/site/'
+installsitelib='/home/olaf/E/site/lib'
+installstyle=''
+installusrbinperl='undef'
+installvendorlib=''
+intsize='4'
+known_extensions='Data/Dumper File/Glob IO Socket'
+ksh=''
+large=''
+ld='echo'
+lddlflags=''
+ldflags=''
+ldlibpthname=''
+less=''
+lib_ext=''
+libc=''
+libperl='perl.a'
+libpth=''
+libs=''
+libswanted=''
+line=''
+lint=''
+lkflags=''
+ln='ln'
+lns='/bin/ln -s'
+locincpth=''
+loclibpth=''
+longdblsize='8'
+longlongsize='8'
+longsize='4'
+lp=''
+lpr=''
+ls='ls'
+lseeksize='8'
+lseektype='off_t'
+mail=''
+mailx=''
+make='make'
+make_set_make='#'
+mallocobj=''
+mallocsrc=''
+malloctype='void *'
+man1dir=''
+man1direxp=''
+man1ext=''
+man3dir=''
+man3direxp=''
+man3ext=''
+medium=''
+mips=''
+mips_type=''
+mkdir='mkdir'
+mmaptype=''
+models='none'
+modetype='mode_t'
+more='more'
+multiarch='define'
+mv=''
+myarchname='epoc'
+mydomain='.gmx.de'
+myhostname='dragon'
+myuname=''
+n='-n'
+netdb_hlen_type='int'
+netdb_host_type='const char *'
+netdb_name_type='const char *'
+netdb_net_type='int'
+nm='arm-pe-nm'
+nm_opt=''
+nm_so_opt=''
+nonxs_ext=''
+nroff='nroff'
+o_nonblock='O_NONBLOCK'
+obj_ext=''
+old_pthread_create_joinable=''
+optimize='-fomit-frame-pointer -DNDEBUG -O'
+orderlib=''
+osname='epoc'
+osvers=''
+package=''
+pager=''
+passcat=''
+patchlevel=''
+path_sep=''
+perl=''
+perladmin=''
+perlpath=''
+pg=''
+phostname=''
+pidtype='pid_t'
+plibpth=''
+pmake=''
+pr=''
+prefix=''
+prefixexp=''
+privlib='/perl/lib/5.5.640'
+privlibexp='/perl/lib/5.5.640'
+prototype='define'
+ptrsize='4'
+randbits='31'
+randfunc=''
+randseedtype='unsigned'
+ranlib='arm-pe-ranlib'
+rd_nodata='-1'
+rm='rm'
+rmail=''
+runnm='false'
+sPRIEldbl=''
+sPRIFldbl=''
+sPRIGldbl=''
+sPRIX64=''
+sPRId64=''
+sPRIeldbl=''
+sPRIfldbl='"f"'
+sPRIgldbl='"g"'
+sPRIi64=''
+sPRIo64=''
+sPRIu64=''
+sPRIx64=''
+sched_yield=''
+scriptdir=''
+scriptdirexp=''
+sed='sed'
+seedfunc='srand'
+selectminbits='32'
+selecttype=''
+sendmail=''
+sh='/bin/sh'
+shar=''
+sharpbang='#!'
+shmattype=''
+shortsize='2'
+shrpenv=''
+shsharp=''
+sig_count='ZERO '
+sig_name=''
+sig_name_init='"ZERO", 0'
+sig_num='0'
+sig_num_init='0, 0'
+signal_t='void'
+sitearch='/perl/lib/site_perl/5.5.640/epoc'
+sitearchexp='/perl/lib/site_perl/5.5.640/epoc'
+sitelib='/perl/lib/site_perl/5.5.640/'
+sitelibexp='/perl/lib/site_perl/5.5.640/'
+siteprefix=''
+siteprefixexp=''
+sizetype='size_t'
+sleep=''
+smail=''
+small=''
+so=''
+sockethdr=''
+socketlib=''
+sort='sort'
+spackage=''
+spitshell='cat'
+split=''
+src='.'
+ssizetype='long'
+startperl=''
+startsh='#!/bin/sh'
+static_ext='Data/Dumper File/Glob IO Socket'
+stdchar='char'
+stdio_base=''
+stdio_bufsiz=''
+stdio_cnt=''
+stdio_filbuf=''
+stdio_ptr=''
+stdio_stream_array=''
+strings=''
+submit=''
+subversion=''
+sysman=''
+tail=''
+tar=''
+tbl=''
+tee='tee'
+test='test'
+timeincl=''
+timetype='time_t'
+touch='touch'
+tr='tr'
+trnl='\n'
+troff=''
+uidsign='1'
+uidtype='uid_t'
+uname='uname'
+uniq='uniq'
+use64bits='undef'
+usedl='undef'
+uselargefiles='undef'
+uselongdouble='undef'
+usemorebits='undef'
+usemultiplicity='undef'
+usemymalloc='n'
+usenm=''
+useopcode=''
+useperlio='undef'
+useposix=''
+usesfio=''
+useshrplib=''
+usesocks='undef'
+usethreads='undef'
+usevendorprefix=''
+usevfork=''
+usrinc=''
+uuname=''
+vendorlib=''
+vendorlibexp=''
+vendorprefix=''
+vendorprefixexp=''
+version='5.5.640'
+vi=''
+voidflags='15'
+xlibpth=''
+zcat=''
+zip=''
+# Configure command line arguments.
+config_arg0=''
+config_args=''
+config_argc=11
+config_arg1=''
+config_arg2=''
+config_arg3=''
+config_arg4=''
+config_arg5=''
+config_arg6=''
+config_arg7=''
+config_arg8=''
+config_arg9=''
+config_arg10=''
+config_arg11=''
+PERL_REVISION=5
+PERL_VERSION=5
+PERL_SUBVERSION=640
+PERL_API_REVISION=5
+PERL_API_VERSION=5
+PERL_API_SUBVERSION=640
+CONFIGDOTSH=true
+# Variables propagated from previous config.sh file.
+pp_sys_cflags=''
+epocish_cflags='ccflags="$cflags -xc++"'
+ivtype='int'
+uvtype='unsigned int'
+i8type='char'
+u8type='unsigned char'
+i16type='short'
+u16type='unsigned short'
+i32type='int'
+u32type='unsigned int'
+i64type='long long'
+u64type='unsigned long long'
+d_quad='define'
+quadtype='long long'
+quadtype='unsigned long long'
+quadkind='QUAD_IS_LONG_LONG'
+nvtype='double'
+ivsize='4'
+uvsize='4'
+i8size='1'
+u8size='1'
+i16size='2'
+u16size='2'
+i32size='4'
+u32size='4'
+i64size='8'
+u64size='8'
+d_fs_data_s='undef'
+d_fseeko='undef'
+d_ldbl_dig='undef'
+d_sqrtl='undef'
+d_getmnt='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
+d_ustat='undef'
+i_sysstatfs='undef'
+i_sysvfs='undef'
+i_ustat='undef'
+uselonglong='define'
+uidsize='2'
+gidsize='2'
+
diff --git a/epoc/createpkg.pl b/epoc/createpkg.pl
index 5123262520..7270504974 100644
--- a/epoc/createpkg.pl
+++ b/epoc/createpkg.pl
@@ -4,15 +4,16 @@ use File::Find;
use Cwd;
$VERSION="5.005";
-$PATCH=62;
-$EPOC_VERSION=11;
-$CROSSCOMPILEPATH="Y:";
+$PATCH=63;
+$EPOC_VERSION=16;
+$CROSSCOMPILEPATH=cwd;
+$CROSSREPLACEPATH="H:\\devel\\perl5.005_63";
sub filefound {
my $f = $File::Find::name;
- return if ( $f =~ /ExtUtils|unicode|CGI|CPAN|Net|IPC|User|DB.pm/i);
+ return if ( $f =~ /unicode|CPAN|ExtUtils|IPC|User|DB.pm|\.a$|\.ld$|\.exists$/i);
my $back = $f;
$back =~ s|$CROSSCOMPILEPATH||;
@@ -21,25 +22,19 @@ sub filefound {
my $psiback = $back;
- $psiback =~ s/\\perl$VERSION\\perl$VERSION\_$PATCH\\lib\\/\\perl\\lib\\$VERSION$PATCH\\/i;
+ $psiback =~ s/\\lib\\/\\perl\\lib\\$VERSION$PATCH\\/i;
- print OUT "\"$back\"-\"!:$psiback\"\n" if ( -f $f );
+ print OUT "\"$CROSSREPLACEPATH$back\"-\"!:$psiback\"\n" if ( -f $f );
;
}
-
-
-
-
open OUT,">perl.pkg";
print OUT "#{\"perl$VERSION\"},(0x100051d8),$PATCH,$EPOC_VERSION,0\n";
-print OUT "\"\\epoc32\\release\\marm\\rel\\perl.exe\"-\"!:\\perl.exe\"\n";
-print OUT "\"\\perl$VERSION\\perl${VERSION}_$PATCH\\epoc\\Config.pm\"-\"!:\\perl\\lib\\$VERSION$PATCH\\Config.pm\"\n";
+print OUT "\"$CROSSREPLACEPATH\\perlmain.exe\"-\"!:\\perl.exe\"\n";
find(\&filefound, cwd.'/lib');
-
-print OUT "@\"\\epoc32\\release\\marm\\rel\\stdlib.sis\",(0x010002c3)\n"
+print OUT "@\"G:\\lib\\stdlib.sis\",(0x010002c3)\n"
diff --git a/epoc/epoc.c b/epoc/epoc.c
index d0fae23f7e..498036dbc0 100644
--- a/epoc/epoc.c
+++ b/epoc/epoc.c
@@ -11,7 +11,6 @@
#include <stdio.h>
#include <sys/unistd.h>
-char *environ = NULL;
void
Perl_epoc_init(int *argcp, char ***argvp) {
int i;
@@ -87,4 +86,62 @@ __fixunsdfsi (a)
return (SItype) a;
}
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int
+do_aspawn( pTHX_ SV *really,SV **mark,SV **sp) {
+ return do_spawn( really, mark, sp);
+}
+
+int
+do_spawn (pTHX_ SV *really,SV **mark,SV **sp)
+{
+ dTHR;
+ int rc;
+ char **a,*cmd,**ptr, *cmdline, **argv, *p2;
+ STRLEN n_a;
+ size_t len = 0;
+
+ if (sp<=mark)
+ return -1;
+
+ a=argv=ptr=(char**) malloc ((sp-mark+3)*sizeof (char*));
+
+ while (++mark <= sp) {
+ if (*mark)
+ *a = SvPVx(*mark, n_a);
+ else
+ *a = "";
+ len += strlen( *a) + 1;
+ a++;
+ }
+ *a = Nullch;
+
+ if (!(really && *(cmd = SvPV(really, n_a)))) {
+ cmd = argv[0];
+ argv++;
+ }
+
+ cmdline = (char * ) malloc( len + 1);
+ cmdline[ 0] = '\0';
+ while (*argv != NULL) {
+ strcat( cmdline, *argv++);
+ strcat( cmdline, " ");
+ }
+
+ for (p2=cmd; *p2 != '\0'; p2++) {
+ /* Change / to \ */
+ if ( *p2 == '/')
+ *p2 = '\\';
+ }
+ rc = epoc_spawn( cmd, cmdline);
+ free( ptr);
+ free( cmdline);
+
+ return rc;
+}
+
+
#endif
diff --git a/epoc/epoc_stubs.c b/epoc/epoc_stubs.c
index 02430b7378..b11da400d6 100644
--- a/epoc/epoc_stubs.c
+++ b/epoc/epoc_stubs.c
@@ -6,6 +6,10 @@
*
*/
+#include <string.h>
+
+char *environ = 0;
+
int getgid() {return 0;}
int getegid() {return 0;}
int geteuid() {return 0;}
@@ -13,19 +17,53 @@ int getuid() {return 0;}
int setgid() {return -1;}
int setuid() {return -1;}
+
int Perl_my_popen( int a, int b) {
- return 0;
+ return NULL;
}
int Perl_my_pclose( int a) {
- return 0;
+ return NULL;
+}
+
+int kill() {return -1;}
+signal() { }
+
+int execv() { return -1;}
+int execvp() { return -1;}
+
+void Perl_do_exec() {}
+
+/*------------------------------------------------------------------*/
+/* Two dummy functions implement getproto* */
+/*------------------------------------------------------------------*/
+#include <sys/types.h>
+#include <netdb.h>
+#include <netinet/in.h>
+
+
+static struct protoent protos[2] = {
+ {"tcp", NULL, IPPROTO_TCP} ,
+ {"udp", NULL, IPPROTO_UDP}};
+
+struct protoent *getprotobyname (const char *st) {
+
+ if (!strcmp( st, "tcp")) {
+ return &protos[0];
+ }
+ if (!strcmp( st, "udp")) {
+ return &protos[1];
+ }
+ return NULL;
}
-kill() {}
-signal() {}
+struct protoent *getprotobynumber ( int i) {
+ if (i == IPPROTO_TCP) {
+ return &protos[0];
+ }
+ if (i == IPPROTO_UDP) {
+ return &protos[1];
+ }
+ return NULL;
+}
-void execv() {}
-void execvp() {}
-void do_spawn() {}
-void do_aspawn() {}
-void Perl_do_exec() {}
diff --git a/epoc/epocish.c b/epoc/epocish.c
new file mode 100644
index 0000000000..134eaef0e0
--- /dev/null
+++ b/epoc/epocish.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 1999 Olaf Flebbe o.flebbe@gmx.de
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/* This is indeed C++ Code !! */
+
+#include <e32std.h>
+
+extern "C" {
+
+epoc_spawn( char *cmd, char *cmdline) {
+ RProcess p;
+ TRequestStatus status;
+ TInt rc;
+
+ rc = p.Create( _L( cmd), _L( cmdline));
+ if (rc != KErrNone)
+ return -1;
+
+ p.Resume();
+
+ p.Logon( status);
+ User::WaitForRequest( status);
+ if (status!=KErrNone) {
+ return -1;
+ }
+ return 0;
+}
+
+}
diff --git a/epoc/epocish.h b/epoc/epocish.h
index 49cac27000..ca992cfdfb 100644
--- a/epoc/epocish.h
+++ b/epoc/epocish.h
@@ -118,3 +118,18 @@
#define dXSUB_SYS
+/* getsockname returns the size of struct sockaddr_in *without* padding */
+#define BOGUS_GETNAME_RETURN 8
+
+/* Yes, size_t is size_t */
+#define Sock_size_t size_t
+
+/*
+ read() on a socket blocks until buf is filled completly,
+ recv() returns each massage
+*/
+#define PERL_SOCK_SYSREAD_IS_RECV
+
+/* No /dev/random available*/
+
+#define PERL_NO_DEV_RANDOM
diff --git a/epoc/link.pl b/epoc/link.pl
new file mode 100644
index 0000000000..9da8a356ca
--- /dev/null
+++ b/epoc/link.pl
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+$epoc="/usr/local/epoc";
+@objs=@ARGV;
+$basname=$objs[0];
+$basname =~ s/.o//;
+$baspe = $basname . "pe";
+
+
+system("arm-pe-ld -s -e _E32Startup --base-file $basname.bas " .
+ "-o $baspe.exe $epoc/lib/eexe.o @objs " .
+ "$epoc/lib/ecrt0.o $epoc/lib/estlib.lib $epoc/lib/euser.lib");
+
+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 " .
+ "-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 " .
+ "-nocall -heap 0x00000400 0x00400000 -stack 0x0000c000 " .
+ "-uid1 0x1000007a -uid2 0x100051d8 -uid3 0x00000000 \" ");
+
diff --git a/epoc/perl.mmp b/epoc/perl.mmp
deleted file mode 100644
index 926f6a7b26..0000000000
--- a/epoc/perl.mmp
+++ /dev/null
@@ -1,20 +0,0 @@
-target perl.exe
-targettype exe
-uid 0x100051d8
-
-project perl5.005
-subproject perl5.005_62
-
-SOURCE av.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c mg.c miniperlmain.c op.c perl.c perlapi.c perlio.c perly.c pp.c pp_ctl.c pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c xsutils.c epoc.c epoc_stubs.c
-systeminclude \epoc32\include\libc \epoc32\include
-
-#if defined(MARM)
-LIBRARY ecrt0.o
-#else
-LIBRARY ecrt0.obj
-#endif
-
-epocstacksize 49152
-epocheapsize 1024 2097152
-
-LIBRARY estlib.lib euser.lib
diff --git a/epoc/perl.pkg b/epoc/perl.pkg
deleted file mode 100644
index 8e5914850a..0000000000
--- a/epoc/perl.pkg
+++ /dev/null
@@ -1,141 +0,0 @@
-#{"perl5.005"},(0x100051d8),62,11,0
-"\epoc32\release\marm\rel\perl.exe"-"!:\perl.exe"
-"\perl5.005\perl5.005_62\epoc\Config.pm"-"!:\perl\lib\5.00562\Config.pm"
-"\PERL5.005\perl5.005_62\lib\AnyDBM_File.pm"-"!:\perl\lib\5.00562\AnyDBM_File.pm"
-"\PERL5.005\perl5.005_62\lib\AutoLoader.pm"-"!:\perl\lib\5.00562\AutoLoader.pm"
-"\PERL5.005\perl5.005_62\lib\AutoSplit.pm"-"!:\perl\lib\5.00562\AutoSplit.pm"
-"\PERL5.005\perl5.005_62\lib\Benchmark.pm"-"!:\perl\lib\5.00562\Benchmark.pm"
-"\PERL5.005\perl5.005_62\lib\Carp.pm"-"!:\perl\lib\5.00562\Carp.pm"
-"\PERL5.005\perl5.005_62\lib\Carp\Heavy.pm"-"!:\perl\lib\5.00562\Carp\Heavy.pm"
-"\PERL5.005\perl5.005_62\lib\Class\Struct.pm"-"!:\perl\lib\5.00562\Class\Struct.pm"
-"\PERL5.005\perl5.005_62\lib\Cwd.pm"-"!:\perl\lib\5.00562\Cwd.pm"
-"\PERL5.005\perl5.005_62\lib\Devel\SelfStubber.pm"-"!:\perl\lib\5.00562\Devel\SelfStubber.pm"
-"\PERL5.005\perl5.005_62\lib\DirHandle.pm"-"!:\perl\lib\5.00562\DirHandle.pm"
-"\PERL5.005\perl5.005_62\lib\Dumpvalue.pm"-"!:\perl\lib\5.00562\Dumpvalue.pm"
-"\PERL5.005\perl5.005_62\lib\English.pm"-"!:\perl\lib\5.00562\English.pm"
-"\PERL5.005\perl5.005_62\lib\Env.pm"-"!:\perl\lib\5.00562\Env.pm"
-"\PERL5.005\perl5.005_62\lib\Exporter.pm"-"!:\perl\lib\5.00562\Exporter.pm"
-"\PERL5.005\perl5.005_62\lib\Exporter\Heavy.pm"-"!:\perl\lib\5.00562\Exporter\Heavy.pm"
-"\PERL5.005\perl5.005_62\lib\Fatal.pm"-"!:\perl\lib\5.00562\Fatal.pm"
-"\PERL5.005\perl5.005_62\lib\File\Basename.pm"-"!:\perl\lib\5.00562\File\Basename.pm"
-"\PERL5.005\perl5.005_62\lib\File\CheckTree.pm"-"!:\perl\lib\5.00562\File\CheckTree.pm"
-"\PERL5.005\perl5.005_62\lib\File\Compare.pm"-"!:\perl\lib\5.00562\File\Compare.pm"
-"\PERL5.005\perl5.005_62\lib\File\Copy.pm"-"!:\perl\lib\5.00562\File\Copy.pm"
-"\PERL5.005\perl5.005_62\lib\File\DosGlob.pm"-"!:\perl\lib\5.00562\File\DosGlob.pm"
-"\PERL5.005\perl5.005_62\lib\File\Find.pm"-"!:\perl\lib\5.00562\File\Find.pm"
-"\PERL5.005\perl5.005_62\lib\File\Path.pm"-"!:\perl\lib\5.00562\File\Path.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec.pm"-"!:\perl\lib\5.00562\File\Spec.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec\Functions.pm"-"!:\perl\lib\5.00562\File\Spec\Functions.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec\Mac.pm"-"!:\perl\lib\5.00562\File\Spec\Mac.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec\OS2.pm"-"!:\perl\lib\5.00562\File\Spec\OS2.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec\Unix.pm"-"!:\perl\lib\5.00562\File\Spec\Unix.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec\VMS.pm"-"!:\perl\lib\5.00562\File\Spec\VMS.pm"
-"\PERL5.005\perl5.005_62\lib\File\Spec\Win32.pm"-"!:\perl\lib\5.00562\File\Spec\Win32.pm"
-"\PERL5.005\perl5.005_62\lib\File\STAT.PM"-"!:\perl\lib\5.00562\File\STAT.PM"
-"\PERL5.005\perl5.005_62\lib\FileCache.pm"-"!:\perl\lib\5.00562\FileCache.pm"
-"\PERL5.005\perl5.005_62\lib\FileHandle.pm"-"!:\perl\lib\5.00562\FileHandle.pm"
-"\PERL5.005\perl5.005_62\lib\FindBin.pm"-"!:\perl\lib\5.00562\FindBin.pm"
-"\PERL5.005\perl5.005_62\lib\Getopt\Long.pm"-"!:\perl\lib\5.00562\Getopt\Long.pm"
-"\PERL5.005\perl5.005_62\lib\Getopt\Std.pm"-"!:\perl\lib\5.00562\Getopt\Std.pm"
-"\PERL5.005\perl5.005_62\lib\I18N\Collate.pm"-"!:\perl\lib\5.00562\I18N\Collate.pm"
-"\PERL5.005\perl5.005_62\lib\Math\BigFloat.pm"-"!:\perl\lib\5.00562\Math\BigFloat.pm"
-"\PERL5.005\perl5.005_62\lib\Math\BigInt.pm"-"!:\perl\lib\5.00562\Math\BigInt.pm"
-"\PERL5.005\perl5.005_62\lib\Math\Complex.pm"-"!:\perl\lib\5.00562\Math\Complex.pm"
-"\PERL5.005\perl5.005_62\lib\Math\Trig.pm"-"!:\perl\lib\5.00562\Math\Trig.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Checker.pm"-"!:\perl\lib\5.00562\Pod\Checker.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Functions.pm"-"!:\perl\lib\5.00562\Pod\Functions.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Html.pm"-"!:\perl\lib\5.00562\Pod\Html.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\InputObjects.pm"-"!:\perl\lib\5.00562\Pod\InputObjects.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Man.pm"-"!:\perl\lib\5.00562\Pod\Man.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Parser.pm"-"!:\perl\lib\5.00562\Pod\Parser.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Select.pm"-"!:\perl\lib\5.00562\Pod\Select.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Text.pm"-"!:\perl\lib\5.00562\Pod\Text.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Text\Color.pm"-"!:\perl\lib\5.00562\Pod\Text\Color.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Text\Termcap.pm"-"!:\perl\lib\5.00562\Pod\Text\Termcap.pm"
-"\PERL5.005\perl5.005_62\lib\Pod\Usage.pm"-"!:\perl\lib\5.00562\Pod\Usage.pm"
-"\PERL5.005\perl5.005_62\lib\Search\Dict.pm"-"!:\perl\lib\5.00562\Search\Dict.pm"
-"\PERL5.005\perl5.005_62\lib\SelectSaver.pm"-"!:\perl\lib\5.00562\SelectSaver.pm"
-"\PERL5.005\perl5.005_62\lib\SelfLoader.pm"-"!:\perl\lib\5.00562\SelfLoader.pm"
-"\PERL5.005\perl5.005_62\lib\Shell.pm"-"!:\perl\lib\5.00562\Shell.pm"
-"\PERL5.005\perl5.005_62\lib\Symbol.pm"-"!:\perl\lib\5.00562\Symbol.pm"
-"\PERL5.005\perl5.005_62\lib\Sys\Hostname.pm"-"!:\perl\lib\5.00562\Sys\Hostname.pm"
-"\PERL5.005\perl5.005_62\lib\Sys\Syslog.pm"-"!:\perl\lib\5.00562\Sys\Syslog.pm"
-"\PERL5.005\perl5.005_62\lib\Term\Cap.pm"-"!:\perl\lib\5.00562\Term\Cap.pm"
-"\PERL5.005\perl5.005_62\lib\Term\Complete.pm"-"!:\perl\lib\5.00562\Term\Complete.pm"
-"\PERL5.005\perl5.005_62\lib\Term\ReadLine.pm"-"!:\perl\lib\5.00562\Term\ReadLine.pm"
-"\PERL5.005\perl5.005_62\lib\Test.pm"-"!:\perl\lib\5.00562\Test.pm"
-"\PERL5.005\perl5.005_62\lib\Test\Harness.pm"-"!:\perl\lib\5.00562\Test\Harness.pm"
-"\PERL5.005\perl5.005_62\lib\Text\Abbrev.pm"-"!:\perl\lib\5.00562\Text\Abbrev.pm"
-"\PERL5.005\perl5.005_62\lib\Text\ParseWords.pm"-"!:\perl\lib\5.00562\Text\ParseWords.pm"
-"\PERL5.005\perl5.005_62\lib\Text\Soundex.pm"-"!:\perl\lib\5.00562\Text\Soundex.pm"
-"\PERL5.005\perl5.005_62\lib\Text\Tabs.pm"-"!:\perl\lib\5.00562\Text\Tabs.pm"
-"\PERL5.005\perl5.005_62\lib\Text\Wrap.pm"-"!:\perl\lib\5.00562\Text\Wrap.pm"
-"\PERL5.005\perl5.005_62\lib\Tie\Array.pm"-"!:\perl\lib\5.00562\Tie\Array.pm"
-"\PERL5.005\perl5.005_62\lib\Tie\Handle.pm"-"!:\perl\lib\5.00562\Tie\Handle.pm"
-"\PERL5.005\perl5.005_62\lib\Tie\Hash.pm"-"!:\perl\lib\5.00562\Tie\Hash.pm"
-"\PERL5.005\perl5.005_62\lib\Tie\RefHash.pm"-"!:\perl\lib\5.00562\Tie\RefHash.pm"
-"\PERL5.005\perl5.005_62\lib\Tie\Scalar.pm"-"!:\perl\lib\5.00562\Tie\Scalar.pm"
-"\PERL5.005\perl5.005_62\lib\Tie\SubstrHash.pm"-"!:\perl\lib\5.00562\Tie\SubstrHash.pm"
-"\PERL5.005\perl5.005_62\lib\Time\Local.pm"-"!:\perl\lib\5.00562\Time\Local.pm"
-"\PERL5.005\perl5.005_62\lib\Time\GMTIME.PM"-"!:\perl\lib\5.00562\Time\GMTIME.PM"
-"\PERL5.005\perl5.005_62\lib\Time\localtime.pm"-"!:\perl\lib\5.00562\Time\localtime.pm"
-"\PERL5.005\perl5.005_62\lib\Time\TM.PM"-"!:\perl\lib\5.00562\Time\TM.PM"
-"\PERL5.005\perl5.005_62\lib\UNIVERSAL.pm"-"!:\perl\lib\5.00562\UNIVERSAL.pm"
-"\PERL5.005\perl5.005_62\lib\ABBREV.PL"-"!:\perl\lib\5.00562\ABBREV.PL"
-"\PERL5.005\perl5.005_62\lib\ASSERT.PL"-"!:\perl\lib\5.00562\ASSERT.PL"
-"\PERL5.005\perl5.005_62\lib\attributes.pm"-"!:\perl\lib\5.00562\attributes.pm"
-"\PERL5.005\perl5.005_62\lib\AUTOUSE.PM"-"!:\perl\lib\5.00562\AUTOUSE.PM"
-"\PERL5.005\perl5.005_62\lib\BASE.PM"-"!:\perl\lib\5.00562\BASE.PM"
-"\PERL5.005\perl5.005_62\lib\BIGFLOAT.PL"-"!:\perl\lib\5.00562\BIGFLOAT.PL"
-"\PERL5.005\perl5.005_62\lib\BIGINT.PL"-"!:\perl\lib\5.00562\BIGINT.PL"
-"\PERL5.005\perl5.005_62\lib\BIGRAT.PL"-"!:\perl\lib\5.00562\BIGRAT.PL"
-"\PERL5.005\perl5.005_62\lib\BLIB.PM"-"!:\perl\lib\5.00562\BLIB.PM"
-"\PERL5.005\perl5.005_62\lib\CACHEOUT.PL"-"!:\perl\lib\5.00562\CACHEOUT.PL"
-"\PERL5.005\perl5.005_62\lib\CALLER.PM"-"!:\perl\lib\5.00562\CALLER.PM"
-"\PERL5.005\perl5.005_62\lib\charnames.pm"-"!:\perl\lib\5.00562\charnames.pm"
-"\PERL5.005\perl5.005_62\lib\CHAT2.PL"-"!:\perl\lib\5.00562\CHAT2.PL"
-"\PERL5.005\perl5.005_62\lib\COMPLETE.PL"-"!:\perl\lib\5.00562\COMPLETE.PL"
-"\PERL5.005\perl5.005_62\lib\CONSTANT.PM"-"!:\perl\lib\5.00562\CONSTANT.PM"
-"\PERL5.005\perl5.005_62\lib\CTIME.PL"-"!:\perl\lib\5.00562\CTIME.PL"
-"\PERL5.005\perl5.005_62\lib\diagnostics.pm"-"!:\perl\lib\5.00562\diagnostics.pm"
-"\PERL5.005\perl5.005_62\lib\DOTSH.PL"-"!:\perl\lib\5.00562\DOTSH.PL"
-"\PERL5.005\perl5.005_62\lib\DUMPVAR.PL"-"!:\perl\lib\5.00562\DUMPVAR.PL"
-"\PERL5.005\perl5.005_62\lib\exceptions.pl"-"!:\perl\lib\5.00562\exceptions.pl"
-"\PERL5.005\perl5.005_62\lib\FASTCWD.PL"-"!:\perl\lib\5.00562\FASTCWD.PL"
-"\PERL5.005\perl5.005_62\lib\FIELDS.PM"-"!:\perl\lib\5.00562\FIELDS.PM"
-"\PERL5.005\perl5.005_62\lib\FILETEST.PM"-"!:\perl\lib\5.00562\FILETEST.PM"
-"\PERL5.005\perl5.005_62\lib\FIND.PL"-"!:\perl\lib\5.00562\FIND.PL"
-"\PERL5.005\perl5.005_62\lib\finddepth.pl"-"!:\perl\lib\5.00562\finddepth.pl"
-"\PERL5.005\perl5.005_62\lib\FLUSH.PL"-"!:\perl\lib\5.00562\FLUSH.PL"
-"\PERL5.005\perl5.005_62\lib\FTP.PL"-"!:\perl\lib\5.00562\FTP.PL"
-"\PERL5.005\perl5.005_62\lib\GETCWD.PL"-"!:\perl\lib\5.00562\GETCWD.PL"
-"\PERL5.005\perl5.005_62\lib\GETOPT.PL"-"!:\perl\lib\5.00562\GETOPT.PL"
-"\PERL5.005\perl5.005_62\lib\GETOPTS.PL"-"!:\perl\lib\5.00562\GETOPTS.PL"
-"\PERL5.005\perl5.005_62\lib\HOSTNAME.PL"-"!:\perl\lib\5.00562\HOSTNAME.PL"
-"\PERL5.005\perl5.005_62\lib\importenv.pl"-"!:\perl\lib\5.00562\importenv.pl"
-"\PERL5.005\perl5.005_62\lib\INTEGER.PM"-"!:\perl\lib\5.00562\INTEGER.PM"
-"\PERL5.005\perl5.005_62\lib\LESS.PM"-"!:\perl\lib\5.00562\LESS.PM"
-"\PERL5.005\perl5.005_62\lib\LIB.PM"-"!:\perl\lib\5.00562\LIB.PM"
-"\PERL5.005\perl5.005_62\lib\LOCALE.PM"-"!:\perl\lib\5.00562\LOCALE.PM"
-"\PERL5.005\perl5.005_62\lib\LOOK.PL"-"!:\perl\lib\5.00562\LOOK.PL"
-"\PERL5.005\perl5.005_62\lib\newgetopt.pl"-"!:\perl\lib\5.00562\newgetopt.pl"
-"\PERL5.005\perl5.005_62\lib\OPEN2.PL"-"!:\perl\lib\5.00562\OPEN2.PL"
-"\PERL5.005\perl5.005_62\lib\OPEN3.PL"-"!:\perl\lib\5.00562\OPEN3.PL"
-"\PERL5.005\perl5.005_62\lib\OVERLOAD.PM"-"!:\perl\lib\5.00562\OVERLOAD.PM"
-"\PERL5.005\perl5.005_62\lib\PERL5DB.PL"-"!:\perl\lib\5.00562\PERL5DB.PL"
-"\PERL5.005\perl5.005_62\lib\PWD.PL"-"!:\perl\lib\5.00562\PWD.PL"
-"\PERL5.005\perl5.005_62\lib\shellwords.pl"-"!:\perl\lib\5.00562\shellwords.pl"
-"\PERL5.005\perl5.005_62\lib\SIGTRAP.PM"-"!:\perl\lib\5.00562\SIGTRAP.PM"
-"\PERL5.005\perl5.005_62\lib\STAT.PL"-"!:\perl\lib\5.00562\STAT.PL"
-"\PERL5.005\perl5.005_62\lib\STRICT.PM"-"!:\perl\lib\5.00562\STRICT.PM"
-"\PERL5.005\perl5.005_62\lib\SUBS.PM"-"!:\perl\lib\5.00562\SUBS.PM"
-"\PERL5.005\perl5.005_62\lib\SYSLOG.PL"-"!:\perl\lib\5.00562\SYSLOG.PL"
-"\PERL5.005\perl5.005_62\lib\TAINTED.PL"-"!:\perl\lib\5.00562\TAINTED.PL"
-"\PERL5.005\perl5.005_62\lib\TERMCAP.PL"-"!:\perl\lib\5.00562\TERMCAP.PL"
-"\PERL5.005\perl5.005_62\lib\timelocal.pl"-"!:\perl\lib\5.00562\timelocal.pl"
-"\PERL5.005\perl5.005_62\lib\UTF8.PM"-"!:\perl\lib\5.00562\UTF8.PM"
-"\PERL5.005\perl5.005_62\lib\utf8_heavy.pl"-"!:\perl\lib\5.00562\utf8_heavy.pl"
-"\PERL5.005\perl5.005_62\lib\VALIDATE.PL"-"!:\perl\lib\5.00562\VALIDATE.PL"
-"\PERL5.005\perl5.005_62\lib\VARS.PM"-"!:\perl\lib\5.00562\VARS.PM"
-"\PERL5.005\perl5.005_62\lib\WARNINGS.PM"-"!:\perl\lib\5.00562\WARNINGS.PM"
-@"\epoc32\release\marm\rel\stdlib.sis",(0x010002c3)
diff --git a/ext/IO/lib/IO/Socket.pm b/ext/IO/lib/IO/Socket.pm
index 01cdc40cce..b843999180 100644
--- a/ext/IO/lib/IO/Socket.pm
+++ b/ext/IO/lib/IO/Socket.pm
@@ -18,7 +18,7 @@ use Exporter;
# legacy
require IO::Socket::INET;
-require IO::Socket::UNIX;
+require IO::Socket::UNIX if ($^O ne 'epoc');
@ISA = qw(IO::Handle);
diff --git a/lib/Sys/Hostname.pm b/lib/Sys/Hostname.pm
index e96822e414..4d93f91f9e 100644
--- a/lib/Sys/Hostname.pm
+++ b/lib/Sys/Hostname.pm
@@ -65,6 +65,10 @@ sub hostname {
chomp($host = `hostname 2> NUL`) unless defined $host;
return $host;
}
+ elsif ($^O eq 'epoc') {
+ $host = 'localhost';
+ return $host;
+ }
else { # Unix
# method 2 - syscall is preferred since it avoids tainting problems