static linking error

Charles Lockhart lockhart@jeans.ifa.hawaii.edu
Tue Jul 8 20:53:00 GMT 2003


 >> code, looks fine.  However when I try to statically link everything, I
 >> get errors, and I don't understand what the root of the problem is.
 >
 >
 > Why are you using -nostdlib and all that?  What happens if you just do
 > $(CROSS_COMPILE)gcc test.c -s
 > ?
 >
 > - Dan
 >
 >

Running "$(CROSS_COMPILE)gcc test.c -s" I get a small binary file that's 
identical to the one generated if I don't statically link the executable.

I'm trying to create a stand alone executable that I can download to the 
target system via a jtag interface and have it run.  But maybe I'm 
taking the wrong approach.

If I edit my LDFLAGS line to "LDFLAGS    = -static", removing the 
"-nostdlib -L${TARGET_PREFIX}/lib" stuff, I get the following errors:

ppc-405-linux-gnu-gcc -O2 -Wall   -c test.c
ppc-405-linux-gnu-gcc -o test 
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crt1.o 
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crti.o 
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/crtbegin.o 
test.o -lc 
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/crtend.o 
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crtn.o -static
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crt1.o(.text+0x0): In 
function `_start':
: multiple definition of `_start'
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/../../../../ppc-405-linux-gnu/lib/crt1.o(.text+0x0): 
first defined here
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crt1.o(.rodata+0x10): 
multiple definition of `_IO_stdin_used'
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/../../../../
ppc-405-linux-gnu/lib/crt1.o(.rodata+0x10): first defined here
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crt1.o(.data+0x0): In 
function `__data_start':
: multiple definition of `__data_start'
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/../../../../
ppc-405-linux-gnu/lib/crt1.o(.data+0x0): first defined here
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crti.o(.init+0x0): In 
function `_init':
/home/skunkworks/crosscompiler/crosstool-0.10/build/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/build-glibc/csu/crti.S:12: multiple definition of 
`_init'
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/../../../../
ppc-405-linux-gnu/lib/crti.o(.init+0x0):/home/skunkworks/crosscompiler/
crosstool-0.10/build/ppc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/
build-glibc/csu/crti.S:12: first defined here
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/ppc-405-linux-gnu/lib/crti.o(.fini+0x0): In 
function `_fini':
: multiple definition of `_fini'
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/../../../../
ppc-405-linux-gnu/lib/crti.o(.fini+0x0): first defined here
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/crtbegin.o(.data+0x0): 
multiple definition of `__dso_handle'
/home/skunkworks/crosscompiler/crosstool-0.10/result/ppc-405-linux-gnu/
gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/ppc-405-linux-gnu/3.2.3/crtbeginT.o(.data+0x0): 
first defined here
collect2: ld returned 1 exit status
make: *** [test] Error 1




------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com



More information about the crossgcc mailing list