Subject: Re: can't profile on Shark
To: Ignatios Souvatzis <is@netbsd.org>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm
Date: 06/26/2003 11:14:29
> > Hi,
> >
> > marie dijk !% make
> > cc -O2 -Wstrict-prototypes -Wmissing-prototypes -Werror -pg -c dijk.c
> > cc -O2 -Wstrict-prototypes -Wmissing-prototypes -Werror -pg -c radixheap.c
> > cc -pg -o dijk dijk.o radixheap.o
> > /usr/lib/libgcc_p.a(_fixunssfsi.po): In function `__fixunssfsi':
> > _fixunssfsi.po(.text+0x24): undefined reference to `__gesf2'
> > *** Error code 1
> >
> This is because the libraries specified to ld are
>
> -lgcc_p -lc_p -lgcc_p
>
> and libc_p is missing a __fixunssfsi function which is needed by gmon.o.
> libgcc_p (the second instance) provides it, but it doesn't provide
> __gesf2; and by that time it's too late to go back and search libc_p.a
> again.
>
> I don't know why the gmon module needs to do FP arithmetic, I though it
> just wrote out the raw tables.
>
I've tracked down why these functions aren't in libc, but I've no idea why
Ben has removed them from ELF.
revision 1.3
date: 2001/03/08 18:56:19; author: bjh21; state: Exp; lines: +9 -1
Re-instate __fixunssfsi() and __fixunsdfsi(), but only for arm32 with a.out
binaries, because libc's provided them there forever.
.if ${OBJECT_FMT} != "ELF"
# arm32 a.out libc contained __fixunssfsi() and __fixunsdfsi(). Be
# compatible.
CPPFLAGS+= -DSOFTFLOAT_NEED_FIXUNS
.endif
Ben, why only legacy builds?
R.