ld incorrect behaviour (broken?)
Aurelien Nephtali
aurelien.nephtali at wanadoo.fr
Sun Oct 10 15:19:49 PDT 2004
Hi,
I've noticed that the behaviour of 'ld' has changed from v 2.12.1 (included in
FreeBSD 4.10-PRERELEASE) and the v 2.15 actually used:
nebula% cat tmp.c
#include <stdlib.h>
int main(void)
{
malloc(2);
return (0);
}
Using ld 2.12.1
---------------
nebula% gcc -o tmp tmp.c
nebula% readelf -a tmp | grep malloc
080496f0 00000207 R_386_JUMP_SLOT 080483bc malloc
2: 080483bc 41 FUNC GLOBAL DEFAULT UND malloc
52: 080483bc 41 FUNC GLOBAL DEFAULT UND malloc
Using ld 2.15
-------------
nebula% gcc -o tmp tmp.c
nebula% readelf -a tmp | grep malloc
080496f0 00000207 R_386_JUMP_SLOT 00000000 malloc
2: 00000000 41 FUNC GLOBAL DEFAULT UND malloc
52: 00000000 41 FUNC GLOBAL DEFAULT UND malloc
The address '080483bc' is now '0' and that breaks all of my tools that need to
use this field.
Is there a reason for that field to be '0' now ?
Thanks.
--
NEPHTALI 'dak' Aurelien
More information about the freebsd-current
mailing list