Front page | perl.perl5.porters |
Postings from January 2001
[PATCH: 5.6.1 trial2] DynaLoading for OS/390 build option
Thread Next
From:
Peter Prymmer
Date:
January 31, 2001 18:15
Subject:
[PATCH: 5.6.1 trial2] DynaLoading for OS/390 build option
Message ID:
Pine.OSF.4.10.10101311815560.336633-100000@aspara.forte.com
FWIW here is the patch that allows one to specify -Dusedl at
Configure time for OS/390 (it required that _C89_CCMODE=1 be in my
environment even with GNU make). The Makefile.SH is touched fairly heavily
by this patch so it should be considered to have some risk. Nonetheless
the "$(CC) -o $output" form is considered more strictly POSIX compliant
(although I am not a POSIX lawyer at all - this is hearsay) and the
development branch has had no trouble with using it in Makefile.SH
since about perl@8531, and Configure has used that form for a couple of
years now. At any rate here is to hoping this can be snuck in :-)
Files affected:
ext/DynaLoader/dl_dllload.xs # a new file
hints/os390.sh # modified
installperl # "
Makefile.SH # "
MANIFEST # "
Note that I have only brought OS/390 compilation and DynaLoading stuff into
Makefile.SH from the devel branch and I have left the other new extensions,
new VMS maintenance targets etc. out of this patch.
I have tested this patch on Tru64 Unix 4.0D and `make test` and `make install`
seemed to go smoothly there. I tested this patch on OS.390 R2.5 and while
`make test` has some utf-8 problems (some of which were addressed in a patch
within a previously mailed perlbug report), `make install` went smoothly and
a test build of the OS390::Stdio extension went well.
Thank you for considering it.
diff -ruN perl-5.6.1-TRIAL2.orig/ext/DynaLoader/dl_dllload.xs perl-5.6.1-TRIAL2/ext/DynaLoader/dl_dllload.xs
--- perl-5.6.1-TRIAL2.orig/ext/DynaLoader/dl_dllload.xs Wed Dec 31 16:00:00 1969
+++ perl-5.6.1-TRIAL2/ext/DynaLoader/dl_dllload.xs Wed Jan 31 16:45:47 2001
@@ -0,0 +1,189 @@
+/* dl_dllload.xs
+ *
+ * Platform: OS/390, possibly others that use dllload(),dllfree() (VM/ESA?).
+ * Authors: John Goodyear && Peter Prymmer
+ * Created: 28 October 2000
+ * Modified:
+ * 16 January 2001 - based loosely on dl_dlopen.xs.
+ */
+
+/* Porting notes:
+
+ OS/390 Dynamic Loading functions:
+
+ dllload
+ -------
+ dllhandle * dllload(const char *dllName)
+
+ This function takes the name of a dynamic object file and returns
+ a descriptor which can be used by dlllqueryfn() and/or dllqueryvar()
+ later. If dllName contains a slash, it is used to locate the dll.
+ If not then the LIBPATH environment variable is used to
+ search for the requested dll (at least within the HFS).
+ It returns NULL on error and sets errno.
+
+ dllfree
+ -------
+ int dllfree(dllhandle *handle);
+
+ dllfree() decrements the load count for the dll and frees
+ it if the count is 0. It returns zero on success, and
+ non-zero on failure.
+
+ dllqueryfn && dllqueryvar
+ -------------------------
+ void (* dllqueryfn(dllhandle *handle, const char *function))();
+ void * dllqueryvar(dllhandle *handle, const char *symbol);
+
+ dllqueryfn() takes the handle returned from dllload() and the name
+ of a function to get the address of. If the function was found
+ a pointer is returned, otherwise NULL is returned.
+
+ dllqueryvar() takes the handle returned from dllload() and the name
+ of a symbol to get the address of. If the variable was found a
+ pointer is returned, otherwise NULL is returned.
+
+ The XS dl_find_symbol() first calls dllqueryfn(). If it fails
+ dlqueryvar() is then called.
+
+ strerror
+ --------
+ char * strerror(int errno)
+
+ Returns a null-terminated string which describes the last error
+ that occurred with other functions (not necessarily unique to
+ dll loading).
+
+ Return Types
+ ============
+ In this implementation the two functions, dl_load_file() &&
+ dl_find_symbol(), return (void *). This is primarily because the
+ dlopen() && dlsym() style dynamic linker calls return (void *).
+ We suspect that casting to (void *) may be easier than teaching XS
+ typemaps about the (dllhandle *) type.
+
+ Dealing with Error Messages
+ ===========================
+ In order to make the handling of dynamic linking errors as generic as
+ possible you should store any error messages associated with your
+ implementation with the StoreError function.
+
+ In the case of OS/390 the function strerror(errno) returns the error
+ message associated with the last dynamic link error. As the S/390
+ dynamic linker functions dllload() && dllqueryvar() both return NULL
+ on error every call to an S/390 dynamic link routine is coded
+ like this:
+
+ RETVAL = dllload(filename) ;
+ if (RETVAL == NULL)
+ SaveError("%s",strerror(errno)) ;
+
+ Note that SaveError() takes a printf format string. Use a "%s" as
+ the first parameter if the error may contain any % characters.
+
+ Other comments within the dl_dlopen.xs file may be helpful as well.
+*/
+
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+#include <dll.h> /* the dynamic linker include file for S/390 */
+#include <errno.h> /* strerror() and friends */
+
+#include "dlutils.c" /* SaveError() etc */
+
+static void
+dl_private_init(pTHX)
+{
+ (void)dl_generic_private_init(aTHX);
+}
+
+MODULE = DynaLoader PACKAGE = DynaLoader
+
+BOOT:
+ (void)dl_private_init(aTHX);
+
+
+void *
+dl_load_file(filename, flags=0)
+ char * filename
+ int flags
+ PREINIT:
+ int mode = 0;
+ CODE:
+{
+ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
+ /* add a (void *) dllload(filename) ; cast if needed */
+ RETVAL = dllload(filename) ;
+ DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%lx\n", (unsigned long) RETVAL));
+ ST(0) = sv_newmortal() ;
+ if (RETVAL == NULL)
+ SaveError(aTHX_ "%s",strerror(errno)) ;
+ else
+ sv_setiv( ST(0), PTR2IV(RETVAL));
+}
+
+
+int
+dl_unload_file(libref)
+ void * libref
+ CODE:
+ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_unload_file(%lx):\n", PTR2ul(libref)));
+ /* RETVAL = (dllfree((dllhandle *)libref) == 0 ? 1 : 0); */
+ RETVAL = (dllfree(libref) == 0 ? 1 : 0);
+ if (!RETVAL)
+ SaveError(aTHX_ "%s", strerror(errno)) ;
+ DLDEBUG(2,PerlIO_printf(Perl_debug_log, " retval = %d\n", RETVAL));
+ OUTPUT:
+ RETVAL
+
+
+void *
+dl_find_symbol(libhandle, symbolname)
+ void * libhandle
+ char * symbolname
+ CODE:
+ DLDEBUG(2, PerlIO_printf(Perl_debug_log,
+ "dl_find_symbol(handle=%lx, symbol=%s)\n",
+ (unsigned long) libhandle, symbolname));
+ if((RETVAL = (void*)dllqueryfn(libhandle, symbolname)) == NULL)
+ RETVAL = dllqueryvar(libhandle, symbolname);
+ DLDEBUG(2, PerlIO_printf(Perl_debug_log,
+ " symbolref = %lx\n", (unsigned long) RETVAL));
+ ST(0) = sv_newmortal() ;
+ if (RETVAL == NULL)
+ SaveError(aTHX_ "%s",strerror(errno)) ;
+ else
+ sv_setiv( ST(0), PTR2IV(RETVAL));
+
+
+void
+dl_undef_symbols()
+ PPCODE:
+
+
+
+# These functions should not need changing on any platform:
+
+void
+dl_install_xsub(perl_name, symref, filename="$Package")
+ char * perl_name
+ void * symref
+ char * filename
+ CODE:
+ DLDEBUG(2,PerlIO_printf(Perl_debug_log, "dl_install_xsub(name=%s, symref=%lx)\n",
+ perl_name, (unsigned long) symref));
+ ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name,
+ (void(*)(pTHX_ CV *))symref,
+ filename)));
+
+
+char *
+dl_error()
+ CODE:
+ RETVAL = LastError ;
+ OUTPUT:
+ RETVAL
+
+# end.
diff -ruN perl-5.6.1-TRIAL2.orig/hints/os390.sh perl-5.6.1-TRIAL2/hints/os390.sh
--- perl-5.6.1-TRIAL2.orig/hints/os390.sh Wed Jan 31 07:56:47 2001
+++ perl-5.6.1-TRIAL2/hints/os390.sh Wed Jan 31 16:47:30 2001
@@ -3,7 +3,8 @@
# OS/390 hints by David J. Fiander <davidf@mks.com>
#
# OS/390 OpenEdition Release 3 Mon Sep 22 1997 thanks to:
-#
+#
+# John Goodyear <johngood@us.ibm.com>
# John Pfuntner <pfuntner@vnet.ibm.com>
# Len Johnson <lenjay@ibm.net>
# Bud Huff <BAHUFF@us.oracle.com>
@@ -15,53 +16,155 @@
#
# To get ANSI C, we need to use c89, and ld doesn't exist
-cc='c89'
-ld='c89'
-# To link via definition side decks we need the dll option
-cccdlflags='-W 0,dll,"langlvl(extended)"'
-# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again,
+# You can override this with Configure -Dcc=gcc -Dld=ld.
+case "$cc" in
+'') cc='c89' ;;
+esac
+case "$ld" in
+'') ld='c89' ;;
+esac
+
+# -DMAXSIG=38 maximum signal number
+# -DOEMVS is used in place of #ifdef __MVS__ in certain places.
+# -D_OE_SOCKETS alters system headers.
+# -D_XOPEN_SOURCE_EXTENDEDA alters system headers.
+# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again.
# YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant.
-# -DEBCDIC should come from Configure.
-ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC'
-# Turning on optimization breaks perl
-optimize='none'
+# -DEBCDIC should come from Configure and need not be mentioned here.
+# Prepend your favorites with Configure -Dccflags=your_favorites
+case "$ccflags" in
+'') ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
+*) ccflags="$ccflags -DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
+esac
+
+# Turning on optimization breaks perl.
+# You can override this with Configure -Doptimize='-O' or somesuch.
+case "$optimize" in
+'') optimize='none' ;;
+esac
-alignbytes=8
+# To link via definition side decks we need the dll option
+# You can override this with Configure -Ucccdlflags or somesuch.
+case "$cccdlflags" in
+'') cccdlflags='-W 0,dll' ;;
+esac
-usemymalloc='n'
+case "$so" in
+'') so='a' ;;
+esac
-so='a'
+case "$alignbytes" in
+'') alignbytes=8 ;;
+esac
+
+case "$usemymalloc" in
+'') usemymalloc='n' ;;
+esac
# On OS/390, libc.a doesn't really hold anything at all,
# so running nm on it is pretty useless.
-usenm='n'
+# You can override this with Configure -Dusenm.
+case "$usenm" in
+'') usenm='false' ;;
+esac
-# Dynamic loading doesn't work on OS/390 quite yet
-usedl='n'
-dlext='none'
-
-# Configure can't figure this out for some reason
-d_shmatprototype='define'
-
-usenm='false'
-i_time='define'
-i_systime='define'
+# 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:
+# Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs.
+case "$usedl" in
+'')
+ usedl='n'
+ case "$dlext" in
+ '') dlext='none' ;;
+ esac
+ ;;
+define)
+ case "$useshrplib" in
+ '') useshrplib='true' ;;
+ esac
+ case "$dlsrc" in
+ '') dlsrc='dl_dllload.xs' ;;
+ esac
+ # For performance use 'so' at or beyond v2.8, 'dll' for 2.7 and prior versions
+ case "`uname -v`x`uname -r`" in
+ 02x0[89].*|02x1[0-9].*|[0-9][3-9]x*)
+ so='so'
+ case "$dlext" in
+ '') dlext='so' ;;
+ esac
+ ;;
+ *)
+ so='dll'
+ case "$dlext" in
+ '') dlext='dll' ;;
+ esac
+ ;;
+ esac
+ 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"
+ lddlflags="-W l,dll `pwd`/libperl.x"
+ ;;
+esac
+# even on static builds using LIBPATH should be OK.
+case "$ldlibpthname" in
+'') ldlibpthname=LIBPATH ;;
+esac
+
+# Header files to include.
+# You can override these with Configure -Ui_time -Ui_systime.
+case "$i_time" in
+'') i_time='define' ;;
+esac
+case "$i_systime" in
+'') i_systime='define' ;;
+esac
# (from aix.sh)
# uname -m output is too specific and not appropriate here
# osname should come from Configure
-#
+# You can override this with Configure -Darchname='s390' but please don't.
case "$archname" in
'') archname="$osname" ;;
esac
-archobjs=ebcdic.o
+# Architecture related object files.
+# ebcdic.c contains special \cX mapping code for EBCDIC char sets.
+# Prepend your preference with Configure -Darchobs=your_preference.o.
+case "$archname" in
+'') archobjs="ebcdic.o" ;;
+*) archobjs="$archobjs ebcdic.o" ;;
+esac
-# We have our own cppstdin.
-echo 'cat >.$$.c; '"$cc"' -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
+# We have our own cppstdin script. This is not a variable since
+# Configure sees the presence of the script file.
+# We put system header -D definitions in so that Configure
+# can find the shmat() prototype in <sys/shm.h> and various
+# other things. Unfortunately, cppflags occurs too late to be of
+# value external to the script. This may need to be revisited
+# under a compiler other than c89.
+case "$usedl" in
+define)
+echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -D_SHR_ENVIRON -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
+ ;;
+*)
+echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
+ ;;
+esac
#
-# Note that Makefile.SH employs a bare yacc to generate
+# Note that Makefile.SH employs a bare yacc command to generate
# perly.[hc] and a2p.[hc], hence you may wish to:
#
# alias yacc='myyacc'
diff -ruN perl-5.6.1-TRIAL2.orig/installperl perl-5.6.1-TRIAL2/installperl
--- perl-5.6.1-TRIAL2.orig/installperl Wed Jan 31 07:56:47 2001
+++ perl-5.6.1-TRIAL2/installperl Wed Jan 31 16:44:35 2001
@@ -116,7 +116,7 @@
# print "[$_]\n" for sort keys %archpms;
my $ver = $Config{version};
-my $release = substr($],0,3); # Not used presently.
+my $release = substr($],0,3); # Not used currently.
my $patchlevel = substr($],3,2);
die "Patchlevel of perl ($patchlevel)",
"and patchlevel of config.sh ($Config{'PERL_VERSION'}) don't match\n"
@@ -136,6 +136,15 @@
my $so = $Config{so};
my $dlext = $Config{dlext};
my $dlsrc = $Config{dlsrc};
+if ($^O eq 'os390') {
+ my $usedl = $Config{usedl};
+ if ($usedl eq 'define') {
+ my $pwd;
+ chomp($pwd=`pwd`);
+ my $archlibexp = $Config{archlibexp};
+ `./$^X -pibak -e 's{$pwd\/libperl.x}{$archlibexp/CORE/libperl.x}' lib/Config.pm`;
+ }
+}
my $d_dosuid = $Config{d_dosuid};
my $binexp = $Config{binexp};
diff -ruN perl-5.6.1-TRIAL2.orig/Makefile.SH perl-5.6.1-TRIAL2/Makefile.SH
--- perl-5.6.1-TRIAL2.orig/Makefile.SH Wed Jan 31 07:56:47 2001
+++ perl-5.6.1-TRIAL2/Makefile.SH Wed Jan 31 16:35:19 2001
@@ -26,6 +26,7 @@
linklibperl='$(LIBPERL)'
shrpldflags='$(LDDLFLAGS)'
ldlibpth=''
+DPERL_EXTERNAL_GLOB='-DPERL_EXTERNAL_GLOB'
case "$useshrplib" in
true)
# Prefix all runs of 'miniperl' and 'perl' with
@@ -76,6 +77,11 @@
hpux*)
linklibperl="-L `pwd | sed 's/\/UU$//'` -Wl,+s -Wl,+b$archlibexp/CORE -lperl"
;;
+ os390*)
+ shrpldflags='-W l,dll'
+ linklibperl='libperl.x'
+ DPERL_EXTERNAL_GLOB=''
+ ;;
esac
case "$ldlibpthname" in
'') ;;
@@ -299,12 +305,16 @@
FORCE:
@sh -c true
-opmini$(OBJ_EXT): op.c config.h
- $(RMS) opmini.c
- $(LNS) op.c opmini.c
- $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB opmini.c
- $(RMS) opmini.c
+!NO!SUBS!
+$spitshell >>Makefile <<!GROK!THIS!
+opmini\$(OBJ_EXT): op.c config.h
+ \$(RMS) opmini.c
+ \$(LNS) op.c opmini.c
+ \$(CCCMD) \$(PLDLFLAGS) $DPERL_EXTERNAL_GLOB opmini.c
+ \$(RMS) opmini.c
+!GROK!THIS!
+$spitshell >>Makefile <<'!NO!SUBS!'
miniperlmain$(OBJ_EXT): miniperlmain.c
$(CCCMD) $(PLDLFLAGS) $*.c
@@ -404,7 +414,7 @@
case "$useshrplib" in
true)
$spitshell >>Makefile <<'!NO!SUBS!'
- $(LD) $(SHRPLDFLAGS) -o $@ perl$(OBJ_EXT) $(obj)
+ $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj)
!NO!SUBS!
case "$osname" in
aix)
@@ -469,16 +479,16 @@
$spitshell >>Makefile <<'!NO!SUBS!'
perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) purify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) purify $(CC) -o pureperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) purecov $(CC) -o purecovperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) quantify $(CC) -o quantperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
# This version, if specified in Configure, does ONLY those scripts which need
# set-id emulation. Suidperl must be setuid root. It contains the "taint"
@@ -486,7 +496,7 @@
# has been invoked correctly.
suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) $(CC) -o suidperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
!NO!SUBS!
@@ -494,7 +504,7 @@
$spitshell >>Makefile <<'!NO!SUBS!'
-sperl$(OBJ_EXT): perl.c perly.h patchlevel.h $(h)
+sperl$(OBJ_EXT): perl.c $(h)
$(RMS) sperl.c
$(LNS) perl.c sperl.c
$(CCCMD) -DIAMSUID sperl.c
@@ -748,7 +758,7 @@
# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
# for that spot.
-lint: perly.c $(c)
+lint: $(c)
lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz
# Need to unset during recursion to go out of loop.
diff -ruN perl-5.6.1-TRIAL2.orig/MANIFEST perl-5.6.1-TRIAL2/MANIFEST
--- perl-5.6.1-TRIAL2.orig/MANIFEST Wed Jan 31 07:56:47 2001
+++ perl-5.6.1-TRIAL2/MANIFEST Wed Jan 31 16:39:11 2001
@@ -238,6 +238,7 @@
ext/DynaLoader/dl_aix.xs AIX implementation
ext/DynaLoader/dl_beos.xs BeOS implementation
ext/DynaLoader/dl_dld.xs GNU dld style implementation
+ext/DynaLoader/dl_dllload.xs S/390 dllload() style implementation
ext/DynaLoader/dl_dlopen.xs BSD/SunOS4&5 dlopen() style implementation
ext/DynaLoader/dl_dyld.xs NeXT/Apple dyld implementation
ext/DynaLoader/dl_hpux.xs HP-UX implementation
End of Patch.
Peter Prymmer
Thread Next
-
[PATCH: 5.6.1 trial2] DynaLoading for OS/390 build option
by Peter Prymmer