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.