Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.86k stars 528 forks source link

Not OK: perl v5.7.0 +DEVEL9582 on os390 10.00 (UNINSTALLED) #3820

Closed p5pRT closed 21 years ago

p5pRT commented 23 years ago

Migrated from rt.perl.org#6759 (status was 'resolved')

Searchable as RT6759$

p5pRT commented 23 years ago

From pvhp@forte.com

`make test` dies on a -des Configured default build of perl on OS/390 (where $usedl='undef' is still the default and DPERL_EXTERNAL_GLOB is used simply as a trick) with the following​:

  Making re (static) make[2]​: Entering directory `/SYSTEM/tmp/ttt/perl/ext/re' make[2]​: Leaving directory `/SYSTEM/tmp/ttt/perl/ext/re' make[2]​: Entering directory `/SYSTEM/tmp/ttt/perl/ext/re' make[2]​: Leaving directory `/SYSTEM/tmp/ttt/perl/ext/re' cd t && (rm -f ./perl; /bin/ln -s .././perl ./perl) make[1]​: Leaving directory `/SYSTEM/tmp/ttt/perl' make​: *** No rule to make target `lib/auto/File/Glob/Glob.none'\, needed by `test'. Stop.

There appears to be a new bug in Makefile.SH\, I note the following in my extracted Makefile​:

$ grep EXTGLOB Makefile EXTGLOB = lib/auto/File/Glob/Glob$(DLSUFFIX) TESTREQEXT = $(EXTGLOB)

A workaround for `make test` appears to be to touch the requisite file (why no suych make rule in Makefile?)​:

$ ls -F lib/auto/File/Glob Glob.a* autosplit.ix extralibs.ld $ touch lib/auto/File/Glob/Glob.none $ make test

some test failures and # comments​:

op/append.............Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 46. Wide character in print at op/append.t line 46. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 50. Wide character in print at op/append.t line 50. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 54. Wide character in print at op/append.t line 54. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 58. Wide character in print at op/append.t line 58. FAILED at test 7

op/pat................CEE5213S The signal SIGPIPE was received. FAILED at test 234 # UTF-EBCDIC bug in perl regular expressions?

op/tr.................CEE5213S The signal SIGPIPE was received. FAILED at test 50

pragma/locale.........Unmatched [ before HERE mark in regex m/[ \<\< HERE / at pragma/locale.t line 710. FAILED at test 99 # known seen before - memory or C RTL setlocale() bug

pragma/warnings.......PROG​: -W

# perl.c no warnings 'once' ; $x = 3 ; use warnings 'once' ; $z = 3 ; EXPECTED​: Name "main​::z" used only once​: possible typo at - line 6. Name "main​::x" used only once​: possible typo at - line 4. GOT​: Name "main​::x" used only once​: possible typo at - line 4. Name "main​::z" used only once​: possible typo at - line 6. CEE5213S The signal SIGPIPE was received. FAILED at test 74 # seen before\, possible patch   # that would need s/72/73/ modification   # is at​:

  http​://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/2001-03/msg00099.html

lib/b.................CEE5213S The signal SIGPIPE was received. FAILED at test 17 # new failure (IIRC)

lib/glob-basic........FAILED at test 11 # new failure ?

lib/io_unix...........Can't call method "getline" on an undefined value at lib/io_unix.t line 65. FAILED at test 3 # known seen before\, fork problem?

lib/mimeqp............FAILED at test 2 # known seen before\, an EBCDIC workaround exists but needs developement

Failed 9 test scripts out of 324\, 97.22% okay. u=18.23 s=6.07 cu=405.26 cs=135.08 scripts=324 tests=23104

One completely untested "hack around" might be to​:

Inline Patch ```diff --- Makefile.SH;1 Fri Apr 6 14:07:00 2001 +++ Makefile.SH Fri Apr 6 16:43:51 2001 @@ -135,7 +135,12 @@ case "$DPERL_EXTERNAL_GLOB" in "") ;; -*) testreqext="$testreqext \$(EXTGLOB)" ;; +*) + case "${osname}${osvers}" in + os390*) ;; + *) testreqext="$testreqext \$(EXTGLOB)" ;; + esac + ;; esac echo "Extracting Makefile (with variable substitutions)" ```

End of "hack:"

I am sorry - I actually do not like that and it is untested. I am primarily trying to point out the trouble spot. I'd appreciate it if a Makefile.SH expert took a crack at it. Thank you. (Running out of the office for the weekend now).

Perl Info ``` Flags: category=install severity=none Site configuration information for perl v5.7.0: Configured by PVHP at Fri Apr 6 15:49:44 PDT 2001. Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration: Platform: osname=os390, osvers=10.00, archname=os390 uname='os390 lpr210 10.00 02 9672 ' config_args='-Dusedevel -des' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='c89', ccflags ='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC -I/usr/local/include', optimize=' ', cppflags='' ccversion='', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=undef, longlongsize=, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=4 alignbytes=8, usemymalloc=n, prototype=define Linker and Libraries: ld='ld', ldflags ='-Wl,EDIT=NO -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lm -lc perllibs=-lm -lc libc=, so=a, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_none.xs, dlext=none, d_dlsymun=undef, ccdlflags='' cccdlflags='-W 0,dll', lddlflags='' Locally applied patches: DEVEL9582 @INC for perl v5.7.0: lib /usr/local/lib/perl5/5.7.0/os390 /usr/local/lib/perl5/5.7.0 /usr/local/lib/perl5/site_perl/5.7.0/os390 /usr/local/lib/perl5/site_perl/5.7.0 /usr/local/lib/perl5/site_perl/5.005/os390 /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl . Environment for perl v5.7.0: HOME=/usr/forte/pvhp LANG=C LANGUAGE (unset) LD_LIBRARY_PATH (unset) LIBPATH=/lib:/usr/lib:. LOGDIR (unset) PATH=/usr/local/bin:/bin:. PERL_BADLANG (unset) SHELL=/bin/sh ```
p5pRT commented 23 years ago

From @jhi

These (DYNALOADER being the other one) were supposed to be targets only for 'make test' (and close relatives)\, and if external glob (not Glob) is being used\, EXTGLOB should be empty too\, and thusly not in EXTGLOB\, TESTREQEXT. Did I get the logic backwards/sidewise? Ahhh\, at least the naming is​: Glob.so (or equivalent) being called EXTGLOB isn't very clear :-(

A workaround for `make test` appears to be to touch the requisite file (why no suych make rule in Makefile?)​:

$ ls -F lib/auto/File/Glob Glob.a* autosplit.ix extralibs.ld $ touch lib/auto/File/Glob/Glob.none $ make test

some test failures and # comments​:

op/append.............Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 46. Wide character in print at op/append.t line 46. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 50. Wide character in print at op/append.t line 50. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 54. Wide character in print at op/append.t line 54. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 58. Wide character in print at op/append.t line 58. FAILED at test 7

op/pat................CEE5213S The signal SIGPIPE was received. FAILED at test 234 # UTF-EBCDIC bug in perl regular expressions?

op/tr.................CEE5213S The signal SIGPIPE was received. FAILED at test 50

pragma/locale.........Unmatched [ before HERE mark in regex m/[ \<\< HERE / at pragma/locale.t line 710. FAILED at test 99 # known seen before - memory or C RTL setlocale() bug

pragma/warnings.......PROG​: -W

# perl.c no warnings 'once' ; $x = 3 ; use warnings 'once' ; $z = 3 ; EXPECTED​: Name "main​::z" used only once​: possible typo at - line 6. Name "main​::x" used only once​: possible typo at - line 4. GOT​: Name "main​::x" used only once​: possible typo at - line 4. Name "main​::z" used only once​: possible typo at - line 6. CEE5213S The signal SIGPIPE was received. FAILED at test 74 # seen before\, possible patch # that would need s/72/73/ modification # is at​:

http​://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/2001-03/msg00099.html

lib/b.................CEE5213S The signal SIGPIPE was received. FAILED at test 17 # new failure (IIRC)

lib/glob-basic........FAILED at test 11 # new failure ?

lib/io_unix...........Can't call method "getline" on an undefined value at lib/io_unix.t line 65. FAILED at test 3 # known seen before\, fork problem?

lib/mimeqp............FAILED at test 2 # known seen before\, an EBCDIC workaround exists but needs developement

Failed 9 test scripts out of 324\, 97.22% okay. u=18.23 s=6.07 cu=405.26 cs=135.08 scripts=324 tests=23104

One completely untested "hack around" might be to​:

--- Makefile.SH;1 Fri Apr 6 14​:07​:00 2001 +++ Makefile.SH Fri Apr 6 16​:43​:51 2001 @​@​ -135\,7 +135\,12 @​@​

case "$DPERL_EXTERNAL_GLOB" in "") ;; -*) testreqext="$testreqext \$(EXTGLOB)" ;; +*) + case "${osname}${osvers}" in + os390*) ;; + *) testreqext="$testreqext \$(EXTGLOB)" ;; + esac + ;; esac

echo "Extracting Makefile (with variable substitutions)" End of "hack​:"

I am sorry - I actually do not like that and it is untested. I am primarily trying to point out the trouble spot. I'd appreciate it if a Makefile.SH expert took a crack at it. Thank you. (Running out of the office for the weekend now).

[Please do not change anything below this line] ----------------------------------------------------------------- --- Flags​: category=install severity=none --- Site configuration information for perl v5.7.0​:

Configured by PVHP at Fri Apr 6 15​:49​:44 PDT 2001.

Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration​: Platform​: osname=os390\, osvers=10.00\, archname=os390 uname='os390 lpr210 10.00 02 9672 ' config_args='-Dusedevel -des' hint=recommended\, useposix=true\, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler​: cc='c89'\, ccflags ='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC -I/usr/local/include'\, optimize=' '\, cppflags='' ccversion=''\, gccversion=''\, gccosandvers='' intsize=4\, longsize=4\, ptrsize=4\, doublesize=8\, byteorder=4321 d_longlong=undef\, longlongsize=\, d_longdbl=define\, longdblsize=16 ivtype='long'\, ivsize=4\, nvtype='double'\, nvsize=8\, Off_t='off_t'\, lseeksize=4 alignbytes=8\, usemymalloc=n\, prototype=define Linker and Libraries​: ld='ld'\, ldflags ='-Wl\,EDIT=NO -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lm -lc perllibs=-lm -lc libc=\, so=a\, useshrplib=false\, libperl=libperl.a Dynamic Linking​: dlsrc=dl_none.xs\, dlext=none\, d_dlsymun=undef\, ccdlflags='' cccdlflags='-W 0\,dll'\, lddlflags=''

Locally applied patches​: DEVEL9582

--- @​INC for perl v5.7.0​: lib /usr/local/lib/perl5/5.7.0/os390 /usr/local/lib/perl5/5.7.0 /usr/local/lib/perl5/site_perl/5.7.0/os390 /usr/local/lib/perl5/site_perl/5.7.0 /usr/local/lib/perl5/site_perl/5.005/os390 /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl .

--- Environment for perl v5.7.0​: HOME=/usr/forte/pvhp LANG=C LANGUAGE (unset) LD_LIBRARY_PATH (unset) LIBPATH=/lib​:/usr/lib​:. LOGDIR (unset) PATH=/usr/local/bin​:/bin​:. PERL_BADLANG (unset) SHELL=/bin/sh

-- $jhi++; # http​://www.iki.fi/jhi/   # There is this special biologist word we use for 'stable'.   # It is 'dead'. -- Jack Cohen

p5pRT commented 23 years ago

From @jhi

These (DYNALOADER being the other one) were supposed to be targets only for 'make test' (and close relatives)\, and if external glob (not Glob) is being used\, EXTGLOB should be empty too\, and thusly not in EXTGLOB\, TESTREQEXT. Did I get the logic backwards/sidewise? Ahhh\, at least the naming is​: Glob.so (or equivalent) being called EXTGLOB isn't very clear :-(

A workaround for `make test` appears to be to touch the requisite file (why no suych make rule in Makefile?)​:

$ ls -F lib/auto/File/Glob Glob.a* autosplit.ix extralibs.ld $ touch lib/auto/File/Glob/Glob.none $ make test

some test failures and # comments​:

op/append.............Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 46. Wide character in print at op/append.t line 46. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 50. Wide character in print at op/append.t line 50. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 54. Wide character in print at op/append.t line 54. Malformed UTF-8 character (unexpected continuation byte 0x62) in pattern match (m//) at op/append.t line 58. Wide character in print at op/append.t line 58. FAILED at test 7

op/pat................CEE5213S The signal SIGPIPE was received. FAILED at test 234 # UTF-EBCDIC bug in perl regular expressions?

op/tr.................CEE5213S The signal SIGPIPE was received. FAILED at test 50

pragma/locale.........Unmatched [ before HERE mark in regex m/[ \<\< HERE / at pragma/locale.t line 710. FAILED at test 99 # known seen before - memory or C RTL setlocale() bug

pragma/warnings.......PROG​: -W

# perl.c no warnings 'once' ; $x = 3 ; use warnings 'once' ; $z = 3 ; EXPECTED​: Name "main​::z" used only once​: possible typo at - line 6. Name "main​::x" used only once​: possible typo at - line 4. GOT​: Name "main​::x" used only once​: possible typo at - line 4. Name "main​::z" used only once​: possible typo at - line 6. CEE5213S The signal SIGPIPE was received. FAILED at test 74 # seen before\, possible patch # that would need s/72/73/ modification # is at​:

http​://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/2001-03/msg00099.html

lib/b.................CEE5213S The signal SIGPIPE was received. FAILED at test 17 # new failure (IIRC)

lib/glob-basic........FAILED at test 11 # new failure ?

lib/io_unix...........Can't call method "getline" on an undefined value at lib/io_unix.t line 65. FAILED at test 3 # known seen before\, fork problem?

lib/mimeqp............FAILED at test 2 # known seen before\, an EBCDIC workaround exists but needs developement

Failed 9 test scripts out of 324\, 97.22% okay. u=18.23 s=6.07 cu=405.26 cs=135.08 scripts=324 tests=23104

One completely untested "hack around" might be to​:

--- Makefile.SH;1 Fri Apr 6 14​:07​:00 2001 +++ Makefile.SH Fri Apr 6 16​:43​:51 2001 @​@​ -135\,7 +135\,12 @​@​

case "$DPERL_EXTERNAL_GLOB" in "") ;; -*) testreqext="$testreqext \$(EXTGLOB)" ;; +*) + case "${osname}${osvers}" in + os390*) ;; + *) testreqext="$testreqext \$(EXTGLOB)" ;; + esac + ;; esac

echo "Extracting Makefile (with variable substitutions)" End of "hack​:"

I am sorry - I actually do not like that and it is untested. I am primarily trying to point out the trouble spot. I'd appreciate it if a Makefile.SH expert took a crack at it. Thank you. (Running out of the office for the weekend now).

[Please do not change anything below this line] ----------------------------------------------------------------- --- Flags​: category=install severity=none --- Site configuration information for perl v5.7.0​:

Configured by PVHP at Fri Apr 6 15​:49​:44 PDT 2001.

Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration​: Platform​: osname=os390\, osvers=10.00\, archname=os390 uname='os390 lpr210 10.00 02 9672 ' config_args='-Dusedevel -des' hint=recommended\, useposix=true\, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler​: cc='c89'\, ccflags ='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC -I/usr/local/include'\, optimize=' '\, cppflags='' ccversion=''\, gccversion=''\, gccosandvers='' intsize=4\, longsize=4\, ptrsize=4\, doublesize=8\, byteorder=4321 d_longlong=undef\, longlongsize=\, d_longdbl=define\, longdblsize=16 ivtype='long'\, ivsize=4\, nvtype='double'\, nvsize=8\, Off_t='off_t'\, lseeksize=4 alignbytes=8\, usemymalloc=n\, prototype=define Linker and Libraries​: ld='ld'\, ldflags ='-Wl\,EDIT=NO -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lm -lc perllibs=-lm -lc libc=\, so=a\, useshrplib=false\, libperl=libperl.a Dynamic Linking​: dlsrc=dl_none.xs\, dlext=none\, d_dlsymun=undef\, ccdlflags='' cccdlflags='-W 0\,dll'\, lddlflags=''

Locally applied patches​: DEVEL9582

--- @​INC for perl v5.7.0​: lib /usr/local/lib/perl5/5.7.0/os390 /usr/local/lib/perl5/5.7.0 /usr/local/lib/perl5/site_perl/5.7.0/os390 /usr/local/lib/perl5/site_perl/5.7.0 /usr/local/lib/perl5/site_perl/5.005/os390 /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl .

--- Environment for perl v5.7.0​: HOME=/usr/forte/pvhp LANG=C LANGUAGE (unset) LD_LIBRARY_PATH (unset) LIBPATH=/lib​:/usr/lib​:. LOGDIR (unset) PATH=/usr/local/bin​:/bin​:. PERL_BADLANG (unset) SHELL=/bin/sh

-- $jhi++; # http​://www.iki.fi/jhi/   # There is this special biologist word we use for 'stable'.   # It is 'dead'. -- Jack Cohen

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

On Fri\, Apr 06\, 2001 at 05​:10​:32PM -0700\, Peter Prymmer wrote​:

`make test` dies on a -des Configured default build of perl on OS/390 (where $usedl='undef' is still the default and DPERL_EXTERNAL_GLOB is used simply as a trick) with the following​:

[snip]

make[1]​: Leaving directory `/SYSTEM/tmp/ttt/perl' make​: *** No rule to make target `lib/auto/File/Glob/Glob.none'\, needed by `test'. Stop.

There appears to be a new bug in Makefile.SH\, I note the following in my extracted Makefile​:

$ grep EXTGLOB Makefile EXTGLOB = lib/auto/File/Glob/Glob$(DLSUFFIX) TESTREQEXT = $(EXTGLOB)

These (DYNALOADER being the other one) were supposed to be targets only for 'make test' (and close relatives)\, and if external glob (not Glob) is being used\, EXTGLOB should be empty too\, and thusly not in EXTGLOB\, TESTREQEXT. Did I get the logic backwards/sidewise? Ahhh\, at least the naming is​: Glob.so (or equivalent) being called EXTGLOB isn't very clear :-(

The problem on OS/390 is that the build carried out via `make` is OK\, but there is no "rule" for determining how to go about making lib/auto/File/Glob/Glob$(DLSUUFIX) since $dlsuffix='none' since we are static linking (by overridable default) on OS/390. Whether the name of the macro is EXTGLOB or something else is not too important to the broken build on OS/390.

It _might_ have been better to set it to​:

EXTGLOB = lib/auto/File/Glob/Glob.$so

at least as far as OS/390 is concerned. Or perhaps we ought to change our $dlext='none' to an explicit $dlext='a'? I can at least test the latter speculation (not until Monday though) but I cannot test all of the other static linking platforms (e.g. Ultrix). Dealing with other static linking platforms was what I did not like about the psuedo-"patch" in yesterday's bug report.

Unfortunately whether or not the value of the make macro $(DPERL_EXTERNAL_GLOB) is set to a non-empty string is not necessarily a good indication of whether an external glob is being used. It is currently being used to trick our way past cranky compilers/linkers. To tell the truth I cannot at this time think of a better way to ascertain the external globbing status. Would finding "File​::Glob" in $extensions tell you anything exactly? I note that on VMS it is necessary to #define PERL_EXTERNAL_GLOB not because we use a csh but because perl's core glob() is handled by vms.c hence it is not the File​::Glob module (for which globbing has to work so that MakeMaker can build the ext/ extensions).

I was under the impression that we needed to -DPERL_EXTERNAL_GLOB on OS/390\, but to _not_ do so if test "$useshrplib" = "define" since in the dynamic loading case there were unresolved symbols (related to globbing) in the link of opmini. As I said abode the value of $(DPERL_EXTERNAL_GLOB) may not provide the platforms globbing story.

I will try out some more testing later.

A workaround for `make test` appears to be to touch the requisite file (why no suych make rule in Makefile?)​:

$ ls -F lib/auto/File/Glob Glob.a* autosplit.ix extralibs.ld $ touch lib/auto/File/Glob/Glob.none $ make test

After this touch trick `make test` can then proceed on OS/390 it should not be necessary though.

Peter Prymmer

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

On Fri\, Apr 06\, 2001 at 05​:10​:32PM -0700\, Peter Prymmer wrote​:

`make test` dies on a -des Configured default build of perl on OS/390 (where $usedl='undef' is still the default and DPERL_EXTERNAL_GLOB is used simply as a trick) with the following​:

[snip]

make[1]​: Leaving directory `/SYSTEM/tmp/ttt/perl' make​: *** No rule to make target `lib/auto/File/Glob/Glob.none'\, needed by `test'. Stop.

There appears to be a new bug in Makefile.SH\, I note the following in my extracted Makefile​:

$ grep EXTGLOB Makefile EXTGLOB = lib/auto/File/Glob/Glob$(DLSUFFIX) TESTREQEXT = $(EXTGLOB)

These (DYNALOADER being the other one) were supposed to be targets only for 'make test' (and close relatives)\, and if external glob (not Glob) is being used\, EXTGLOB should be empty too\, and thusly not in EXTGLOB\, TESTREQEXT. Did I get the logic backwards/sidewise? Ahhh\, at least the naming is​: Glob.so (or equivalent) being called EXTGLOB isn't very clear :-(

The problem on OS/390 is that the build carried out via `make` is OK\, but there is no "rule" for determining how to go about making lib/auto/File/Glob/Glob$(DLSUUFIX) since $dlsuffix='none' since we are static linking (by overridable default) on OS/390. Whether the name of the macro is EXTGLOB or something else is not too important to the broken build on OS/390.

It _might_ have been better to set it to​:

EXTGLOB = lib/auto/File/Glob/Glob.$so

at least as far as OS/390 is concerned. Or perhaps we ought to change our $dlext='none' to an explicit $dlext='a'? I can at least test the latter speculation (not until Monday though) but I cannot test all of the other static linking platforms (e.g. Ultrix). Dealing with other static linking platforms was what I did not like about the psuedo-"patch" in yesterday's bug report.

Unfortunately whether or not the value of the make macro $(DPERL_EXTERNAL_GLOB) is set to a non-empty string is not necessarily a good indication of whether an external glob is being used. It is currently being used to trick our way past cranky compilers/linkers. To tell the truth I cannot at this time think of a better way to ascertain the external globbing status. Would finding "File​::Glob" in $extensions tell you anything exactly? I note that on VMS it is necessary to #define PERL_EXTERNAL_GLOB not because we use a csh but because perl's core glob() is handled by vms.c hence it is not the File​::Glob module (for which globbing has to work so that MakeMaker can build the ext/ extensions).

I was under the impression that we needed to -DPERL_EXTERNAL_GLOB on OS/390\, but to _not_ do so if test "$useshrplib" = "define" since in the dynamic loading case there were unresolved symbols (related to globbing) in the link of opmini. As I said abode the value of $(DPERL_EXTERNAL_GLOB) may not provide the platforms globbing story.

I will try out some more testing later.

A workaround for `make test` appears to be to touch the requisite file (why no suych make rule in Makefile?)​:

$ ls -F lib/auto/File/Glob Glob.a* autosplit.ix extralibs.ld $ touch lib/auto/File/Glob/Glob.none $ make test

After this touch trick `make test` can then proceed on OS/390 it should not be necessary though.

Peter Prymmer

p5pRT commented 21 years ago

@jhi - Status changed from 'open' to 'resolved'