Andreas Schwab <sch...@linux-m68k.org> writes: > I'm seeing this bootstrap failure on ia64 (configured with > --with-system-libunwind): > > /usr/local/gcc/gcc-20110806/Build/./prev-gcc/g++ > -B/usr/local/gcc/gcc-20110806/Build/./prev-gcc/ -B/usr/ia64-suse-linux/bin/ > -nostdinc++ > -B/usr/local/gcc/gcc-20110806/Build/prev-ia64-suse-linux/libstdc++-v3/src/.libs > > -B/usr/local/gcc/gcc-20110806/Build/prev-ia64-suse-linux/libstdc++-v3/libsupc++/.libs > > -I/usr/local/gcc/gcc-20110806/Build/prev-ia64-suse-linux/libstdc++-v3/include/ia64-suse-linux > > -I/usr/local/gcc/gcc-20110806/Build/prev-ia64-suse-linux/libstdc++-v3/include > -I/usr/local/gcc/gcc-20110806/libstdc++-v3/libsupc++ > -L/usr/local/gcc/gcc-20110806/Build/prev-ia64-suse-linux/libstdc++-v3/src/.libs > > -L/usr/local/gcc/gcc-20110806/Build/prev-ia64-suse-linux/libstdc++-v3/libsupc++/.libs > -DUSE_LIBUNWIND_EXCEPTIONS -g -O2 -DIN_GCC -W -Wall -Wwrite-strings > -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long > -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common > -DHAVE_CONFIG_H -o gengtype gengtype.o gengtype-lex.o gengtype-parse.o > gengtype-state.o version.o errors.o libcommon.a ../libcpp/libcpp.a > ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a libcommon.a > ../libcpp/libcpp.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a > /usr/local/gcc/gcc-20110806/Build/./prev-gcc/libgcc_s.so: undefined reference > to `__libunwind__Unwind_Find_FDE' > collect2: error: ld returned 1 exit status > make[3]: *** [gengtype] Error 1 > make[3]: *** Waiting for unfinished jobs.... > make[3]: Leaving directory `/usr/local/gcc/gcc-20110806/Build/gcc' > make[2]: *** [all-stage2-gcc] Error 2 > make[2]: Leaving directory `/usr/local/gcc/gcc-20110806/Build' > make[1]: *** [stage2-bubble] Error 2 > make[1]: Leaving directory `/usr/local/gcc/gcc-20110806/Build' > make: *** [bootstrap] Error 2 > > Looks like -lunwind is missing somewhere.
AFAICT -lunwind comes from gcc/config/t-libunwind (SHLIB_LC) and is still present *if t-libunwind is used*. The problem could be that there are several different definitions of LIB2ADDEH for the ia64-*-* configs. In the case of Linux/IA-64, we now have > grep LIB2ADDEH ia64/t-ia64 ia64/t-glibc ia64/t-eh-ia64 t-libunwind ia64/t-glibc:LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ ia64/t-eh-ia64:LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \ t-libunwind:LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ t-libunwind:LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c On the 4.6 branch (in gcc/config), we have ia64/t-ia64:LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \ t-libunwind:LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ t-libunwind:LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c ia64/t-glibc:LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ It seems the ordering is wrong, i.e. t-libunwind should come before ia64/t-glibc. Perhaps you could have a look at all those definitions of LIB2ADDEH*? Probably some of them can be removed, or the t-* files not included in particular configurations. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University