Updated.
Perl 5 Porters [Fri, 30 Aug 1996 01:51:08 +0000 (01:51 +0000)]
Porting/Glossary
README.os2
os2/diff.configure
plan9/config.plan9
plan9/fndvers
plan9/mkfile
plan9/setup.rc

index f1d3e97..62818c6 100644 (file)
@@ -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
index 785a609..3af22d1 100644 (file)
@@ -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.
 
 
index f687898..5dd984c 100644 (file)
                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
        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
index d59a759..eccf2fb 100644 (file)
 #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
 
 #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.
 #undef MYMALLOC                        /**/
 
 
-#undef VMS
+#undef VMS                             /* config-skip */
 
 /* LOC_SED:
  *     This symbol holds the complete pathname to the sed program.
  *     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,
  *     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
  *     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
  */
 #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:
index ad622e7..a848de2 100644 (file)
@@ -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
index 64f9fa4..eeeb045 100644 (file)
@@ -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
 
index 6ac56df..037ecfb 100644 (file)
@@ -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 *