Steve, > On Tue, 2011-07-19 at 12:47 +0200, Rainer Orth wrote: > >> unfortunately, I don't even have an idea what this error is supposed to >> mean. Seems to be an error ultimately due to bfd/elfxx-ia64.c >> (elfNN_ia64_size_dynamic_sections) failing. >> >> To debug this, I'd start by comparing the link lines for a vanilla build >> with my patch, then, if no differences are apparent, check the object >> files. > > Ah, I looked at the link lines and the standard build includes this in > the link line: > > -Wl,--version-script=libgcc.map > > It is missing in the build I did with your patch.
now I understand what's happening: with t-slibgcc included in libgcc/config.host, all the SHLIB_* variables gcc/libgcc.mvars (which stem from gcc/config.gcc including t-slibgcc-elf-ver via the *-*-linux* case) are overridden by the most generic defaults. I think you'll need the following: ia64*-*-linux*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" # FIXME: Move to *-*-linux* once the SHLIB_* move is complete. tmake_file="t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" tmake_file="$tmake_file ia64/t-ia64 t-softfp ia64/t-fprules-softfp ia64/t-softfp-compat ia64/t-glibc ia64/t-eh-ia64 t-libunwind" if test x$with_system_libunwind != xyes ; then tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" fi md_unwind_header=ia64/linux-unwind.h ;; and a new libgcc/config/t-linux: # Override t-slibgcc-elf-ver to export some libgcc symbols with # the symbol versions that glibc used. SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver The t-slibgcc* fragments have been introduced to avoid the massive duplication previously found there, but are equivalent to the current gcc/config/t-slibgcc-elf-ver. Perhaps you could give this a try? Thanks. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University