diff options
author | Tim Bunce <Tim.Bunce@ig.co.uk> | 1997-08-07 00:00:00 +0000 |
---|---|---|
committer | Tim Bunce <Tim.Bunce@ig.co.uk> | 1997-08-07 00:00:00 +0000 |
commit | 8490252049bf42d3d2f75d89178a8682bf22ba74 (patch) | |
tree | 71550615591dde7ae3fdf7f2e1be055faf33675e /vms | |
parent | 59586d7795db81c5ffcd935ba8614353199c2a71 (diff) | |
download | perl-8490252049bf42d3d2f75d89178a8682bf22ba74.tar.gz |
[inseperable differences up to perl 5.004_02]perl-5.004_02
[editor's note - this list of differences was built manually, so is
either a little inaccurate or the most well preened out of the
"unapplied changes" lists so far. It certainly didn't get the usual
injection of message bodies.
The aim of these changes is to give you a vector for finding a list
message if you have an annotate operation hit this commit]
------ BUILD PROCESS ------
Title: "[PATCH]: HP-UX 10 w/o transition links"
From: Jeff Okamoto <okamoto@hpcc123.corp.hp.com>
Msg-ID: <199706231650.AA070364627@hpcc123.corp.hp.com>
Files: Configure
Title: "INSTALL updates for GNU ld and __inet_* errors"
From: Andy Dougherty <doughera@newton.phys.lafayette.edu>
Files: INSTALL
------ CORE LANGUAGE ------
Title: "[PATCH] Additional patch for "Can't execute ...""
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Msg-ID: <199707191651.MAA04897@monk.mps.ohio-state.edu>
Files: pod/perldiag.pod perl.c
See 21fc060b433a5fd003b9aca5789342207c46ada4 and
2a92aaa05aa1acbf01092228d30e9b1d7b2a3f61
Title: "[PATCH] Re: Can't pack literals as pointers"
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Msg-ID: <199708012250.SAA20278@aatma.engin.umich.edu>
Files: pod/perldiag.pod pod/perlfunc.pod pp.c t/op/pack.t
On Wed, 25 Jun 1997 00:23:18 GMT, John Tobey wrote:
>
>IMHO, pack("p","foo") should evaluate to a pointer that's valid
>in the current context. pack("p",undef) should return the NULL
>value. Currently, they both produce the error "Modification of a
>read-only value attempted".
>
>This looks pretty easy to fix, so I've prepared a diff against
>the 5.004_01 distribution. This tests fine on my Linux. I hope
>I'm not introducing a memory leak or other ailment...
That doesn't look quite right to me. When provided a literal, you
should point at the actual literal (which normally has a global
lifetime), rather than making a mortal copy of it and pointing at
that. The mortal copy will be destroyed at the next statement
boundary, and you'll be left with a dangling pointer when you
unpack().
You're doing the very thing the XXX comment above was intended to
highlight.
I do agree that literals should be pack('p')-able. So, I'd suggest
the change be modified [...]
Title: "One-liner regex causes SEGV on 5.003 under HP-UX and Linux"
From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
Msg-ID: <199707061144.MAA04443@crypt.compulink.co.uk>
Files: regexec.c t/op/re_tests
[was originally credited as the same change as
44ed422101809141bc33c2b85c1cff357de4d7bf]
Title: "Free temps before calling END blocks", "Too late destruction"
From: Chip Salzenberg <chip@rio.atlantic.net>
Msg-ID: <m33erfv5hx.fsf@chany-p100.emwp.com>
Files: perl.c
Title: "Forbid "goto" into middle of foreach loop"
From: Chip Salzenberg <chip@rio.atlantic.net>
Files: pod/perldiag.pod pp_ctl.c
Title: "[PATCH] m2t2: problem in NetBSD 1.2D with sfio"
From: Jarkko Hietaniemi <jhi@iki.fi>
Files: perl.h
Title: "Forbid negative splice offset beyond array start"
From: "John L. Allen" <allen@gateway.grumman.com>, Chip Salzenberg
<chip@rio.atlantic.net>
Msg-ID: <Pine.SOL.3.91.970625111744.19300A-100000@gateway>
Files: pp.c
Title: "Fix memory leak on eval 'sub {}'"
From: Chip Salzenberg <chip@rio.atlantic.net>
Files: pp_ctl.c
Title: "Fix C<qq #hi#>"
From: Chip Salzenberg <chip@rio.atlantic.net>
Files: toke.c
Title: "Don't warn about "${foo}" in string, even if &foo exists"
From: Chip Salzenberg <chip@rio.atlantic.net>
Files: toke.c
Title: "Perldb internal flag rehaul"
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pod/perldebug.pod pod/perlvar.pod perl.h gv.c mg.c op.c perl.c
pp_ctl.c pp_hot.c pp_sys.c sv.c toke.c
Title: "Fix C<print $foo x 2> parsing"
From: "Chuck D. Phillips (NON-HP Employee)" <cdp@hpescdp.fc.hp.com>, Chip
Salzenberg <chip@rio.atlantic.net>
Msg-ID: <199706121737.KAA00503@palrel3.hp.com>
Files: toke.c
Title: "Fix lockf_emulate_flock() positioning"
From: Chip Salzenberg <chip@rio.atlantic.net>, gen@atd.rdc.ricoh.co.jp
Msg-ID: <199706091132.UAA00895@wampa.atd.rdc.ricoh.co.jp>
Files: pp_sys.c
Title: "[PATCH] Make DEBUGGING_MSTATS info consistent"
From: Andy Dougherty <doughera@newton.phys.lafayette.edu>
Msg-ID: <Pine.SUN.3.96.970731131529.3740A-100000@newton.phys>
Files: INSTALL pod/perldelta.pod perl.h
Title: "semctl broken under Linux"
From: Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>, Andreas
Schwab <schwab@issan.informatik.uni-dortmund.de>, Graham
Barr <gbarr@ti.com>, Tim Bunce <Tim.Bunce@ig.co.uk>
Msg-ID: <33C38291.2D9302DA@ti.com>,
<9707040912.AA03470@issan.informatik.uni-dortmund.de>,
<9707041538.AA08946@toad.ig.co.uk>,
<9707070924.AA11774@issan.informatik.uni-dortmund.de>,
<9707090933.AA19012@issan.informatik.uni-dortmund.de>
Files: doio.c
[one change made it, as 8e591e46b4c6543ed80895327199c4a628ce11b6]
Title: "One-liner regex causes SEGV on 5.003 under HP-UX and Linux"
From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
Msg-ID: <199707061144.MAA04443@crypt.compulink.co.uk>
Files: regexec.c t/op/re_tests
[was originally credited as the same change as
44ed422101809141bc33c2b85c1cff357de4d7bf]
Title: "Fix up problems with *DBM tests"
From: Paul Marquess <pmarquess@bfsec.bt.co.uk>
Files: t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t t/lib/sdbm.t
Title: "Faster int to string conversion",
"[PATCH} Re: memory leak in buffer
safety code"
From: Chip Salzenberg <chip@rio.atlantic.net>, Hugo van der Sanden
<hv@crypt.compulink.co.uk>, Tim Bunce <Tim.Bunce@ig.co.uk>
Msg-ID: <199707140912.KAA09935@crypt.compulink.co.uk>,
<199707142050.QAA20976@rio.atlantic.net>,
<199707182035.VAA20990@crypt.compulink.co.uk>,
<9707151040.AA02883@toad.ig.co.uk>
Files: global.sym sv.c
Title: "Fix '-' flag on sprintf() of floats"
From: Chip Salzenberg <chip@rio.atlantic.net>, Jarkko Hietaniemi
<jhi@iki.fi>
Msg-ID: <199705270646.JAA02510@alpha.hut.fi>
Files: sv.c
Title: "Don't use atol() for unsigned values", "signedness problem in
pack("N", "value");"
From: Chip Salzenberg <chip@rio.atlantic.net>, Roger Espel Llima
<espel@llaic.univ-bpclermont.fr>
Msg-ID: <19970531200007.40218@llaic.univ-bpclermont.fr>
Files: sv.c
Title: "Perldb internal flag rehaul"
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pod/perldebug.pod pod/perlvar.pod perl.h gv.c mg.c op.c perl.c
pp_ctl.c pp_hot.c pp_sys.c sv.c toke.c
Title: "[PATCH] Exporter new export_to_level method"
From: epeschko@elmer.tci.com (Ed Peschko)
Files: lib/Exporter.pm
Title: "[MM] Small patch to MakeMaker, new release"
From: "Andreas J. Koenig" <k@anna.in-berlin.de>
Msg-ID: <199706281603.SAA10869@anna.in-berlin.de>
Files: lib/ExtUtils/Command.pm lib/ExtUtils/Install.pm
lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Mksymlists.pm
Title: "CPAN.pm, $VERSION and nested (bundled) modules."
From: a.koenig@kulturbox.de (Andreas J. Koenig)
Files: lib/ExtUtils/Install.pm lib/ExtUtils/Liblist.pm
lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/Mksymlists.pm
Title: "Time::Local patch (plus perl.c and filehand.t)"
From: ilya@math.ohio-state.edu (Ilya Zakharevich)
Files: lib/Time/Local.pm perl.c t/lib/filehand.t
Title: "Slightly safer signals"
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: mg.c perl.c
Title: "Perldb internal flag rehaul"
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pod/perldebug.pod pod/perlvar.pod perl.h gv.c mg.c op.c perl.c
pp_ctl.c pp_hot.c pp_sys.c sv.c toke.c
Title: "'use UNIVERSAL;' deprecated, do C<UNIVERSAL::isa()> instead",
"UNIVERSAL.pm and import methods"
From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Gisle Aas <aas@bergen.sn.no>,
Graham Barr <gbarr@ti.com>, Gurusamy Sarathy
<gsar@engin.umich.edu>, Hugo van der Sanden
<hv@crypt.compulink.co.uk>
Msg-ID: <199706271701.NAA25664@aatma.engin.umich.edu>,
<199706271904.UAA00120@crypt.compulink.co.uk>,
<199706272054.QAA28913@aatma.engin.umich.edu>,
<199706301554.LAA03763@aatma.engin.umich.edu>,
<33B22248.7D7C1985@ti.com>,
<E0wf5TN-0006ps-00@taurus.cus.cam.ac.uk>,
<E0wguTR-0005bs-00@ursa.cus.cam.ac.uk>,
<E0whaZJ-0007BA-00@ursa.cus.cam.ac.uk>,
<E0whfHh-0007bW-00@ursa.cus.cam.ac.uk>,
<E0wiyUG-00073j-00@taurus.cus.cam.ac.uk>,
<hiuyv6q9k.fsf@bergen.sn.no>
Files: lib/Class/Struct.pm lib/File/Compare.pm lib/File/Copy.pm
t/op/universal.t universal.c
[two changes made it, as
d704f39a0db2dc23790dfd9d7bd59ce9928a6e2c,
e09f3e01ccd721309f0eb0aae224d84db2e8436a]
------ PORTABILITY - WIN32 ------
Title: "[PATCH] Embedding threaded apps in perl.dll"
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Msg-ID: <199707261518.LAA24346@aatma.engin.umich.edu>,
<199707301833.OAA19570@aatma.engin.umich.edu>
Files: win32/win32.c
[one change made it, as
4dd614da4d1132b957c4951dd00f64d81b89dc20]
Title: "minor win32 scribbles"
From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
Msg-ID: <199707270832.JAA19399@crypt.compulink.co.uk>
Files: README.win32
[nitpicking f7c603cbfba7c97f77e257c42aa119ffdb47fe1e]
Title: "[PATCH] binary coexistence on win32", "[RESEND] [PATCH] binary
coexistence on win32"
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Msg-ID: <199707250109.VAA02666@aatma.engin.umich.edu>,
<199707301829.OAA19516@aatma.engin.umich.edu>
Files: lib/ExtUtils/Mksymlists.pm win32/win32.h win32/win32io.h
win32/win32iop.h win32/makedef.pl win32/win32.c
win32/win32io.c
Title: "WIN32 Build - pod2xxx.bat Missing?", "[PATCH] Re: WIN32 Build -
pod2xxx.bat Missing?"
From: Chris Williams <chrisw@netinfo.com.au>, Gurusamy Sarathy
<gsar@engin.umich.edu>
Msg-ID: <199707011423.KAA15855@aatma.engin.umich.edu>,
<33B8B962.D96FA1F5@netinfo.com.au>
Files: win32/Makefile win32/makefile.mk
Title: "[PATCH] docs for win32 utilities"
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Msg-ID: <199707250045.UAA02510@aatma.engin.umich.edu>
Files: win32/bin/pl2bat.bat win32/bin/runperl.bat
Title: "[PATCH] trial2: some batch files won't run"
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Msg-ID: <199708040226.WAA17301@aatma.engin.umich.edu>
Files: win32/bin/pl2bat.bat win32/bin/runperl.bat
Title: "[PATCH] win32 extras and embedding"
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Msg-ID: <199707250232.WAA03421@aatma.engin.umich.edu>,
<199707301831.OAA19528@aatma.engin.umich.edu>
Files: dosish.h win32/win32.h perl.c win32/config.bc win32/config_H.bc
win32/makedef.pl win32/perllib.c win32/win32.c
[one change was applied (hastily), as
ad2e33dc060dc2ccf73a5ff1557a69a9b09c30c8]
------ PORTABILITY - OTHER ------
Title: "Additional OS/2 patches"
From: Gurusamy Sarathy <gsar@engin.umich.edu>, Ilya Zakharevich
<ilya@math.ohio-state.edu>
Msg-ID: <199708020823.EAA19521@monk.mps.ohio-state.edu>,
<199708021424.KAA28561@aatma.engin.umich.edu>,
<199708042108.RAA27671@aatma.engin.umich.edu>
Files: README.os2 os2/Changes perl.c
[one change was applied, as
d8c2d278168b862ff4120ad8e5887d37d31f858b]
Title: "make depend loop fix and minor OS/2 improvements to build process"
From: ilya@math.ohio-state.edu (Ilya Zakharevich)
Files: Makefile.SH hints/os2.sh os2/Makefile.SHs
Title: "Minor VMS patches"
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Msg-ID: <01ILCUO6XXTE000WFK@hmivax.humgen.upenn.edu>
Files: lib/ExtUtils/MM_VMS.pm vms/vmsish.h vms/descrip.mms vms/test.com
vms/vms.c vms/ext/filespec.t
Title: "[PATCH] Two un-disabled tests for VMS"
From: Dan Sugalski <sugalsd@lbcc.cc.or.us>
Msg-ID: <3.0.2.32.19970718095842.00879220@stargate.lbcc.cc.or.us>
Files: vms/test.com
Title: "fix substr fix (tests 27 etc)", "perl5.004_02 trial 1 available
(with substr bug and still some"
From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Hugo van der Sanden
<hv@crypt.compulink.co.uk>, Jarkko Hietaniemi <jhi@iki.fi>
Msg-ID: <199707301759.SAA02899@crypt.compulink.co.uk>,
<199707302228.BAA18032@alpha.hut.fi>,
<199707310929.KAA06515@crypt.compulink.co.uk>,
<E0wtruH-0002JM-00@ursa.cus.cam.ac.uk>
Files: pp.c
Title: "Fwd: substr("foo", -1000)", "substr: warn if substring doesn't
intersect original at all"
From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Jarkko Hietaniemi <jhi@iki.fi>
Msg-ID: <199707100655.JAA14924@alpha.hut.fi>,
<E0wm1JG-0000UY-00@taurus.cus.cam.ac.uk>
Files: pod/perlfunc.pod pp.c t/op/substr.t
[one change was applied, as
d9fdd1afe4b88705294e21dc4e070c42d3d9a4d8]
Title: "[PATCH] Changes for VMS 7.1 support"
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>, Dan Sugalski
<sugalsd@lbcc.cc.or.us>
Msg-ID: <01ILDXUH0J1W00026U@hmivax.humgen.upenn.edu>,
<3.0.2.32.19970718095935.0087a2d0@stargate.lbcc.cc.or.us>
Files: vms/sockadapt.h vms/config.vms vms/sockadapt.c
------ DOCUMENTATION ------
Title: "Document bug fix in localization of $1 etc."
From: Chip Salzenberg <salzench@nielsenmedia.com>
Files: pod/perldelta.pod
Title: "[BUG:PATCH] Missing semicolon message wrong in perldiag"
From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
Msg-ID: <E0welEn-0002vT-00@taurus.cus.cam.ac.uk>,
<E0wfRJU-0006Aw-00@taurus.cus.cam.ac.uk>
Files: pod/perldiag.pod
[one change was applied, as
702d120df290e0de1b21f167f7d0110b35ee2fef]
Title: "OK: perl <some_version> on <some_system> (corrected)", "enhancements
to perlbug -ok"
From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Stephen McCamant <alias@mcs.com>
Msg-ID: <E0wukVt-0006Da-00@ursa.cus.cam.ac.uk>,
<E0wvMQl-00055y-00@ursa.cus.cam.ac.uk>,
<m0wv81x-000EYPC@alias-2.pr.mcs.net>
Files: utils/Makefile utils/perlbug.PL
Title: "perldoc doesn't grok Win32 UNC paths"
From: Warren Jones <wjones@tc.fluke.com>
Msg-ID: <97Jun17.184420pdt.35728-1@gateway.fluke.com>,
<97Jun18.165618pdt.35713-1@gateway.fluke.com>
Files: utils/perldoc.PL
[one change was applied, as
f72119fc50f0d88b02501ba41112f82ab99f0c3b]
Diffstat (limited to 'vms')
-rw-r--r-- | vms/config.vms | 85 | ||||
-rw-r--r-- | vms/descrip.mms | 4 | ||||
-rwxr-xr-x | vms/ext/filespec.t | 32 | ||||
-rw-r--r-- | vms/sockadapt.c | 8 | ||||
-rw-r--r-- | vms/sockadapt.h | 3 | ||||
-rw-r--r-- | vms/test.com | 7 | ||||
-rw-r--r-- | vms/vms.c | 34 | ||||
-rw-r--r-- | vms/vmsish.h | 10 |
8 files changed, 149 insertions, 34 deletions
diff --git a/vms/config.vms b/vms/config.vms index cba33616d7..d6453ba34a 100644 --- a/vms/config.vms +++ b/vms/config.vms @@ -112,7 +112,11 @@ * This symbol is defined if the bcmp() routine is available to * compare blocks of memory. */ -#undef HAS_BCMP /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_BCMP /**/ +#else +#undef HAS_BCMP /*config-skip*/ +#endif #include <string.h> /* Check whether new DECC has #defined bcopy and bzero */ /* HAS_BCOPY: @@ -233,7 +237,11 @@ * <sys/resource.h> needs to be included (see I_SYS_RESOURCE). * The type "Timeval" should be used to refer to "struct timeval". */ -#undef HAS_GETTIMEOFDAY /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_GETTIMEOFDAY /**/ +#else +#undef HAS_GETTIMEOFDAY /*config-skip*/ +#endif #ifdef HAS_GETTIMEOFDAY # define Timeval struct timeval /*config-skip*/ #endif @@ -256,7 +264,11 @@ * uname() routine to derive the host name. See also HAS_GETHOSTNAME * and PHOSTNAME. */ -#undef HAS_UNAME /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_UNAME /**/ +#else +#undef HAS_UNAME /*config-skip*/ +#endif /* HAS_GETPRIORITY: * This symbol, if defined, indicates that the getpriority routine is @@ -492,7 +504,11 @@ * This symbol, if defined, indicates that Vr4's sigaction() routine * is available. */ -#undef HAS_SIGACTION /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_SIGACTION /**/ +#else +#undef HAS_SIGACTION /*config-skip*/ +#endif /* USE_STAT_BLOCKS: * This symbol is defined if this system has a stat structure declaring @@ -622,7 +638,11 @@ * This symbol, if defined, indicates that the truncate routine is * available to truncate files. */ -#undef HAS_TRUNCATE /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_TRUNCATE /**/ +#else +#undef HAS_TRUNCATE /*config-skip*/ +#endif /* HAS_VFORK: @@ -664,7 +684,11 @@ /* HAS_WAIT4: * This symbol, if defined, indicates that wait4() exists. */ -#undef HAS_WAIT4 /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_WAIT4 /**/ +#else +#undef HAS_WAIT4 /*config-skip*/ +#endif /* HAS_WAITPID: * This symbol, if defined, indicates that the waitpid routine is @@ -962,10 +986,10 @@ * is defined, and 'int *' otherwise. This is only useful if you * have select(), of course. */ -#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) -#define Select_fd_set_t fd_set * /* config-skip */ +#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) && defined(DECCRTL_SOCKETS) +#define Select_fd_set_t fd_set * /**/ #else -#define Select_fd_set_t int * /**/ +#define Select_fd_set_t int * /* config-skip */ #endif /* STDCHAR: @@ -1161,7 +1185,11 @@ * functions are available for string searching. */ #define HAS_STRCHR /**/ -#undef HAS_INDEX /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_INDEX /**/ +#else +#undef HAS_INDEX /*config-skip*/ +#endif /* HAS_STRCOLL: * This symbol, if defined, indicates that the strcoll routine is @@ -1347,9 +1375,17 @@ * corresponds to the 0 at the end of the sig_num list. * See SIG_NUM and SIG_MAX. */ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\ + "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\ + "ABRT","USR1","USR2","SPARE18","SPARE19","CHLD","CONT",\ + "STOP","TSTP","TTIN","TTOU","DEBUG","SPARE27","SPARE28",\ + "SPARE29","SPARE30","SPARE31","SPARE32","RTMIN","RTMAX",0 /**/ +#else #define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\ "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\ - "ABRT","USR1","USR2",0 + "ABRT","USR1","USR2",0 /*config-skip*/ +#endif /* SIG_NUM: * This symbol contains a list of signal number, in the same order as the @@ -1364,7 +1400,11 @@ * The last element is 0, corresponding to the 0 at the end of * the sig_name list. */ -#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0 /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0 /**/ +#else +#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0 /*config-skip*/ +#endif /* Mode_t: * This symbol holds the type used to declare file modes @@ -1598,8 +1638,13 @@ * to determine file-system related limits and options associated * with a given open file descriptor. */ -#undef HAS_PATHCONF /**/ -#undef HAS_FPATHCONF /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_PATHCONF /**/ +#define HAS_FPATHCONF /**/ +#else +#undef HAS_PATHCONF /*config-skip*/ +#undef HAS_FPATHCONF /*config-skip*/ +#endif /* HAS_SAFE_BCOPY: * This symbol, if defined, indicates that the bcopy routine is available @@ -1658,7 +1703,11 @@ * This symbol, if defined, indicates that sysconf() is available * to determine system related limits and options. */ -#undef HAS_SYSCONF /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_SYSCONF /**/ +#else +#undef HAS_SYSCONF /*config-skip*/ +#endif /* Gconvert: * This preprocessor macro is defined to convert a floating point @@ -1718,7 +1767,11 @@ * This macro is used in the same way as siglongjmp(), but will invoke * traditional longjmp() if siglongjmp isn't available. */ -#undef HAS_SIGSETJMP /**/ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#define HAS_SIGSETJMP /**/ +#else +#undef HAS_SIGSETJMP /*config-skip*/ +#endif #ifdef HAS_SIGSETJMP #define Sigjmp_buf sigjmp_buf /* config-skip */ #define Sigsetjmp(buf,save_mask) sigsetjmp(buf,save_mask) /* config-skip */ diff --git a/vms/descrip.mms b/vms/descrip.mms index 6c6531722e..7681f21586 100644 --- a/vms/descrip.mms +++ b/vms/descrip.mms @@ -167,7 +167,7 @@ DBGLINKFLAGS = /Trace/Debug/Map/Full/Cross DBG = DBG .else DBGCCFLAGS = /NoList -DBGLINKFLAGS = /NoMap +DBGLINKFLAGS = /NoTrace/NoMap DBG = .endif @@ -365,7 +365,7 @@ $(DBG)perl$(E) : perlmain$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE) .endif $(DBG)perlshr$(E) : $(DBG)libperl$(OLB) $(extobj) $(DBG)perlshr_xtras.ts - Link /NoTrace$(LINKFLAGS)/Share=$(MMS$TARGET) $(extobj) []$(DBG)perlshr_bld.opt/Option, perlshr_attr.opt/Option + Link $(LINKFLAGS)/Share=$(MMS$TARGET) $(extobj) []$(DBG)perlshr_bld.opt/Option, perlshr_attr.opt/Option # The following files are built in one go by gen_shrfls.pl: # perlshr_attr.opt, $(DBG)perlshr_bld.opt - VAX and AXP diff --git a/vms/ext/filespec.t b/vms/ext/filespec.t index 62b06fe9ed..6201a42dc6 100755 --- a/vms/ext/filespec.t +++ b/vms/ext/filespec.t @@ -25,11 +25,33 @@ foreach $test (@tests) { } } -print +(rmsexpand('[]') eq "\U$ENV{DEFAULT}" ? 'ok ' : 'not ok '),++$idx,"\n"; -print +(rmsexpand('from.here') eq "\L$ENV{DEFAULT}from.here" ? - 'ok ' : 'not ok '),++$idx,"\n"; -print +(rmsexpand('from.here','cant:[get.there];2') eq - 'cant:[get.there]from.here;2' ? 'ok ' : 'not ok '),++$idx,"\n"; +if (rmsexpand('[]') eq "\U$ENV{DEFAULT}") { print 'ok ',++$idx,"\n"; } +else { + print 'not ok ', ++$idx, ": rmsexpand('[]') = |", rmsexpand('[]'), + "|, \$ENV{DEFAULT} = |\U$ENV{DEFAULT}|\n"; + print "# Note: This failure may have occurred because your default device\n"; + print "# was set using a non-concealed logical name. If this is the case,\n"; + print "# you will need to determine by inspection that the two resultant\n"; + print "# file specifications shwn above are in fact equivalent.\n"; +} +if (rmsexpand('from.here') eq "\L$ENV{DEFAULT}from.here") { + print 'ok ', ++$idx, "\n"; +} +else { + print 'not ok ', ++$idx, ": rmsexpand('from.here') = |", + rmsexpand('from.here'), + "|, \$ENV{DEFAULT}from.here = |\L$ENV{DEFAULT}from.here|\n"; + print "# Note: This failure may have occurred because your default device\n"; + print "# was set using a non-concealed logical name. If this is the case,\n"; + print "# you will need to determine by inspection that the two resultant\n"; + print "# file specifications shwn above are in fact equivalent.\n"; +} +if (rmsexpand('from.here','cant:[get.there];2') eq + 'cant:[get.there]from.here;2') { print 'ok ',++$idx,"\n"; } +else { + print 'not ok ', ++$idx, ': expected |cant:[get.there]from.here;2|, got |', + rmsexpand('from.here','cant:[get.there];2'),"|\n"; +} __DATA__ diff --git a/vms/sockadapt.c b/vms/sockadapt.c index e4c3dad213..b63e4c937b 100644 --- a/vms/sockadapt.c +++ b/vms/sockadapt.c @@ -29,18 +29,25 @@ # define __sockadapt_my_name_t char * #endif +/* We have these on VMS 7.0 and above, or on Dec C 5.6 if it's providing */ +/* the 7.0 DECC RTL */ +#if ((((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)) && defined(DECCRTL_SOCKETS)) +#else void setnetent(int stayopen) { croak("Function \"setnetent\" not implemented in this version of perl"); } void endnetent() { croak("Function \"endnetent\" not implemented in this version of perl"); } +#endif #if defined(DECCRTL_SOCKETS) /* Use builtin socket interface in DECCRTL and * UCX emulation in whatever TCP/IP stack is present. */ +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#else void sethostent(int stayopen) { croak("Function \"sethostent\" not implemented in this version of perl"); } @@ -67,6 +74,7 @@ void endnetent() { croak("Function \"getservent\" not implemented in this version of perl"); return (__sockadapt_my_servent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */ } +#endif #else /* Work around things missing/broken in SOCKETSHR. */ diff --git a/vms/sockadapt.h b/vms/sockadapt.h index f24faea475..7f9150a579 100644 --- a/vms/sockadapt.h +++ b/vms/sockadapt.h @@ -24,6 +24,8 @@ # include <inet.h> # include <in.h> # include <netdb.h> +#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) +#else void sethostent(int); void endhostent(void); void setnetent(int); @@ -32,6 +34,7 @@ void endprotoent(void); void setservent(int); void endservent(void); +#endif # if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) # define Sock_size_t unsigned int # endif diff --git a/vms/test.com b/vms/test.com index 50a98caf00..114cb24a40 100644 --- a/vms/test.com +++ b/vms/test.com @@ -6,6 +6,7 @@ $ $! A little basic setup $ On Error Then Goto wrapup $ olddef = F$Environment("Default") +$ oldmsg = F$Environment("Message") $ If F$Search("t.dir").nes."" $ Then $ Set Default [.t] @@ -18,6 +19,7 @@ $ Write Sys$Error "Can't find test directory" $ Exit 44 $ EndIf $ EndIf +$ Set Message /Facility/Severity/Identification/Text $ $ exe = ".Exe" $ If p1.nes."" Then exe = p1 @@ -87,12 +89,12 @@ $ Deck/Dollar=$$END-OF-TEST$$ # but the tests may use other operators which don't.) use Config; -@compexcl=('cpp.t','script.t'); +@compexcl=('cpp.t'); @ioexcl=('argv.t','dup.t','fs.t','inplace.t','pipe.t'); @libexcl=('anydbm.t','db-btree.t','db-hash.t','db-recno.t', 'gdbm.t','io_dup.t', 'io_pipe.t', 'io_sel.t', 'io_sock.t', 'ndbm.t','odbm.t','open2.t','open3.t','posix.t', - 'sdbm.t','soundex.t'); + 'sdbm.t'); # Note: POSIX is not part of basic build, but can be built # separately if you're using DECC @@ -218,4 +220,5 @@ $$END-OF-TEST$$ $ wrapup: $ If F$Search("Echo.Exe").nes."" Then Delete/Log/NoConfirm Echo.Exe;* $ Set Default &olddef +$ Set Message 'oldmsg' $ Exit @@ -456,9 +456,9 @@ kill_file(char *name) /*}}}*/ -/*{{{int my_mkdir(char *,mode_t)*/ +/*{{{int my_mkdir(char *,Mode_t)*/ int -my_mkdir(char *dir, mode_t mode) +my_mkdir(char *dir, Mode_t mode) { STRLEN dirlen = strlen(dir); @@ -1759,7 +1759,7 @@ static int background_process(int argc, char **argv); static void pipe_and_fork(char **cmargv); /*{{{ void getredirection(int *ac, char ***av)*/ -void +static void getredirection(int *ac, char ***av) /* * Process vms redirection arg's. Exit if any error is seen. @@ -2221,6 +2221,34 @@ unsigned long int flags = 17, one = 1, retsts; /*}}}*/ /***** End of code taken from Mark Pizzolato's argproc.c package *****/ + +/* OS-specific initialization at image activation (not thread startup) */ +/*{{{void vms_image_init(int *, char ***)*/ +void +vms_image_init(int *argcp, char ***argvp) +{ + unsigned long int *mask, iosb[2], i; + unsigned short int dummy; + union prvdef iprv; + struct itmlst_3 jpilist[2] = { {sizeof iprv, JPI$_IMAGPRIV, &iprv, &dummy}, + { 0, 0, 0, 0} }; + + _ckvmssts(sys$getjpiw(0,NULL,NULL,jpilist,iosb,NULL,NULL)); + _ckvmssts(iosb[0]); + mask = (unsigned long int *) &iprv; /* Quick change of view */; + for (i = 0; i < (sizeof iprv + sizeof(unsigned long int) - 1) / sizeof(unsigned long int); i++) { + if (mask[i]) { /* Running image installed with privs? */ + _ckvmssts(sys$setprv(0,&iprv,0,NULL)); /* Turn 'em off. */ + tainting = TRUE; + break; + } + } + getredirection(argcp,argvp); + return; +} +/*}}}*/ + + /* trim_unixpath() * Trim Unix-style prefix off filespec, so it looks like what a shell * glob expansion would return (i.e. from specified prefix on, not diff --git a/vms/vmsish.h b/vms/vmsish.h index 841b11993a..81e3764a2c 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -104,14 +104,13 @@ # define tounixpath_ts Perl_tounixpath_ts # define tovmspath Perl_tovmspath # define tovmspath_ts Perl_tovmspath_ts -# define getredirection Perl_getredirection +# define vms_image_init Perl_vms_image_init # define opendir Perl_opendir # define readdir Perl_readdir # define telldir Perl_telldir # define seekdir Perl_seekdir # define closedir Perl_closedir # define vmsreaddirversions Perl_vmsreaddirversions -# define getredirection Perl_getredirection # define my_gmtime Perl_my_gmtime # define my_localtime Perl_my_localtime # define my_time Perl_my_time @@ -226,7 +225,7 @@ #endif #define BIT_BUCKET "_NLA0:" -#define PERL_SYS_INIT(c,v) getredirection((c),(v)) +#define PERL_SYS_INIT(c,v) vms_image_init((c),(v)) #define PERL_SYS_TERM() #define dXSUB_SYS #define HAS_KILL @@ -500,7 +499,6 @@ typedef unsigned myino_t; #endif void prime_env_iter _((void)); -void getredirection _((int *, char ***)); void init_os_extras _(()); /* prototype section start marker; `typedef' passes through cpp */ typedef char __VMS_PROTOTYPES__; @@ -511,7 +509,7 @@ Pid_t my_waitpid _((Pid_t, int *, int)); char * my_gconvert _((double, int, int, char *)); int do_rmdir _((char *)); int kill_file _((char *)); -int my_mkdir _((char *, mode_t)); +int my_mkdir _((char *, Mode_t)); int my_utime _((char *, struct utimbuf *)); char * rmsexpand _((char *, char *, char *, unsigned)); char * rmsexpand_ts _((char *, char *, char *, unsigned)); @@ -527,7 +525,7 @@ char * tounixpath _((char *, char *)); char * tounixpath_ts _((char *, char *)); char * tovmspath _((char *, char *)); char * tovmspath_ts _((char *, char *)); -void getredirection _(()); +void vms_image_init _((int *, char ***)); DIR * opendir _((char *)); struct dirent * readdir _((DIR *)); long telldir _((DIR *)); |