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 Center
jw@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