summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Porting/Glossary3
-rw-r--r--README.os246
-rw-r--r--os2/diff.configure36
-rw-r--r--plan9/config.plan960
-rw-r--r--plan9/fndvers2
-rw-r--r--plan9/mkfile4
-rw-r--r--plan9/setup.rc1
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 *