diff options
-rw-r--r-- | Porting/Glossary | 3 | ||||
-rw-r--r-- | README.os2 | 46 | ||||
-rw-r--r-- | os2/diff.configure | 36 | ||||
-rw-r--r-- | plan9/config.plan9 | 60 | ||||
-rw-r--r-- | plan9/fndvers | 2 | ||||
-rw-r--r-- | plan9/mkfile | 4 | ||||
-rw-r--r-- | plan9/setup.rc | 1 |
7 files changed, 95 insertions, 57 deletions
diff --git a/Porting/Glossary b/Porting/Glossary index f1d3e97007..62818c69d1 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -1214,7 +1214,8 @@ sh (sh.U): This variable contains the full pathname of the shell used 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. + /bin/pdksh, /bin/ash, /bin/bash, or even something such as + D:/bin/sh.exe. This unit comes before Options.U, so you can't set sh with a -D option, though you can override this (and startsh) with -O -Dsh=/bin/whatever -Dstartsh=whatever diff --git a/README.os2 b/README.os2 index 785a6098bb..3af22d14da 100644 --- a/README.os2 +++ b/README.os2 @@ -4,6 +4,7 @@ Contents: Target Binary Install Reading the docs + Quieting warnings Notes on build on OS/2 Compile summary Tests which fail @@ -13,7 +14,7 @@ Contents: Notes on the patch: ~~~~~~~~~~~~~~~~~~~ -patches should be applied as +patches in ./os2 should be applied as patch -p0 <..... All the diff.* files and POSIX.mkfifo should be applied. @@ -32,7 +33,7 @@ caching DLLs. In particular, it is VERY IMPORTANT to have a correct perl.dll on LIBPATH during build, otherwise DLLs with wrong names will be -created. Or have a perl.dll with the same naming convention for DLLs +created. Either have a perl.dll with the same naming convention for DLLs (hopefully, it should not change any time soon), or remove it from LIBPATH, add . to LIBPATH, wait until the build of DynaLoader fails, and then move the built DLL into LIBPATH. @@ -44,6 +45,9 @@ so make sure you access Perl from one thread only). In particular, it is no longer needed to statically link X11_s.lib if you compile Perl/Tk/XFree. +Note however, that current Perl malloc is NOT MT-safe, and your extension +will use Perl malloc if perl does (as the default built does). + This newer port includes . numeric first argument to system(), see OS2::Process docs; . modules OS2::Process, OS2::REXX, OS2::PrfDB, OS2::ExtAttrib. @@ -57,7 +61,7 @@ Target: This is not supposed to make a perfect Perl on OS/2. This patch is concerned only with perfect _build_ of Perl on OS/2. Some good -features from Andreas Kaiser port missed this port. However, most of +features from Andreas Kaiser port may have missed this port. However, most of the features are available (possibly in different form). !!! Note that [gs]etpriority functions in this port are compatible @@ -87,8 +91,8 @@ that a module is missing, then perl will try to scan the builtin directories nevertheless. If perl was intended to be installed on f:/perllib, but your f: is a CDROM, then you may have some trouble. b2) Best: binary edit perl.dll and perl_.exe (using perl -itself as a binary editor) to fix the paths. Note that the new paths -should be better no longer than the old. +itself as a binary editor) to fix the paths. Note that for best results ;-) +the new paths should be no longer than the old. b3) More convinient: set PERLLIB_PREFIX environment variable. It should contain two components, separated by whitespace and/or semicolon `;'. The first component is translated to the second @@ -100,6 +104,14 @@ Say, if you install perllibrary into c:/lib/perl/ instead of f:/perllib/, set it to set PERLLIB_PREFIX=f:/perllib/;c:/lib/perl/ +!!!! Note that if you have bin/sh.exe or Perl library in non-standard +!!!! location, you need to hand-edit Config.pm. The last time I +!!!! checked one should have scaned this file for `f:' and/or `F:' to find +!!!! all the entries to fix. + +!!!!!!!!!!!!! Somebody should write an install script which would auto-edit +!!!!!!!!!!!!! Config.pm. + Reading the docs: ~~~~~~~~~~~~~~~~ If your `man' is correctly installed, you should just add @@ -132,6 +144,11 @@ net, as usual, .INF is available on CPAN/.../os2/ilyaz. There are also _very_ good docs in TexInfo and Adobe PDF format. +Quieting warnings: +~~~~~~~~~~~~~~~~~ +Set environment variables PERL_BADFREE and/or PERL_BADLANG to 0 to +quiet the corresponding warnings. + Notes on build on OS/2: ~~~~~~~~~~~~~~~~~~~~~~~ a) Make sure your sort is not the broken OS/2 one, and that you have /tmp @@ -148,6 +165,9 @@ or c) Necessary manual intervention when compiling on OS/2: Need to put perl.dll on LIBPATH after it is created. + I also have seen errors building ext/OS2/*/, during + generation of manpages, if there is a conflict of perl.exe + and perl.dll. It is safe to ignore these errors. d) Compile summary: ~~~~~~~~~~~~~~~ @@ -179,17 +199,12 @@ make test # To run finer tests, cd t && perl harness make install -e) At the end of July 1996 GNU make was too buggy for compile. -The maintainer has the patch (for a year now) that make it possible to -compile perl. The binaries are included in - ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2 -patches are available too. - -Note that the pdksh5.2.7 or later is required. +e) At the end of August 1996 GNU make 3.74 is OK. + Note that the pdksh5.2.7 or later is required. !!!!!!!!!!!!!!!!! If you see that some '/' became '\' in pdksh, you use an old pdksh! -Same with segfaults in Make 3.76 (?) - use my patched verions. +Same with segfaults in Make 3.7? - use my patched verions. !!!!!!!!!!!!!!!!! f) As distributed the DB library db.a-db.lib is not suitable for @@ -202,11 +217,14 @@ If you see: it means you use a wrong db.lib. !!!!!!!!!!!!!!!! +g) Make sure your gcc is good for -Zomf linking: run `omflibs' script in +/emx/lib directory. + Problems reported: a) one of the latest tr is broken, get an old one :-( 1.11 works. (On compuserver?) -b) You need a perlglob.exe and link386. +b) You need link386. c) Get rid of invalid perl.dll on your LIBPATH. diff --git a/os2/diff.configure b/os2/diff.configure index f687898f0c..5dd984c10a 100644 --- a/os2/diff.configure +++ b/os2/diff.configure @@ -288,25 +288,6 @@ cryptlib=-lcrypt fi *************** -*** 5198,5205 **** - EOM - : Call the object file tmp-dyna.o in case dlext=o. - if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && -! mv dyna.o tmp-dyna.o > /dev/null 2>&1 && -! $ld $lddlflags -o dyna.$dlext tmp-dyna.o > /dev/null 2>&1 && - $cc $ccflags $ldflags $cccdlflags $ccdlflags fred.c -o fred $libs > /dev/null 2>&1; then - xxx=`./fred` - case $xxx in ---- 5213,5220 ---- - EOM - : Call the object file tmp-dyna.o in case dlext=o. - if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && -! mv dyna$obj_ext tmp-dyna$obj_ext > /dev/null 2>&1 && -! $ld $lddlflags -o dyna.$dlext tmp-dyna$obj_ext > /dev/null 2>&1 && - $cc $ccflags $ldflags $cccdlflags $ccdlflags fred.c -o fred $libs > /dev/null 2>&1; then - xxx=`./fred` - case $xxx in -*************** *** 5355,5361 **** EOCP : check sys/file.h first to get FREAD on Sun @@ -415,23 +396,6 @@ else dflt='8' *************** -*** 7080,7086 **** - '') obj_ext='.o';; - esac - case "$path_sep" in -! '') path_sep=':';; - esac - : Which makefile gets called first. This is used by make depend. - case "$firstmakefile" in ---- 7095,7101 ---- - '') obj_ext='.o';; - esac - case "$path_sep" in -! '') path_sep="$p_";; - esac - : Which makefile gets called first. This is used by make depend. - case "$firstmakefile" in -*************** *** 7120,7126 **** } EOCP diff --git a/plan9/config.plan9 b/plan9/config.plan9 index d59a75933b..eccf2fb1b3 100644 --- a/plan9/config.plan9 +++ b/plan9/config.plan9 @@ -748,6 +748,15 @@ #define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base) #endif +/* FILE_filbuf: + * This macro is used to access the internal stdio _filbuf function + * (or equivalent), if STDIO_CNT_LVALUE and STDIO_PTR_LVALUE + * are defined. It is typically either _filbuf or __filbuf. + * This macro will only be defined if both STDIO_CNT_LVALUE and + * STDIO_PTR_LVALUE are defined. + */ +#undef FILE_filbuf + /* HAS_STRCHR: * This symbol is defined to indicate that the strchr()/strrchr() * functions are available for string searching. If not, try the @@ -1305,7 +1314,7 @@ #define OSNAME "plan9" -#define BIN_SH "/bin/rc" +#define BIN_SH "/bin/rc" /* config-skip */ /* MYMALLOC: * This symbol, if defined, indicates that we're using our own malloc. @@ -1313,7 +1322,7 @@ #undef MYMALLOC /**/ -#undef VMS +#undef VMS /* config-skip */ /* LOC_SED: * This symbol holds the complete pathname to the sed program. @@ -1325,6 +1334,7 @@ * in programs that are not prepared to deal with ~ expansion at run-time. */ #define ARCHLIB_EXP "/_P9P_OBJTYPE/lib/perl/_P9P_VERSION" +#define ARCHLIB "/_P9P_OBJTYPE/lib/perl/_P9P_VERSION" /* BYTEORDER: * This symbol hold the hexadecimal constant defined in byteorder, @@ -1488,12 +1498,14 @@ * run-time. */ #undef OLDARCHLIB_EXP /**/ +#undef OLDARCHLIB /**/ /* 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_EXP "/sys/lib/perl" /* */ +#define PRIVLIB "/sys/lib/perl" /* */ /* SIG_NAME: * This symbol contains a list of signal names in order of @@ -1531,12 +1543,14 @@ * in programs that are not prepared to deal with ~ expansion at run-time. */ #define SITELIB_EXP "/sys/lib/perl/site_perl" /* */ +#define SITELIB "/sys/lib/perl/site_perl" /* */ /* 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_EXP "/_P9P_OBJTYPE/lib/perl/_P9P_VERSION/site_perl" /* */ +#define SITEARCH "/_P9P_OBJTYPE/lib/perl/_P9P_VERSION/site_perl" /* */ /* STARTPERL: * This variable contains the string to put in front of a perl @@ -1545,6 +1559,48 @@ */ #define STARTPERL "#!/bin/perl" /**/ +/* SH_PATH: + * Just here to shut up compiler warnings. +*/ +#define SH_PATH "/bin/rc" /**/ + +#define PERLIO_IS_STDIO /* config-skip */ +#undef I_SFIO + +/* 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. + */ +#undef USE_PERLIO /**/ + +/* USE_SFIO: + * This symbol, if defined, indicates that sfio should + * be used. + */ +#undef USE_SFIO /**/ + + +/* 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_WAIT: + * This symbol, if defined, indicates to the C program that it should + * include <sys/wait.h>. + */ +#define I_SYS_WAIT /**/ + +/* 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. + */ +#undef I_VALUES /**/ + /* VOIDFLAGS: * This symbol indicates how much support of the void type is given by this * compiler. What various bits mean: diff --git a/plan9/fndvers b/plan9/fndvers index ad622e7fe8..a848de2b6d 100644 --- a/plan9/fndvers +++ b/plan9/fndvers @@ -2,7 +2,7 @@ . plan9/buildinfo -ed config.plan9 <<! +ed plan9/config.plan9 <<! g/_P9P_VERSION/s//$p9pvers/g g/_P9P_OBJTYPE/s//$objtype/g w config.h diff --git a/plan9/mkfile b/plan9/mkfile index 64f9fa46b7..eeeb045a4b 100644 --- a/plan9/mkfile +++ b/plan9/mkfile @@ -31,7 +31,7 @@ ext_xs = IO.xs Socket.xs Opcode.xs dl_none.xs Fcntl.xs FileHandle.xs POSIX.xs ext_c = ${ext_xs:%.xs=%.c} ext_obj = ${ext_xs:%.xs=%.$O} -obj = gv.$O toke.$O perly.$O op.$O regcomp.$O dump.$O util.$O mg.$O hv.$O av.$O run.$O pp_hot.$O sv.$O pp.$O scope.$O pp_ctl.$O pp_sys.$O doop.$O doio.$O regexec.$O taint.$O deb.$O globals.$O plan9.$O universal.$O +obj = gv.$O toke.$O perly.$O op.$O regcomp.$O dump.$O util.$O mg.$O hv.$O av.$O run.$O pp_hot.$O sv.$O pp.$O scope.$O pp_ctl.$O pp_sys.$O doop.$O doio.$O regexec.$O taint.$O deb.$O globals.$O plan9.$O universal.$O perlio.$O OBJS = perl.$O $obj @@ -65,7 +65,7 @@ perlmain.$O: config.h perlmain.c perlmain.c: miniperl vms/writemain.pl ./miniperl vms/writemain.pl $extensions -config.h: config.plan9 plan9/fndvers +config.h: plan9/fndvers plan9/fndvers cp config.h $archlib/CORE diff --git a/plan9/setup.rc b/plan9/setup.rc index 6ac56dfe99..037ecfb25c 100644 --- a/plan9/setup.rc +++ b/plan9/setup.rc @@ -22,7 +22,6 @@ if (test ! -d $sourcedir) mkdir $sourcedir #Populate source directory echo Building source directories ... {cd $builddir ; tar c .} | { cd $sourcedir ; tar x} -cp $builddir/plan9/config.plan9 $sourcedir/config.plan9 cp $builddir/plan9/plan9.c $builddir/plan9/plan9ish.h $builddir/plan9/mkfile $sourcedir cd $sourcedir/lib ; rm -rf * |