[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

cross-compilation - the saga continues



Per advice I noted that was indeed using binutils-2.10 and dropped back
to binutils-2.9.1. I realize that this is different from the recommended
binutils-2.9.5, but I'm not sure where to get that. glibc did finally
compile w/o complaining about __libc_global_ctors being undefined.
However when I try to *use* the cross-compiler:

root@null /gnome-source/xc/config/imake $
/hurd-cross/bin/i586-pc-gnu-gcc -o imake -O2 -ansi -pedantic -Wall
-Wpointer-arith      imake.o  -L/X11R6/lib    
-Wl,-dynamic-linker=/hurd-cross/i586-pc-gnu/lib/libc-2.1.2.so
-Wl,-rpath=/lib:/X11R6/lib -Wl,-rpath-link=../../exports/lib
/lib/ld.so.1: undefined reference to `__libc_global_ctors'
collect2: ld returned 1 exit status
root@null /gnome-source/xc/config/imake $ 

This also occurs if -dynamic-linker=/lib/ld.so.1 (which is what "make
World" defaulted to using). My cross-compiler, gnu target glibc, etc are
stored in the prefix /hurd-cross instead of /usr/local, but that
shouldn't affect anything as I've modified all the instructions, should
it? 

I'm not entirely clear on how cross-compilation works, and where it has
to invoke particular local/target libraries. For example, here its
invoking ld.so.1 which is local to my linux system. Is this wrong? Do I
need to add something to my include path? It looks like ...ctors is
defined in GCC, and using nm I'm able to find the symbol in the compiled
library. This is all very mysterious to me!

-Seth



Reply to: