victor@watson.ibm.com (Victor Miller) (04/17/91)
I found the following problem with building perl 4.003 on SunOs 4:
in hints/sunos_4_0_2.sh we have
echo ': work around botch in SunOS 4.0.1 and 4.0.2' >>../perl.h
echo '#ifndef fputs' >>../perl.h
echo '#define fputs(str,fp) fprintf(fp,"%s",str)' >>../perl.h
echo '#endif' >>../perl.h
Why does the first line start with a ':'? This cause cc to choke. I
changed the contents of the approriate line in perl.h to use standard
cc comments, and everything built ok.
I had gotten perl 3.044 to build successfully on RS/6000's by adding
the option -qlanglvl=ansi (I don't think much else). However, lots of
things have changed in 4.003 and am stymied. I have the following
errors:
shire.watson.ibm.com:/a/shire/homes/shire/victor/perl-4.003: make
cc -c `sh cflags.SH perl.o` perl.c
CFLAGS = -D_NO_PROTO -qlanglvl=ansi -O
53 | char *index(), *strcpy(), *getenv();
1506-041: (S) Parameter list cannot contain fewer parameters than required by macro definition.
869 | curcmd = &compiling;
...........a............
a - 1506-016: (E) Operands must be pointers to compatible types.
make: 1254-004 The error code from the last command is 1.
Make Quitting.
Can anyone help with this?
--
Victor S. Miller
Vnet and Bitnet: VICTOR at WATSON
Internet: victor@watson.ibm.com
IBM, TJ Watson Research Centerjw@sics.se (Johan Widen) (04/18/91)
>>>>> In article <VICTOR.91Apr16174952@irt.watson.ibm.com>, victor@watson.ibm.com (Victor Miller) writes:
victor> I had gotten perl 3.044 to build successfully on RS/6000's by adding
victor> the option -qlanglvl=ansi (I don't think much else). However, lots of
victor> things have changed in 4.003 and am stymied. I have the following
victor> errors:
victor> shire.watson.ibm.com:/a/shire/homes/shire/victor/perl-4.003: make
victor> cc -c `sh cflags.SH perl.o` perl.c
victor> CFLAGS = -D_NO_PROTO -qlanglvl=ansi -O
victor> 53 | char *index(), *strcpy(), *getenv();
victor> 1506-041: (S) Parameter list cannot contain fewer parameters than required by macro definition.
victor> 869 | curcmd = &compiling;
victor> ...........a............
victor> a - 1506-016: (E) Operands must be pointers to compatible types.
victor> make: 1254-004 The error code from the last command is 1.
I made the following change to perl.c
*** perl.c.org Tue Apr 16 09:59:49 1991
--- perl.c Tue Apr 16 19:50:48 1991
***************
*** 50,56 ****
--- 50,58 ----
{
register STR *str;
register char *s;
+ #ifndef __STDC__
char *index(), *strcpy(), *getenv();
+ #endif
bool dosearch = FALSE;
#ifdef DOSUID
char *validarg = "";
I did not compile with -qlanglvl=ansi and I did not use optimization either.
I seem to remember that I used -D_NO_PROTO but I'm not sure.
--
Johan Widen
SICS, PO Box 1263, S-164 28 KISTA, SWEDEN Internet: jw@sics.se
Tel: +46 8 752 15 32 Ttx: 812 61 54 SICS S Fax: +46 8 751 72 30