On Thu, 31 Aug 2000, Dennis Longnecker wrote:
> Greetings -
>
> I am installing perl on our OS/390 2.7 system. I downloaded the 5.005_03
> version. Following instructions in the readme.os390 and redbook. I do have
> MAKE 3.76.1
>
> Things go along merily, but I start getting compile errors. Some of the
> errors I see are attached. Are these really errors?
>
> Thanks,
>
> Dennis Longnecker
For what it is worth on a 2.7 LPAR at PUT level 0004 (2000 April) I do not
see the errors that you have posted. With an unpatched 5.005_03
perl kit I do see these three problems while running `sh Configure -des`:
shmat() found.
and it returns (void *).
*** WHOA THERE!!! ***
The recommended value for $d_shmatprototype on this machine was "define"!
Keep the recommended value? [y]
shmdt() found.
Your select() operates on 32 bits at a time.
/bin/awk: Syntax error Context is:
>>> {print $} <<<
Generating a list of signal names and numbers...
Finding dependencies for perly.o.
ERROR CBC3198 ./.67112370.c:328 #if, #else, #elif, #ifdef, #ifndef block must.
FSUM3065 The COMPILE step ended with return code 12.
FSUM3017 Could not compile .67112370.c. Correct the errors and try again.
Finding dependencies for pp.o.
None of those blemishes has any real effect on the perl build.
The first one is intentional and is the result of a hints/os390.sh
setting.
The second one has been corrected in subsequent perl's but not (yet)
issued as a patch for perl 5.005_03. I'll see if I can conjure up a
patch for that.
The patch to makedepend.SH for the third blemish was posted to
this list and is available from the list archives as:
http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/1999-11/msg00032.html
you'll need to have GNU patch on hand to apply that since it is a unified
diff and OE patch only handles straight diffs, ed scripts and context
diffs but not GNU uni diffs.
> Checking to see how big your integers are...
> Your integers are 4 bytes long.
> Your long integers are 4 bytes long.
> Your short integers are 2 bytes long.
>
> You have void (*signal())().
>
> Checking whether your C compiler can cast large floats to int32.
> ERROR CBC3334 /usr/include/sys/types.h:455 Identifier uid_t has already
> been d
> efined on line 134 of "/usr/include/sys/types.h".
> ERROR CBC3202 /usr/include/sys/types.h:458 #endif can only appear at the
When I reach that point in the `sh Configure -des` process I see:
Checking to see how big your integers are...
You have void (*signal())().
Checking whether your C compiler can cast large floats to int32.
Checking whether your C compiler can cast negative float to unsigned.
vprintf() found.
Your vsprintf() returns (int).
So I suspect that your compiler and/or LE are misconfigured.
Note too that c89 is sensitive to environment variable settings so check
your profiles between systems and run:
env
and compare the output.
Peter Prymmer