=item *
-You need a separate perl executable F<perl__.exe> (see L<perl__.exe>)
+You need a separate perl executable F<perl__.exe> (see L</perl__.exe>)
if you want to use PM code in your application (as Perl/Tk or OpenGL
Perl modules do) without having a text-mode window present.
environments. This depends on the features the I<extender> - most
probably RSX - decided to implement.
-Cf. L<Prerequisites>.
+Cf. L</Prerequisites>.
=head2 Prerequisites
One can get different parts of EMX from, say
- 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/
+ ftp://crydee.sai.msu.ru/pub/comp/os/os2/leo/gnu/emx+gcc/
+ http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/dev/emx/v0.9d/
The runtime component should have the name F<emxrt.zip>.
One can get RSX from, say
- ftp://ftp.cdrom.com/pub/os2/emx09c/contrib
- ftp://ftp.uni-bielefeld.de/pub/systems/msdos/misc
- ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/contrib
+ http://cd.textfiles.com/hobbesos29804/disk1/EMX09C/
+ ftp://crydee.sai.msu.ru/pub/comp/os/os2/leo/gnu/emx+gcc/contrib/
Contact the author on C<rainer@mathematik.uni-bielefeld.de>.
=item *
Did you run your programs with C<-w> switch? See
-L<Starting OS/2 (and DOS) programs under Perl>.
+L<Starting OSE<sol>2 (and DOS) programs under Perl>.
=item *
=head2 C<``> and pipe-C<open> do not work under DOS.
This may a variant of just L<"I cannot run external programs">, or a
-deeper problem. Basically: you I<need> RSX (see L<"Prerequisites">)
+deeper problem. Basically: you I<need> RSX (see L</Prerequisites>)
for these commands to work, and you may need a port of F<sh.exe> which
understands command arguments. One of such ports is listed in
-L<"Prerequisites"> under RSX. Do not forget to set variable
+L</Prerequisites> under RSX. Do not forget to set variable
C<L<"PERL_SH_DIR">> as well.
DPMI is required for RSX.
The whole idea of the "standard C API to start applications" is that
the forms C<foo> and C<"foo"> of program arguments are completely
-interchangable. F<find> breaks this paradigm;
+interchangeable. F<find> breaks this paradigm;
find "pattern" file
find pattern file
=item Additional Perl modules
- unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.8.3/
+ unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.15.0/
Same remark as above applies. Additionally, if this directory is not
one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
=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>.
+Here we discuss how to build Perl under OS/2.
=head2 The short story
Possible locations to get the files:
- ftp://hobbes.nmsu.edu/os2/unix/
- ftp://ftp.cdrom.com/pub/os2/unix/
- ftp://ftp.cdrom.com/pub/os2/dev32/
- ftp://ftp.cdrom.com/pub/os2/emx09c/
+
+ ftp://ftp.uni-heidelberg.de/pub/os2/unix/
+ http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2
+ http://cd.textfiles.com/hobbesos29804/disk1/DEV32/
+ http://cd.textfiles.com/hobbesos29804/disk1/EMX09C/
It is reported that the following archives contain enough utils to
build perl: F<gnufutil.zip>, F<gnusutil.zip>, F<gnututil.zip>, F<gnused.zip>,
F<ksh527rt.zip> (or a later version). Note that all these utilities are
known to be available from LEO:
- ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu
+ ftp://crydee.sai.msu.ru/pub/comp/os/os2/leo/gnu/
Note also that the F<db.lib> and F<db.a> from the EMX distribution
are not suitable for multi-threaded compile (even single-threaded
You need to fetch the latest perl source (including developers
releases). With some probability it is located in
- http://www.cpan.org/src/5.0
- http://www.cpan.org/src/5.0/unsupported
+ http://www.cpan.org/src/
+ http://www.cpan.org/src/unsupported
If not, you may need to dig in the indices to find it in the directory
of the current maintainer.
{
main_t f;
handler_t h;
-
+
me = argv[0];
/**/
handle = load_perl_dll(PERL_DLL_BASENAME);
=head2 Some C</> became C<\> in pdksh.
-You have a very old pdksh. See L<Prerequisites>.
+You have a very old pdksh. See L</Prerequisites>.
=head2 C<'errno'> - unresolved external
-You do not have MT-safe F<db.lib>. See L<Prerequisites>.
+You do not have MT-safe F<db.lib>. See L</Prerequisites>.
=head2 Problems with tr or sed
=head2 Library ... not found
-You did not run C<omflibs>. See L<Prerequisites>.
+You did not run C<omflibs>. See L</Prerequisites>.
=head2 Segfault in make
-You use an old version of GNU make. See L<Prerequisites>.
+You use an old version of GNU make. See L</Prerequisites>.
=head2 op/sprintf test failure
=item C<Cwd::change_drive(name)>
-chanes the "current" drive.
+changes the "current" drive.
=item C<Cwd::sys_is_absolute(name)>
any function in the DLL, just the act of loading this DLL will reset your
flags. What is worse, the same compiler was used to compile some HOOK DLLs.
Given that HOOK dlls are executed in the context of I<all> the applications
-in the system, this means a complete unpredictablity of floating point
+in the system, this means a complete unpredictability of floating point
flags on systems using such HOOK DLLs. E.g., F<GAMESRVR.DLL> of B<DIVE>
origin changes the floating point flags on each write to the TTY of a VIO
(windowed text-mode) applications.
shutdown will be automatically cancelled. Do not call C<perl_hmq_GET(1)>
unless you are going to process messages on an orderly basis.
-=item * Treating errors reported by OS/2 API
+=item Treating errors reported by OS/2 API
There are two principal conventions (it is useful to call them C<Dos*>
and C<Win*> - though this part of the function signature is not always
=back
-=item * Loading DLLs and ordinals in DLLs
+=item Loading DLLs and ordinals in DLLs
Some DLLs are only present in some versions of OS/2, or in some
configurations of OS/2. Some exported entry points are present only
B<REMARK>. C<LIBPATHSTRICT>, C<BEGINLIBPATH> and C<ENDLIBPATH> are
not environment variables, although F<cmd.exe> emulates them on C<SET
-...> lines. From Perl they may be accessed by L<Cwd::extLibpath> and
-L<Cwd::extLibpath_set>.
+...> lines. From Perl they may be accessed by
+L<Cwd::extLibpath|/Cwd::extLibpath([type])> and
+L<Cwd::extLibpath_set|/Cwd::extLibpath_set( path [, type ] )>.
=head2 DLL forwarder generation
with F<cmd.exe> as a shell, thus I picked up C<sh.exe>. This assures almost
100% compatibility with the scripts coming from *nix. As an added benefit
this works as well under DOS if you use DOS-enabled port of pdksh
-(see L<"Prerequisites">).
+(see L</Prerequisites>).
B<Disadvantages:> currently F<sh.exe> of pdksh calls external programs
via fork()/exec(), and there is I<no> functioning exec() on
cannot test it.
For the details of the current situation with calling external programs,
-see L<Starting OS/2 (and DOS) programs under Perl>. Set us mention a couple
+see L<Starting OSE<sol>2 (and DOS) programs under Perl>. Set us mention a couple
of features:
=over 4