Perl / perl5

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

NCR C compiler complaints #3892

Closed p5pRT closed 14 years ago

p5pRT commented 23 years ago

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

Searchable as RT6859$

p5pRT commented 23 years ago

From chuck@nicolabanking.com

make SCREEN PRINT​:   `sh cflags libperl.so toke.o` -KPIC toke.c   CCCMD = /bin/cc -DPERL_CORE -c -I/usr/include -I/usr/ucbinclude -I/usr/local/include -O NCR High Performance C Compiler R3.0c (c) Copyright 1994-97\, NCR Corporation (c) Copyright 1987-97\, MetaWare Incorporated w "toke.c"\,L462/C23(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L623/C10(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L1269/C20(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L1808/C7(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L2034/C10(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L2040/C10(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L2042/C26(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L2986/C23(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3208/C17(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3482/C8(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3482/C32(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3510/C8(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3811/C8(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3812/C8(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3820/C8(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3938/C55(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3972/C22(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L3994/C51(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L4007/C12(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L4157/C9(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L5907/C24(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L6358/C20(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L6430/C5(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L6672/C18(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L6776/C5(#257)​: '=' encountered where '==' may have been intended. w "toke.c"\,L5165​: Perl_yylex​: Global CSE elimination suppressed; function is too big. Memory exhausted (malloc returned 0) While allocating 16000 byte chunk for pool live/dead vectors

Aborting(1)... *** Error code 1 (bu21)

make​: fatal error. $

MYCONFIG SCREEN PRINT​: $ vi myconfig "myconfig" 37 lines\, 1893 characters #!/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 6 subversion 1) configuration​:   Platform​:   osname=svr4.0\, osvers=3.0\, archname=3426-svr4.0   uname='nbs3426 nbs3426 4.0 3.0 3426 pentium ii(tm)-isapci '   config_args='-dsE'   hint=recommended\, useposix=true\, d_sigaction=define   usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=unde f   useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef   use64bitint=undef use64bitall=undef uselongdouble=undef   Compiler​:   cc='/bin/cc'\, ccflags ='-I/usr/include -I/usr/ucbinclude -I/usr/local/includ e'\,   optimize='-O'\,   cppflags='-I/usr/include -I/usr/ucbinclude -I/usr/local/include'   ccversion=''\, gccversion=''\, gccosandvers=''   intsize=4\, longsize=4\, ptrsize=4\, doublesize=8\, byteorder=1234   d_longlong=define\, longlongsize=8\, d_longdbl=define\, longdblsize=12   ivtype='long'\, ivsize=4\, nvtype='double'\, nvsize=8\, Off_t='off_t'\, lseeksize =4   alignbytes=4\, usemymalloc=y\, prototype=define   Linker and Libraries​:   ld='/bin/cc'\, ldflags ='-L/usr/ccs/lib -L/usr/ucblib -L/usr/local/lib -L/usr /gnu/lib'   libpth=/usr/local/lib /usr/gnu/lib /lib /usr/lib /usr/ccs/lib /usr/ucblib   libs=-lsocket -lnsl -ldbm -ldl -lld -lm -lc -lcrypt -lucb -lx   perllibs=-lsocket -lnsl -ldl -lld -lm -lc -lcrypt -lucb -lx   libc=\, so=so\, useshrplib=true\, libperl=libperl.so   Dynamic Linking​:   dlsrc=dl_dlopen.xs\, dlext=so\, d_dlsymun=undef\, ccdlflags=' '   cccdlflags='-KPIC'\, lddlflags='-G -L/usr/ccs/lib -L/usr/ucblib -L/usr/local/ lib -L/usr/gnu/lib'

!NO!SUBS!

p5pRT commented 23 years ago

From @nwc10

    \`sh  cflags libperl\.so toke\.o\` \-KPIC toke\.c
      CCCMD =  /bin/cc \-DPERL\_CORE \-c \-I/usr/include \-I/usr/ucbinclude

-I/usr/local/include -O

w "toke.c"\,L5165​: Perl_yylex​: Global CSE elimination suppressed; function is too big. Memory exhausted (malloc returned 0) While allocating 16000 byte chunk for pool live/dead vectors

Aborting(1)... *** Error code 1 (bu21)

optimize='\-O'\,

It seems you still have the optimiser flags in.

I think (this is from memory\, but hopefully is correct) in your existing configured build directory your best bet is to

1​: edit config.sh. Find the line optimize='-O' and change it to   optimize='' 2​: ./Configure -S   to rebuild the Makefile and other files which depend on the settings in   config.sh 3​: rerun make.

Hopefully your compiler line will then be​:

  `sh cflags libperl.so toke.o` -KPIC toke.c   CCCMD = /bin/cc -DPERL_CORE -c -I/usr/include -I/usr/ucbinclude -I/usr/local/include

(ie that -O at the end is gone)

You'll end up with a perl built with no optimisation\, which might be slower that you would like.

A better but more involved solution would be to see if your compiler's documentation gives any clues on which flags to use to tune its behaviour; either by turning off all Global CSE (which the compiler appears to be reporting is where it's hitting its limits) or by telling it exactly how large a buffer to allocate for Global CSE (so that it doesn't attempt to do what it's currently doing\, and allocate a buffer that exhausts memory)

I have no idea how to do that\, but believe that some compilers let you do this sort of thing.

Nicholas Clark

p5pRT commented 23 years ago

From @jhi

An alternative to this is to turn off the optimization only on the toke.c. rm config.sh and re-Configure with an additional parameter​:

  ./Configure -de -Dtoke_cflags='optimize=""' ...

This should remove optimization from only the toke.c

A better but more involved solution would be to see if your compiler's documentation gives any clues on which flags to use to tune its behaviour; either by turning off all Global CSE (which the compiler appears to be reporting is where it's hitting its limits) or by telling it exactly how large a buffer to allocate for Global CSE (so that it doesn't attempt to do what it's currently doing\, and allocate a buffer that exhausts memory)

I have no idea how to do that\, but believe that some compilers let you do this sort of thing.

Yes\, many compilers have an option like that\, -Olimit N or -Omaxmem=N or something of the sort.

Nicholas Clark

p5pRT commented 23 years ago

From @doughera88

An alternative to this is to turn off the optimization only on the toke.c. rm config.sh and re-Configure with an additional parameter​:

\./Configure \-de \-Dtoke\_cflags='optimize=""' \.\.\.

This should remove optimization from only the toke.c

Normally\, this is a good idea\, but for NCR MP-RAS you also need to turn off the optimizer for reg*.c\, or else regular expressions won't work. The first symptom of that will be a very puzzling failure to correctly build DynaLoader.

Your best bet here is to turn off the optimizer all around. See the section =item Optimizer in the INSTALL file for details.

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

Thanks for your suggestions anyway.

p5pRT commented 14 years ago

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