On Sat, 5 May 2012 07:13:28 +0100, Nicholas Clark <[email protected]> wrote:
> On Fri, May 04, 2012 at 01:38:00PM +0200, H.Merijn Brand wrote: > > Automated smoke report for 5.15.9 patch > > 5a0c7e9d45ff6da450098635b233527990112d8a v5.15.9-270-g5a0c7e9 > > a5: PA8700 (PA-RISC2.0/64/2 cpu) > > on HP-UX - B.11.00/64 > > using cc version B.11.X.35098-35101.GP > > smoketime 14 hours 53 minutes (average 1 hour 51 minutes) > > > v5.15.9-270-g5a0c7e9 Configuration (common) none > > ----------- --------------------------------------------------------- > > O O O m - - > > O O O O O O -Duse64bitall > > O O O m - - -Duseithreads > > O O O O O O -Duseithreads -Duse64bitall > > So, to replicate the 'm', configure exactly the same way: > > ./Configure -de -DDEBUGGING -Dusedevel -Dcc=ccache\ cc -Dld=cc > > > one gets these flags > > $ egrep '^(optimize|ccflags)=' config.sh > ccflags=' -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -DDEBUGGING > -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ' > optimize='+O2 +Onolimit -g' > $ make run.o > `sh cflags "optimize='+O2 +Onolimit -g'" run.o` run.c > CCCMD = ccache cc -DPERL_CORE -c -Ae -D_HPUX_SOURCE > -Wl,+vnocompatwarnings -DDEBUGGING -I/usr/local/include -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 +O2 +Onolimit -g > cc: error 1414: Can't handle preprocessed file > "/perl/usr/nick/.ccache/run.tmp.p5p-hpux.28123.i" if -g and -O specified. > *** Error exit code 1 > > Stop. > > > Simply add -Duse64bitall to that Configure command line: > > ./Configure -de -Duse64bitall -DDEBUGGING -Dusedevel -Dcc=ccache\ cc -Dld=cc > > > and one gets the same flags, just with +DD64 added: > > $ egrep '^(optimize|ccflags)=' config.sh > ccflags=' -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -DDEBUGGING > -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ' > optimize='+O2 +Onolimit -g' > $ make run.o > `sh cflags "optimize='+O2 +Onolimit -g'" run.o` run.c > CCCMD = ccache cc -DPERL_CORE -c -Ae -D_HPUX_SOURCE > -Wl,+vnocompatwarnings +DD64 -DDEBUGGING -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +O2 +Onolimit -g > cc: warning 404: Pre-processor not invoked, options ignored. > > > > and it works! > > So it looks like a crazy compiler, in in that doesn't permit -g +O2 for 32 bit > mode, but does permit -g +O2 for 64 bit mode. But wait. What's the bit about > "Can't handle preprocessed file" > > $ echo 'int i;' >bonkers.c > $ cc -c -g +O2 bonkers.c > $ cc -E -g +O2 bonkers.c >bonkers.i > $ cc -c -g +O2 bonkers.i > cc: error 1414: Can't handle preprocessed file "bonkers.i" if -g and -O > specified. > $ cat bonkers.i > # 1 "bonkers.c" > int i; > > $ cc -c -g +O2 +DD64 bonkers.c > $ cc -E -g +O2 +DD64 bonkers.c >bonkers.i > $ cc -c -g +O2 +DD64 bonkers.i > $ cat bonkers.i > # 1 "bonkers.c" > int i; > > > No, it's not just crazy compiler, its insane! It handles -g +O2 just fine > normally, but for 32 bit mode it refuses to accept pre-processed input. > Whereas for 64 bit mode it does. > > If HP think that this isn't a bug, I'd love to know what their excuse is. Wow, what dig-work. This is indeed insane. It probably only #fail this way on PA-RISC, as the itanium boxes seem to accept these. I do not expect HP to come with a fix, as PA-RISC is kinda abandoned. I could try to contact them. Shall I alter the hints to drop +O when -g is in place? I also tried with +O1, but the effect was the same > Nicholas Clark -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.14 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
