Hi,
I have sent the following to [EMAIL PROTECTED] (perl #18535) but I have been
advised to send it here too.
I'm not sure if this is a bug with perl, a bug with the compiler, or
whether threading is not fully supported on OS/390 yet, but I am
encountering problems compiling perl 5.8.0 on Z/OS 1.3. (and OS/390 2.10)
I am attempting to compile perl with dynamic loading support and thread
support using the default compiler (c89).
I am following the steps in the README.os390 file and I have applied the
fix to makedepend.SH (provided by Peter Prymmer) with regard to the
unwanted removal of the last #endif statement in perly.c as below:
--- makedepend.SH.orig Mon Nov 29 18:05:08 1999
+++ makedepend.SH Mon Nov 29 18:10:43 1999
@@ -130,6 +130,9 @@
-e 's|\\$||' \
-e p \
-e '}' ) >UU/$file.c
+ if [ "$osname" = os390 -a "$file" = perly.c ]; then
+ $echo '#endif' >>UU/$file.c
+ fi
$cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
$sed \
-e '/^#.*<stdin>/d' \
End of Patch.
and having made this fix the Configure and the make depend steps complete
cleanly with no warnings or errors.
However, when performing the actual make step I am encountering the
following error when compiling perly.c
ERROR CCN3276 ./perly.c:128 Syntax error: possible missing ')'?
I decided to turn on the -V flag of the c89 compiler and this identified
the error as follows:
125 |#define POSTINC 315
| 48923
126 |#define POSTDEC 316
| 48924
127 |#define ARROW 317
| 48925
128 |extern int yychar, yyerrflag;
| 48926
128 +extern int (my_perl->Iyychar), (my_perl->Iyyerrflag);
+ 48926
===========>
....................a..............................................................................
*=ERROR===========> a - CCN3276 Syntax error: possible missing ')'?
129 |#if YYDEBUG
| 48927
130 |yyTypedRules yyRules[] = {
| 48928
131 | { "&00: %01 &00", 0},
| 48929
132 | { "%01: %07 %12", 1},
| 48930
This appears to be a problem with the actual C code itself.
I have tried compiling perl with exactly the same options but without
enabling thread support and it compiles and installs with no problems. Not
being overly skilled in C, are there any additional compiler options I can
specify to overcome this, given it only occurs when threading is turned on
and we ideally want thread support enabled?
Any ideas?
Regards,
Jamie Squibb
P.S. Please find below the contents of my myconfig script as requested in
the README file.
#!/bin/sh
# This script is designed to provide a handy summary of the configuration
# information being used to build perl. This is especially useful if you
# are requesting help from comp.lang.perl.misc on usenet or via mail.
# Note that the text lines /^Summary of/ .. /^\s*$/ are copied into
Config.pm.
cat <<'!NO!SUBS!'
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=os390, osvers=13.00, archname=os390-thread-multi
uname='os390 mvg2 13.00 03 9672 '
config_args='-Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='c89', ccflags ='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS
-D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC -D_SHR_ENVIRON
-DPERL_EXTERNAL_GLOB -Wc,dll -W 0,float(ieee)',
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, prototype=define
Linker and Libraries:
ld='c89', ldflags ='-Wl,EDIT=NO -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lm -lc
perllibs=-lm -lc
libc=, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dllload.xs, dlext=so, d_dlsymun=undef, ccdlflags='-W l,dll
/defects/jamie/perl-5.8.0/libperl.x'
cccdlflags='-c -Wc,dll,EXPORTALL', lddlflags='-W l,dll
/defects/jamie/perl-5.8.0/libperl.x -L/usr/local/lib'
!NO!SUBS!