Re: undefined reference to __fixunssfdi, __ashldi3, __lshrdi3

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

 



Hi,

I've solved this issue. I needed to add the -lgcc option to the linker.

Is this the right way to make a standalone binary:

cross-ld -static -nostdlib -T temp.ld -o standalone_program start.o
abc.o xyz.o -lgcc -L<path_to_libs>

This is a cross compiled binary and I haven't tested it as yet.

JJ

On Thu, Oct 22, 2009 at 5:43 PM, JJ <alchemistmba@xxxxxxxxx> wrote:
> Hi,
>
> I'm trying to build a standalone binary. In the linking stage, I get
> errors complaining that the following symbols are missing:
>
> __fixunssfdi, __ashldi3, __lshrdi3
>
> These look like standard C symbols. For this code, I've implemented
> custom versions of the standard C functions I use - strcpy, printf,
> sprintf etc. I provide the -static and -nostdlib option to the linker
> to build the standalone binary.
>
> cross-ld -static -nostdlib -T temp.ld -o standalone_program start.o abc.o xyz.o
> ..
> : undefined reference to `__fixunssfdi'
> ..
> : undefined reference to `__ashldi3'
> ..
> : undefined reference to `__lshrdi3'
> gmake: *** [standalone_program] Error 1
>
>
> I've tried using g++ instead of the ld but that didn't help either.
>
> If I add the optimization option -Os to the build, it complains about
> an undefined reference to 'memset' in addition to the above symbols:
> : undefined reference to `memset'
>
> I'm using:
> GNU ld version 2.15
> gcc version 3.4.3
>
> JJ
>

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux