summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Prymmer <PPrymmer@factset.com>2001-03-12 08:25:56 -0800
committerJarkko Hietaniemi <jhi@iki.fi>2001-03-13 00:38:35 +0000
commit59c9e5d6897bd1f34e9820edbadaf05045e45612 (patch)
treef30028c24476044c105dc5c8c13db4bbb394ac14
parent2c2f421ac70f8456ea8978183ad9afb3d1054ad4 (diff)
downloadperl-59c9e5d6897bd1f34e9820edbadaf05045e45612.tar.gz
OS/390 mydomain last gasp before silly guess (was Re: What do I need to build EBCDIC perl?)
Message-ID: <Pine.OSF.4.10.10103121619020.180841-100000@aspara.forte.com> p4raw-id: //depot/perl@9113
-rwxr-xr-xConfigure7
-rw-r--r--README.os39071
-rw-r--r--hints/os390.sh21
3 files changed, 43 insertions, 56 deletions
diff --git a/Configure b/Configure
index c51e39b882..41ec18f8a8 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sat Mar 3 02:41:27 EET 2001 [metaconfig 3.0 PL70]
+# Generated on Tue Mar 13 02:35:43 EET 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
@@ -7362,6 +7362,11 @@ case "$myhostname" in
esac
;;
esac
+ case "$dflt$osname" in
+ .os390) echo "(Attempting domain name extraction from //'SYS1.TCPPARMS(TCPDATA)')"
+ dflt=.``awk '/^DOMAINORIGIN/ {print $2}' "//'SYS1.TCPPARMS(TCPDATA)'" 2>/dev/null`
+ ;;
+ esac
case "$dflt" in
.) echo "(Lost all hope -- silly guess then)"
dflt='.uucp'
diff --git a/README.os390 b/README.os390
index 25041b9518..61a97096c3 100644
--- a/README.os390
+++ b/README.os390
@@ -110,48 +110,12 @@ is nothing to worry about at all.
Some of the parser default template files in /samples are needed in /etc.
In particular be sure that you at least copy /samples/yyparse.c to /etc
before running Perl's Configure. This step ensures successful extraction
-of EBCDIC versions of parser files such as perly.c. This has to be done
-before running Configure the first time. If you failed to do so then the
-easiest way to re-Configure Perl is to delete your misconfigured build root
-and re extract the source from the tar ball. If for some reason you do not
-want to do that then, after ensuring that /etc/yyparse.c is properly in place
-run the following commands from within the Perl build directory:
-
- rm -f y.tab.c y.tab.h
- yacc -d perly.y
- mv -f y.tab.c perly.c
- chmod u+w perly.c
- sed -e '/^#include "perl\.h"/a\
- \
- #define yydebug PL_yydebug\
- #define yynerrs PL_yynerrs\
- #define yyerrflag PL_yyerrflag\
- #define yychar PL_yychar\
- #define yyval PL_yyval\
- #define yylval PL_yylval' \
- -e '/YYSTYPE *yyval;/D' \
- -e '/YYSTYPE *yylval;/D' \
- -e '/int yychar,/,/yynerrs;/D' \
- -e 's/int yydebug = 0;/yydebug = 0;/' \
- -e 's/[^_]realloc(/PerlMem_realloc(/g' \
- -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
- -e 's/y\.tab/perly/g' perly.c >perly.tmp
- mv -f perly.tmp perly.c
- mv -f y.tab.h perly.h
- cd x2p
- rm -f y.tab.c y.tab.h
- yacc a2p.y
- mv -f y.tab.c a2p.c
- chmod u+w a2p.c
- sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
- -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp
- mv -f a2p.tmp a2p.c
- mv -f y.tab.h a2p.h
- cd ..
-
-There, easy huh? If you find typing all that in difficult then perhaps
-you should reconsider the rm -rf of the perl build directory and
-re extraction of the source tar ball.
+of EBCDIC versions of parser files such as perly.c, perly.h, and x2p/a2p.c.
+This has to be done before running Configure the first time. If you failed
+to do so then the easiest way to re-Configure Perl is to delete your
+misconfigured build root and re-extract the source from the tar ball.
+Then you must ensure that /etc/yyparse.c is properly in place before
+attempting to re-run Configure.
=item *
@@ -162,6 +126,14 @@ See the comments in hints/os390.sh for more information on dynamic loading.
If you build with dynamic loading then you will need to add the
$archlibexp/CORE directory to your LIBPATH environment variable in order
for perl to work. See the config.sh file for the value of $archlibexp.
+If in trying to use Perl you see an error message similar to:
+
+ CEE3501S The module libperl.dll was not found.
+ From entry point __dllstaticinit at compile unit offset +00000194 at
+
+then your LIBPATH does not have the location of libperl.x and either
+libperl.dll or libperl.so in it. Add that directory to your LIBPATH and
+proceed.
=item *
@@ -178,6 +150,9 @@ an /etc/resolv.conf or an /etc/hosts, so that
gethostbyname() works, and make sure that the file
/etc/proto has been renamed to /etc/protocol (NOT
/etc/protocols, as used by other Unix systems).
+You may have to look for things like HOSTNAME and DOMAINORIGIN
+in the "//'SYS1.TCPPARMS(TCPDATA)'" PDS member in order to
+properly set up your /etc networking files.
=back
@@ -299,6 +274,10 @@ If you are running V2R6 or earlier then see:
for an example of how to use the "eval exec" trick to ask the shell to
have Perl run your scripts on those older releases of Unix System Services.
+If you are having trouble with square brackets then consider switching your
+rlogin or telnet client. Try to avoid older 3270 emulators and ISHELL for
+working with Perl on USS.
+
=head2 Floating point anomalies
There appears to be a bug in the floating point implementation on S/390
@@ -345,9 +324,9 @@ Pure pure (that is non xs) modules may be installed via the usual:
If you built perl with dynamic loading capability then that would also
be the way to build xs based extensions. However, if you built perl with
the default static linking you can still build xs based extensions for OS/390
-but you will need to follow the instructions in ExtUtils::MakeMaker for building
-statically linked perl binaries. In the simplest configurations building
-a static perl + xs extension boils down to:
+but you will need to follow the instructions in ExtUtils::MakeMaker for
+building statically linked perl binaries. In the simplest configurations
+building a static perl + xs extension boils down to:
perl Makefile.PL
make
@@ -421,5 +400,7 @@ Updated 15 January 2001 for the 5.7.1 release of Perl.
Updated 24 January 2001 to mention dynamic loading.
+Updated 12 March 2001 to mention //'SYS1.TCPPARMS(TCPDATA)'.
+
=cut
diff --git a/hints/os390.sh b/hints/os390.sh
index 6f4f39b0e6..4eff5a8217 100644
--- a/hints/os390.sh
+++ b/hints/os390.sh
@@ -68,10 +68,17 @@ case "$usenm" in
'') usenm='false' ;;
esac
-# Dynamic loading doesn't work on OS/390 quite yet.
-# However the easiest way to experiment with dynamic loading is with:
-# Configure -Dusedl
-# You can even override some of this with things like:
+# Setting ldflags='-Wl,EDIT=NO' will get rid of the symbol
+# information at the end of the executable (=> smaller binaries).
+# Override this option with -Dldflags='whatever else you wanted'.
+case "$ldflags" in
+'') ldflags='-Wl,EDIT=NO' ;;
+esac
+
+# In order to build with dynamic be sure to specify:
+# Configure -Dusedl
+# Do not forget to add $archlibexp/CORE to your LIBPATH.
+# You might want to override some of this with things like:
# Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs.
case "$usedl" in
'')
@@ -105,12 +112,6 @@ define)
libperl="libperl.$so"
ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"
cccdlflags='-c -Wc,dll,EXPORTALL'
- # You might add '-Wl,EDIT=NO' to get rid of the symbol
- # information at the end of the executable (=> smaller binaries).
- # Do so with -Dldflags='-Wl,EDIT=NO'.
- case "$ldflags" in
- '') ldflags='' ;;
- esac
# The following will need to be modified for the installed libperl.x.
# The modification to Config.pm is done by the installperl script after the build and test.
ccdlflags="-W l,dll `pwd`/libperl.x"