fact RSX is required if there is no VCPI present. Note the
RSX requires DPMI.
-Only the latest runtime is supported, currently C<0.9c>. Perl may run
+Only the latest runtime is supported, currently C<0.9d fix 03>. Perl may run
under earlier versions of EMX, but this is not tested.
One can get different parts of EMX from, say
- ftp://ftp.cdrom.com/pub/os2/emx09c/
- ftp://hobbes.nmsu.edu/os2/unix/emx09c/
+ http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/
+ http://powerusersbbs.com/pub/os2/dev/ [EMX+GCC Development]
+ http://hobbes.nmsu.edu/pub/os2/dev/emx/v0.9d/
The runtime component should have the name F<emxrt.zip>.
=head1 BUILD
Here we discuss how to build Perl under OS/2. There is an alternative
-(but maybe older) view on L<http://www.shadow.net/~troc/os2perl.html>.
+(but maybe older) view on http://www.shadow.net/~troc/os2perl.html
=head2 Prerequisites
=head2 Application of the patches
-You need to apply the patches in F<./os2/diff.*> and
-F<./os2/POSIX.mkfifo> like this:
+You need to apply the patches in F<./os2/diff.*> like this:
- gnupatch -p0 < os2\POSIX.mkfifo
gnupatch -p0 < os2\diff.configure
You may also need to apply the patches supplied with the binary
+++ /emx/include/sys/stat.h Sun Jul 12 14:11:32 1998
@@ -53,7 +53,7 @@ struct stat
#endif
-
+
#if !defined (S_IFMT)
-#define S_IFMT 0160000 /* Mask for file type */
+#define S_IFMT 0170000 /* Mask for file type */
You use an old version of GNU make. See L<Prerequisites>.
+=head2 op/sprintf test failure
+
+This can result from a bug in emx sprintf which was fixed in 0.9d fix 03.
+
=head1 Specific (mis)features of OS/2 port
=head2 C<setpriority>, C<getpriority>
file which would have C<name> if CWD were C<dir>. C<Dir> defaults to the
current dir.
-=item C<Cwd::extLibpath([type])
+=item C<Cwd::extLibpath([type])>
Get current value of extended library search path. If C<type> is
present and I<true>, works with END_LIBPATH, otherwise with
B<Disadvantages:> currently F<sh.exe> of pdksh calls external programs
via fork()/exec(), and there is I<no> functioning exec() on
-OS/2. exec() is emulated by EMX by asyncroneous call while the caller
+OS/2. exec() is emulated by EMX by asynchronous call while the caller
waits for child completion (to pretend that the C<pid> did not change). This
means that 1 I<extra> copy of F<sh.exe> is made active via fork()/exec(),
which may lead to some resources taken from the system (even if we do
Perl uses its own malloc() under OS/2 - interpreters are usually malloc-bound
for speed, but perl is not, since its malloc is lightning-fast.
-Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quickier
-than EMX one. I do not have convincing data about memory footpring, but
+Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quicker
+than EMX one. I do not have convincing data about memory footprint, but
a (pretty random) benchmark showed that Perl one is 5% better.
Combination of perl's malloc() and rigid DLL name resolution creates