public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Problems building gcc4.5.0 fortran compiler when gold is enabled
@ 2010-04-22  6:48 Peter Elmer
  2010-04-24  1:06 ` Ian Lance Taylor
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Elmer @ 2010-04-22  6:48 UTC (permalink / raw)
  To: gcc-help

  Hi,

  I'm having some problems building gcc4.5.0 on linux/x86_64 with the fortran 
compiler, graphite and gold all enabled at the same time. The build dies with 
errors as in (a) below when attempting to link f951 itself (in stage 2 of the
compiler build). 

  The machine I'm using for the build itself is a RHEL5-derived system 
(Scientific Linux 5) with gcc4.1.2 and binutils 2.17.50 on the system 
itself. I however build and use binutils 2.20.1 as part of my build. Since a 
number of pieces are involved in building with gcc450/graphite/gold, I've 
summarized the full build procedure I'm using in a single flat recipe in (b) 
below. 

  Does anyone recognize this problem? Is there something missing or 
incorrect in my build recipe or something to be fixed in the gcc gfortran 
build when gold and graphite (using ppl) are simultaneously enabled? 

                                 cheers,
                                   Pete

(a)

/build/45go/BUILD/slc5_amd64_gcc450/external/gcc/4.5.0/gcc-4.5.0/obj/./prev-gcc/xgcc -B/build/45go/BUILD/slc5_amd64_gcc450/external/gcc/4.5.0/gcc-4.5.0/obj/./prev-gcc/ -B/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ -B/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ -B/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/lib/ -isystem /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/include -isystem /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/sys-include     -g -O2 -gtoggle -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H  -o f951 \
                fortran/arith.o fortran/array.o fortran/bbt.o fortran/check.o fortran/cpp.o fortran/data.o fortran/decl.o fortran/dump-parse-tree.o fortran/error.o fortran/expr.o fortran/interface.o fortran/intrinsic.o fortran/io.o fortran/iresolve.o fortran/match.o fortran/matchexp.o fortran/misc.o fortran/module.o fortran/openmp.o fortran/options.o fortran/parse.o fortran/primary.o fortran/resolve.o fortran/scanner.o fortran/simplify.o fortran/st.o fortran/symbol.o fortran/target-memory.o  fortran/convert.o fortran/dependency.o fortran/f95-lang.o fortran/trans.o fortran/trans-array.o fortran/trans-common.o fortran/trans-const.o fortran/trans-decl.o fortran/trans-expr.o fortran/trans-intrinsic.o fortran/trans-io.o fortran/trans-openmp.o fortran/trans-stmt.o fortran/trans-types.o main.o  libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  attribs.o -L/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/cloog-ppl/lib -lcloog -L/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/ppl/lib -lppl_c -lppl -lgmpxx -L/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/gmp/lib -L/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/mpfr/lib -L/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/mpc/lib -lmpc -lmpfr -lgmp -rdynamic -ldl  -L../zlib -lz
/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ld: /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/ppl/lib/libppl_c.a(ppl_c_implementation_common.o): in function ppl_io_asprint_variable:ppl_c_implementation_common.cc:2004: error: undefined reference to '__cxa_begin_catch'
/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ld: /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/ppl/lib/libppl_c.a(ppl_c_implementation_common.o): in function ppl_io_asprint_variable:ppl_c_implementation_common.cc:2004: error: undefined reference to '__cxa_end_catch'
/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ld: /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/ppl/lib/libppl_c.a(ppl_c_implementation_common.o): in function ppl_io_asprint_variable:ppl_c_implementation_common.cc:2004: error: undefined reference to '__cxa_begin_catch'
/build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ld: /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/ppl/lib/libppl_c.a(ppl_c_implementation_common.o): in function ppl_io_asprint_variable:ppl_c_implementation_common.cc:2004: error: undefined reference to '__cxa_end_catch'
<... many other errors including various std:: symbols ...>

(b)

# Starting from some convenient directory in which to do a build

export MYBUILD=$PWD
mkdir $MYBUILD/install
mkdir $MYBUILD/tmp
wget ftp://ftp.fu-berlin.de/unix/gnu/gcc/gcc-4.5.0/gcc-4.5.0.tar.bz2
wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.4.tar.bz2
wget http://www.mpfr.org/mpfr-2.3.2/mpfr-2.3.2.tar.bz2
wget http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
wget http://www.cs.unipr.it/ppl/Download/ftp/releases/0.10.2/ppl-0.10.2.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-ppl-0.15.9.tar.gz
wget http://ftp.gnu.org/gnu/bison/bison-2.4.tar.bz2
wget http://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2

gtar xjf gcc-4.5.0.tar.bz2
gtar xjf gmp-4.2.4.tar.bz2
gtar xjf mpfr-2.3.2.tar.bz2
gtar xzf mpc-0.8.1.tar.gz
gtar xjf ppl-0.10.2.tar.bz2
gtar xzf cloog-ppl-0.15.9.tar.gz
gtar xjf bison-2.4.tar.bz2
gtar xjf binutils-2.20.1.tar.bz2

# build bison as it is missing on the system and needed for binutils
cd bison-2.4
./configure --prefix=$MYBUILD/tmp/bison > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
make install > installlog.out 2>&1 
export PATH=$MYBUILD/tmp/bison/bin:$PATH

cd ../binutils-2.20.1
./configure --prefix=$MYBUILD/install --enable-gold > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
# Minor fixup for the install 
perl -p -i -e 's|LN = ln|LN = cp -p|;s|ln ([^-])|cp -p $1|g' `find . -name Makefile`
make install > installlog.out 2>&1

# Make temporary {gmp,mpfr,mpc,ppl,cloog-ppl} builds as they are needed 
# for gcc4.5 with graphite enabled. 
cd ../gmp-4.2.4
./configure --prefix=$MYBUILD/tmp/gmp --disable-shared > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
make install > installlog.out 2>&1

cd ../mpfr-2.3.2
./configure --prefix=$MYBUILD/tmp/mpfr --with-gmp=$MYBUILD/tmp/gmp --disable-shared > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
make install > installlog.out 2>&1

cd ../mpc-0.8.1
./configure --prefix=$MYBUILD/tmp/mpc --with-gmp=$MYBUILD/tmp/gmp --with-mpfr=$MYBUILD/tmp/mpfr --disable-shared > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
make install > installlog.out 2>&1

cd ../ppl-0.10.2
./configure --prefix=$MYBUILD/tmp/ppl --disable-shared > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
make install > installlog.out 2>&1

cd ../cloog-ppl-0.15.9
./configure --prefix=$MYBUILD/tmp/cloog-ppl --with-ppl=$MYBUILD/tmp/ppl --with-gmp=$MYBUILD/tmp/gmp --disable-shared > configlog.out 2>&1
make -j6 > buildlog.out 2>&1
make install > installlog.out 2>&1

# Build the compiler
cd ../gcc-4.5.0
mkdir -p obj
cd obj
../configure --prefix=$MYBUILD/install --enable-languages=c,c++,fortran --with-gmp=$MYBUILD/tmp/gmp --with-mpfr=$MYBUILD/tmp/mpfr --with-mpc=$MYBUILD/tmp/mpc --with-ppl=$MYBUILD/tmp/ppl --with-cloog=$MYBUILD/tmp/cloog-ppl --enable-shared --enable-gold > configlog.out 2>&1
make -j6 bootstrap > buildlog.out 2>&1



-------------------------------------------------------------------------
Peter Elmer     E-mail: Peter.Elmer@cern.ch      Phone: +41 (22) 767-4644
Address: CERN Division PPE, Bat. 32 2C-14, CH-1211 Geneva 23, Switzerland
-------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Problems building gcc4.5.0 fortran compiler when gold is enabled
  2010-04-22  6:48 Problems building gcc4.5.0 fortran compiler when gold is enabled Peter Elmer
@ 2010-04-24  1:06 ` Ian Lance Taylor
  0 siblings, 0 replies; 2+ messages in thread
From: Ian Lance Taylor @ 2010-04-24  1:06 UTC (permalink / raw)
  To: Peter Elmer; +Cc: gcc-help

Peter Elmer <Peter.Elmer@cern.ch> writes:

> /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/x86_64-unknown-linux-gnu/bin/ld: /build/45go/slc5_amd64_gcc450/external/gcc/4.5.0/tmp/ppl/lib/libppl_c.a(ppl_c_implementation_common.o): in function ppl_io_asprint_variable:ppl_c_implementation_common.cc:2004: error: undefined reference to '__cxa_begin_catch'

PPL uses C++ and exceptions.  This means that if you link against PPL
configured with --disable-shared you need to also link with -lstdc++.
It may work to configure gcc with the --with-host-libstdcxx option.

The installation docs say:

--with-host-libstdcxx=linker-args
    If you are linking with a static copy of PPL, you can use this
    option to specify how the linker should find the standard C++
    library used internally by PPL. Typical values of linker-args
    might be `-lstdc++' or `-Wl,-Bstatic,-lstdc++,-Bdynamic -lm'. If
    you are linking with a shared copy of PPL, you probably do not
    need this option; shared library dependencies will cause the
    linker to search for the standard C++ library automatically.

Ian

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-04-23 15:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-22  6:48 Problems building gcc4.5.0 fortran compiler when gold is enabled Peter Elmer
2010-04-24  1:06 ` Ian Lance Taylor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).