This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more infromation.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Philip Blundell writes: > >When I compile and link I need to append -lgcc to the command, > >as well as adding the folling link: > >> cd ${prefix}/arm-elf/arm-elf/lib; ln -s ../../lib/gcc-lib/arm-elf/2.95/libgc > >c.a . > > > >in order for the program to link, else it can't find _gccmain(). > >Is this correct, or have I missed some step in the build/install? > > What is the exact command you use for linking? The problems seems to be that I'm using ld directly for the link, instead letting gcc to the link, but when I use gcc I get other link error from libc.a which I don't using ld. > From: Mark Pulver <mpulver@research.canon.com.au> > To: greyham@research.canon.com.au (Graham Stoney) > Subject: Re: ld needing libgcc > Date: Mon, 16 Aug 1999 14:28:02 +1000 (EST) > > Graham Stoney writes: > > Are you using 'gcc' to perform the final link? > > It sounds like you may be running 'ld' directly, and it doesn't know about > > libgcc; try running 'gcc' instead -- it will pass the required flags to 'ld'. > Yes, I'm using ld for the final link as: > % arm-elf-ld -Map map --verbose --entry entry_point -static -T arm.link --cref -o bounce3.elf demo/bounce3.o salib.alf -lgcc > ! GNU ld version 2.9.4 (with BFD 2.9.4.0.1) > ! Supported emulations: > ! armelf > ! opened script file arm.link > ! attempt to open boot.o succeeded > ! boot.o > ! attempt to open demo/bounce3.o succeeded > ! demo/bounce3.o > ! attempt to open salib.alf succeeded > ! (salib.alf)irq.o > ! (salib.alf)irqlib.o > ! (salib.alf)platform.o > ! (salib.alf)driver.o > ! (salib.alf)lcd.o > ! (salib.alf)led.o > ! (salib.alf)timer.o > ! (salib.alf)crt.o > ! (salib.alf)irqtrap.o > ! (salib.alf)control.o > ! (salib.alf)devnode.o > ! (salib.alf)iolib.o > ! attempt to open ${prefix}arm-elf/arm-elf/lib/libgcc.a succeeded > ! (${prefix}arm-elf/arm-elf/lib/libgcc.a)__main.o > ! (${prefix}arm-elf/arm-elf/lib/libgcc.a)_ctors.o > ! (${prefix}arm-elf/arm-elf/lib/libgcc.a)_divsi3.o > ! (${prefix}arm-elf/arm-elf/lib/libgcc.a)_dvmd_tls.o > ! (${prefix}arm-elf/arm-elf/lib/libgcc.a)_udivsi3.o > ! (${prefix}arm-elf/arm-elf/lib/libgcc.a)_umodsi3.o > > If I try using gcc as you suggest if fails with a link error trying > to load something from libc.a which my link doesn't: > % arm-elf-gcc -Xlinker -Map -Xlinker map -Xlinker --verbose -static -Xlinke-T -Xlinker arm.link -Xlinker --cref -o bounce3.elf demo/bounce3.o salib.alf > ! ${prefix}arm-elf/arm-elf/lib/libc.a(syscalls.o): In function `_sbrk': > ! /a/elph/projects/rama/armbuild/gcc-2.95/arm-elf/newlib/libc/sys/arm/syscalls.c:437: undefined reference to `__end__' > ! GNU ld version 2.9.4 (with BFD 2.9.4.0.1) > ! Supported emulations: > ! armelf > ! opened script file arm.link > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/crtbegin.o succeeded > ! ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/crtbegin.o > ! attempt to open ${prefix}arm-elf/arm-elf/lib/crt0.o succeeded > ! ${prefix}arm-elf/arm-elf/lib/crt0.o > ! attempt to open boot.o succeeded > ! boot.o > ! attempt to open demo/bounce3.o succeeded > ! demo/bounce3.o > ! attempt to open salib.alf succeeded > ! (salib.alf)irq.o > ! (salib.alf)irqlib.o > ! (salib.alf)platform.o > ! (salib.alf)driver.o > ! (salib.alf)lcd.o > ! (salib.alf)led.o > ! (salib.alf)timer.o > ! (salib.alf)crt.o > ! (salib.alf)irqtrap.o > ! (salib.alf)control.o > ! (salib.alf)devnode.o > ! (salib.alf)iolib.o > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.so failed > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a succeeded > ! (${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a)__main.o > ! (${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a)_divsi3.o > ! (${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a)_dvmd_tls.o > ! (${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a)_exit.o > ! (${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a)_udivsi3.o > ! (${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a)_umodsi3.o > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libc.so failed > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libc.a failed > ! attempt to open ${prefix}arm-elf/arm-elf/lib/libc.so failed > ! attempt to open ${prefix}arm-elf/arm-elf/lib/libc.a succeeded > ! (${prefix}arm-elf/arm-elf/lib/libc.a)findfp.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)fwalk.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)impure.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)mallocr.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)memset.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)mlock.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)sbrkr.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)stdio.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)syscalls.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)writer.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)closer.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)errno.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)fflush.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)freer.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)lseekr.o > ! (${prefix}arm-elf/arm-elf/lib/libc.a)readr.o > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.so failed > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/libgcc.a succeeded > ! attempt to open ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/crtend.o succeeded > ! ${prefix}arm-elf/lib/gcc-lib/arm-elf/2.95/crtend.o > ! collect2: ld returned 1 exit status > > Mark > ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |