On 03.12.2007 21:18, Marc Karasek wrote:
I think I have found the problem. It is related to the patch Ed sent.
The new LD looks like it automagically turns on the --build-id
option. I have not found out how turn it off.
When this option is used it generates the .note.gnu.build-id
section. When this section was discarded in the first ld pass
(linuxbios_rom.ram creation) it was causing the segmentation fault crash.
It looks like this same option is being called again when crt0.o is
linked to create linuxbios. I have added the .note.gnu.build-id
section to the .id section in the ldscript.ld file.
SECTIONS {
. = (_ROMBASE + ROM_IMAGE_SIZE - 0x10) - (__id_end - __id_start);
.id (.) : {
*(.id)
*(.note.gnu.build-id)
}
This has gotten me past the second crash but now linuxbios.strip is
crashing.
Well done.
nm -n linuxbios | sort > linuxbios.map
objcopy --gap-fill 0xff -O binary linuxbios linuxbios.strip
objcopy: linuxbios.strip: Bad value
objcopy: linuxbios.strip: Bad value
make[1]: *** [linuxbios.strip] Error 1
So this does not look like a ld problem, but an added feature to ld is
causing us grief. If anyone can figure out how to turn this option
off, that may fix all of this without any patches... :-)
Still, it would be a nice gesture to the binutils guys to report it as a
bug. Maybe there's some bug deeper down which triggers this.
Regards,
Carl-Daniel