I have done the svn diff as you requested and attached the patch file.
This also removes the patch that Ed had submitted to first try to fix
the --build-id option.
I saw some other posts about just adding the node-id section to the
linker files. This will increase the file size unless we also add the
section into the flash part.
/*********************
Marc Karasek
MTS
Sun Microsystems
mailto:[EMAIL PROTECTED]
ph:770.360.6415
*********************/
Uwe Hermann wrote:
On Fri, Dec 07, 2007 at 12:43:57PM -0500, Marc Karasek wrote:
Here it is in -u format...
Thanks, but I think your Thunderbird broke the patch, probably because
you copy-pasted it into the mailer and it clipped long lines.
I recommend to use 'svn diff > foo.patch' in your svn tree (easier IMO,
and that already produces patches in the -u format) and then just attach
that file to the mail.
=================================================================
diff -r -u -x .svn LinuxBIOSv2.orig/src/arch/i386/Config.lb
LinuxBIOSv2/src/arch/i386/Config.lb
--- LinuxBIOSv2.orig/src/arch/i386/Config.lb 2007-12-06
10:06:31.000000000 -0500
+++ LinuxBIOSv2/src/arch/i386/Config.lb 2007-12-04 16:25:13.000000000 -0500
@@ -100,7 +100,7 @@
makerule linuxbios
depends "crt0.o init.o $(LINUXBIOS_APC) $(LINUXBIOS_RAM_ROM) ldscript.ld"
- action "$(CC) -nostdlib -nostartfiles -static -o $@ -T ldscript.ld
crt0.o init.o"
+ action "$(CC) -Wl,--build-id=none -nostdlib -nostartfiles -static -o
We should make sure this doesn't break any other distros / compiler
versions. Do all reasonably new gcc/ld versions know about '--build-id'?
$@ -T ldscript.ld crt0.o init.o"
action "$(CROSS_COMPILE)nm -n linuxbios | sort > linuxbios.map"
end
diff -r -u -x .svn LinuxBIOSv2.orig/src/arch/i386/lib/id.lds
LinuxBIOSv2/src/arch/i386/lib/id.lds
--- LinuxBIOSv2.orig/src/arch/i386/lib/id.lds 2007-12-06
10:06:31.000000000 -0500
+++ LinuxBIOSv2/src/arch/i386/lib/id.lds 2007-12-06 10:36:31.000000000 -0500
@@ -1,5 +1,11 @@
SECTIONS {
- . = (_ROMBASE + ROM_IMAGE_SIZE - 0x10) - (__id_end - __id_start);
+
+/*
+ * . = (_ROMBASE + (ROM_IMAGE_SIZE - 0x10)) - (__id_end - __id_start);
+ * This is a temporary fix. Under Fedora 8 ld does not like it if the
.id section is above address 0xFFFF_EF00
+*/
+ _ROMTEMP = 0xffffef00;
+ . = _ROMTEMP;
I cannot parse this changeset completely, but won't this
break the code for other distros or boards?
Please resend the 'svn diff' output so we can test this on some
non-Fedora distros.
Thanks, Uwe.
Index: src/config/Config.lb
===================================================================
--- src/config/Config.lb (revision 2998)
+++ src/config/Config.lb (working copy)
@@ -40,12 +40,12 @@
makerule linuxbios_ram.o
depends "$(DRIVER) linuxbios.a $(LIBGCC_FILE_NAME)"
- action "$(CC) -nostdlib -r -o $@ c_start.o $(DRIVER) linuxbios.a $(LIBGCC_FILE_NAME)"
+ action "$(CC) -Wl,--build-id=none -nostdlib -r -o $@ c_start.o $(DRIVER) linuxbios.a $(LIBGCC_FILE_NAME)"
end
makerule linuxbios_ram
depends "linuxbios_ram.o $(TOP)/src/config/linuxbios_ram.ld ldoptions"
- action "$(CC) -nostdlib -nostartfiles -static -o $@ -T $(TOP)/src/config/linuxbios_ram.ld linuxbios_ram.o"
+ action "$(CC) -Wl,--build-id=none -nostdlib -nostartfiles -static -o $@ -T $(TOP)/src/config/linuxbios_ram.ld linuxbios_ram.o"
action "$(CROSS_COMPILE)nm -n linuxbios_ram | sort > linuxbios_ram.map"
end
Index: src/config/linuxbios_ram.ld
===================================================================
--- src/config/linuxbios_ram.ld (revision 2998)
+++ src/config/linuxbios_ram.ld (working copy)
@@ -63,6 +63,13 @@
_erodata = .;
}
+
+ /* ld segfaults if we give it --build-id and then discard this section */
+/*
+ .note.gnu.build-id : {
+ *(.note.gnu.build-id)
+ }
+*/
/*
* After the code we place initialized data (typically initialized
* global variables). This gets copied into ram by startup code.
Index: src/arch/i386/Config.lb
===================================================================
--- src/arch/i386/Config.lb (revision 2998)
+++ src/arch/i386/Config.lb (working copy)
@@ -100,7 +100,7 @@
makerule linuxbios
depends "crt0.o init.o $(LINUXBIOS_APC) $(LINUXBIOS_RAM_ROM) ldscript.ld"
- action "$(CC) -nostdlib -nostartfiles -static -o $@ -T ldscript.ld crt0.o init.o"
+ action "$(CC) -Wl,--build-id=none -nostdlib -nostartfiles -static -o $@ -T ldscript.ld crt0.o init.o"
action "$(CROSS_COMPILE)nm -n linuxbios | sort > linuxbios.map"
end
Index: src/arch/i386/lib/id.lds
===================================================================
--- src/arch/i386/lib/id.lds (revision 2998)
+++ src/arch/i386/lib/id.lds (working copy)
@@ -1,5 +1,11 @@
SECTIONS {
- . = (_ROMBASE + ROM_IMAGE_SIZE - 0x10) - (__id_end - __id_start);
+
+/*
+ * . = (_ROMBASE + (ROM_IMAGE_SIZE - 0x10)) - (__id_end - __id_start);
+ * This is a temporary fix. Under Fedora 8 ld does not like it if the .id section is above address 0xFFFF_EF00
+*/
+ _ROMTEMP = 0xffffef00;
+ . = _ROMTEMP;
.id (.): {
*(.id)
}
--
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios