Steve,

> I have successfully bootstrapped and tested the toplevel libgcc patch on
> IA64 HP-UX.  When trying to build IA64 Linux the bootstrap failed with:

great, thanks.

> /bin/sh /wsp/sje/gcc_git/src/gcc/libgcc/../mkinstalldirs 
> ./wsp/sje/gcc_git/build-ia64-debian-linux-gnu-gcc/obj_gcc/./gcc/xgcc 
> -B/wsp/sje/gcc_git/build-ia64-debian-linux-gnu-gcc/obj_gcc/./gcc/ 
> -B/wsp/sje/gcc_git/gcc-ia64-debian-linux-gnu-gcc/ia64-debian-linux-gnu/bin/ 
> -B/wsp/sje/gcc_git/gcc-ia64-debian-linux-gnu-gcc/ia64-debian-linux-gnu/lib/ 
> -isystem 
> /wsp/sje/gcc_git/gcc-ia64-debian-linux-gnu-gcc/ia64-debian-linux-gnu/include 
> -isystem 
> /wsp/sje/gcc_git/gcc-ia64-debian-linux-gnu-gcc/ia64-debian-linux-gnu/sys-include
>     -O2  -g -O2 -DIN_GCC   -DUSE_LIBUNWIND_EXCEPTIONS -W -Wall 
> -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes 
> -Wold-style-definition  -isystem ./include  -fPIC -DUSE_GAS_SYMVER -g 
> -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  
> -shared -nodefaultlibs -Wl,-h,libunwind.so.7 -Wl,-z,text -Wl,-z,defs -o 
> /libunwind.so.7.tmp -g -O2 -B./  -lc && rm -f / && if [ -f /libunwind.so.7 ]; 
> then mv -f /libunwind.so.7 /libunwind.so.7.backup; else true; fi && mv 
> /libunwind.so.7.tmp /libunwind.so.7 && ln -s libunwind.so.7 /
> /wsp/sje/gcc_git/gcc-ia64-debian-linux-gnu-gcc/ia64-debian-linux-gnu/bin/ld: 
> cannot open output file /libunwind.so.7.tmp: Permission denied
> collect2: error: ld returned 1 exit status
[...]
> It looks like a prefix is missing somewhere since it is trying to access 
> /libunwind.so.  This
> may be something messed up in my build area again but I did run autoconf in 
> libgcc so I am
> not sure what is going on.  I'll dig around some more but I thought I would 
> see if this looks
> familiar to you.

It didn't, but I now see what's going on: gcc/config.gcc has

*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | 
*-*-kopensolaris*-gnu)
[...]
  tmake_file="t-slibgcc-elf-ver t-linux"

t-slibgcc-elf-ver has the whole shebang necessary to build versioned ELF
shared libraries, among others SHLIB_DIR which is missing above.  This
should be dealt with by using

tmake_file="$tmake_file t-slibgcc t-slibgcc-elf-ver"

in libgcc/config.host.

t-linux adds

SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver

but there's more SHLIB_* related stuff in the regular gcc/config ia64
t-* files used on ia64*-*-linux*:

ia64/t-ia64:SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver
t-libunwind:SHLIB_LC = -lunwind -lc
ia64/t-glibc:SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-glibc.ver

This seems all so involved and entangled with the t-slibgcc* stuff that
it's probably best to keep out of this patch.  I'll try to come up with
something over the week, either fixing up this patch that it should
handle things correctly or splitting it out into its own, either
together with the rest of SHLIB_* handling or separate and on top of
that.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to