[Clas_offline] evnt_2_bos.F
Johann Goetz
jgoetz at ucla.edu
Tue Nov 24 20:42:34 EST 2009
Just looking at the gcc man page:
-fomit-frame-pointer
Don't keep the frame pointer in a register for functions that don't
need one. This avoids the instructions to save, set up and restore
frame pointers; it also makes an extra register available in many
functions. It also makes debugging impossible on some machines.
On some machines, such as the VAX, this flag has no effect, because
the standard calling sequence automatically handles the frame
pointer and nothing is saved by pretending it doesn't exist. The
machine-description macro "FRAME_POINTER_REQUIRED" controls whether
a target machine supports this flag.
Enabled at levels -O, -O2, -O3, -Os.
This shouldn't crash the compiler... really nothing should. It looks
like this is TRUE bug of gcc.
Notice that the -fomit-frame-pointer is redundant here because it is
already "Enabled" with the -O option. Can you compile it without the
-fomit-frame-pointer but with just the -O option? If you can, then maybe
there is some conflict with these two options and the -m32 between them.
So it seems this is an optimization that *need not* be used. Unless
there is some specific reason for some specific line of code, but then
it should only used on that little bit of code only (and not the whole
repository of libraries and programs). I suggest not using it (removing
it completely in CVS).
-Johann
=============== Previous Message ================================
From: RHS Linux User <lcs1h at imap.phys.virginia.edu>
To: clas_offline at jlab.org, jgoetz at ucla.edu, turonski at jlab.org
Subject: evnt_2_bos.F
Date: Tue, 24 Nov 2009 17:09:45 -0500 (EST) (14:09 PST)
I get an internal compiler error on seb/evnt_2_bos.F (the version with
BTEST replaced) when using gfortran with the -fomit-frame-pointer flag.
Omitting the flag or using the previous version of evnt_2_bos.F works.
This seems ominous to me, but perhaps someone can ease my mind. The
svn
build omits this flag but RHEL5 and RHFC8 still retained it under cvs.
Below are (1) my gfortran on Fedora 11 32 bit and (2) the error:
Cole Smith
(1)
gfortran -v
Using built-in specs.
Target: i586-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile
--enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib
--with-ppl --with-cloog
--with-tune=generic --with-arch=i586 --build=i586-redhat-linux
Thread model: posix
gcc version 4.4.1 20090725 (Red Hat 4.4.1-2) (GCC)
(2)
gfortran -O -fno-automatic -ffixed-line-length-none
-fno-second-underscore
-funroll-loops -m32 -fomit-frame-pointer -DLinux -fPIC -I.
-I../inc_derived/ -I../include/ -I./
-I/home/cole/CLAS/builds/release-f8-2/packages/include
-I/home/cole/CLAS/builds/release-f8-2/packages/inc_derived
-I/usr/include
-I/usr/X11R6/include -c evnt_2_bos.F -o evnt_2_bos.o
../include/bcs.inc:70.10:
Included at evnt_2_bos.F:41:
save /BCS/
1
Warning: SAVE statement at (1) follows blanket SAVE statement
../include/clasmdl.inc:64.11:
Included at evnt_2_bos.F:42:
SAVE /CLASMDL/
1
Warning: SAVE statement at (1) follows blanket SAVE statement
evnt_2_bos.F: In function #@~Xevnt_2_bos#@~Y:
evnt_2_bos.F:528: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
More information about the Clas_offline
mailing list