Skip to contentSkip to conversation

Fix support for recent versions of GNU ld

PATCH In review Pavel Roskin 2 participants 2 messages Oct 30, 2007 – Nov 9, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix support for recent versions of GNU ld

* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Strip section .note.gnu.build-id created by the recent versions of GNU ld. It causes the test fail.
* genmk.rb: Strip .note.gnu.build-id in strip and objcopy calls.
---

 ChangeLog                |    7 ++++
 aclocal.m4               |    2 +
 conf/common.mk           |   74 +++++++++++++++++++++++-----------------------
 conf/i386-efi.mk         |   14 ++++-----
 conf/i386-pc.mk          |   50 ++++++++++++++++---------------
 conf/powerpc-ieee1275.mk |   16 +++++-----
 conf/sparc64-ieee1275.mk |   62 +++++++++++++++++++--------------------
 configure                |    2 +
 genmk.rb                 |    4 +-
 9 files changed, 119 insertions(+), 112 deletions(-)
ChangeLog +7 -0
index 86ae086..13fa98d 100644
@@ -1,3 +1,10 @@
+2007-10-29  Pavel Roskin  <[email protected]>
+
+	* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Strip section
+	.note.gnu.build-id created by the recent versions of GNU ld.
+	It causes the test fail.
+	* genmk.rb: Strip .note.gnu.build-id in strip and objcopy calls.
+
 2007-10-27  Robert Millan  <[email protected]>
 
 	* include/grub/types.h (ULONG_MAX): Define macro.
aclocal.m4 +1 -1
index 706c3ef..0d74167 100644
@@ -61,7 +61,7 @@ for link_addr in 2000 8000 7C00; do
   else
     AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
   fi
-  if AC_TRY_COMMAND([${OBJCOPY-objcopy} -O binary conftest.exec conftest]); then :
+  if AC_TRY_COMMAND([${OBJCOPY-objcopy} -O binary -R .note.gnu.build-id conftest.exec conftest]); then :
   else
     AC_MSG_ERROR([${OBJCOPY-objcopy} cannot create binary files])
   fi
conf/common.mk +37 -37

296 lines not on this page · raw message

conf/i386-efi.mk +7 -7
index d089985..3afb6da 100644
@@ -265,7 +265,7 @@ UNDSYMFILES += und-kernel.lst
 kernel.mod: pre-kernel.o mod-kernel.o
 	-rm -f $@
 	$(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-kernel.o: $(kernel_mod_DEPENDENCIES) kernel_mod-kern_i386_efi_startup.o kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_i386_dl.o kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o
 	-rm -f $@
@@ -682,7 +682,7 @@ UNDSYMFILES += und-normal.lst
 normal.mod: pre-normal.o mod-normal.o
 	-rm -f $@
 	$(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_execute.o normal_mod-normal_function.o normal_mod-normal_lexer.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_misc.o normal_mod-grub_script_tab.o normal_mod-normal_script.o normal_mod-normal_i386_setjmp.o
 	-rm -f $@
@@ -930,7 +930,7 @@ UNDSYMFILES += und-_chain.lst
 _chain.mod: pre-_chain.o mod-_chain.o
 	-rm -f $@
 	$(TARGET_CC) $(_chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-_chain.o: $(_chain_mod_DEPENDENCIES) _chain_mod-loader_efi_chainloader.o
 	-rm -f $@
@@ -982,7 +982,7 @@ UNDSYMFILES += und-chain.lst
 chain.mod: pre-chain.o mod-chain.o
 	-rm -f $@
 	$(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-chain.o: $(chain_mod_DEPENDENCIES) chain_mod-loader_efi_chainloader_normal.o
 	-rm -f $@
@@ -1034,7 +1034,7 @@ UNDSYMFILES += und-_linux.lst
 _linux.mod: pre-_linux.o mod-_linux.o
 	-rm -f $@
 	$(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-_linux.o: $(_linux_mod_DEPENDENCIES) _linux_mod-loader_i386_efi_linux.o
 	-rm -f $@
@@ -1086,7 +1086,7 @@ UNDSYMFILES += und-linux.lst
 linux.mod: pre-linux.o mod-linux.o
 	-rm -f $@
 	$(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_efi_linux_normal.o
 	-rm -f $@
@@ -1138,7 +1138,7 @@ UNDSYMFILES += und-cpuid.lst
 cpuid.mod: pre-cpuid.o mod-cpuid.o
 	-rm -f $@
 	$(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o
 	-rm -f $@
conf/i386-pc.mk +25 -25

200 lines not on this page · raw message

conf/powerpc-ieee1275.mk +8 -8
index bce2992..e0e3e96 100644
@@ -674,7 +674,7 @@ UNDSYMFILES += und-_linux.lst
 _linux.mod: pre-_linux.o mod-_linux.o
 	-rm -f $@
 	$(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-_linux.o: $(_linux_mod_DEPENDENCIES) _linux_mod-loader_powerpc_ieee1275_linux.o
 	-rm -f $@
@@ -726,7 +726,7 @@ UNDSYMFILES += und-linux.lst
 linux.mod: pre-linux.o mod-linux.o
 	-rm -f $@
 	$(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_powerpc_ieee1275_linux_normal.o
 	-rm -f $@
@@ -783,7 +783,7 @@ UNDSYMFILES += und-normal.lst
 normal.mod: pre-normal.o mod-normal.o
 	-rm -f $@
 	$(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_execute.o normal_mod-normal_function.o normal_mod-normal_lexer.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_misc.o normal_mod-grub_script_tab.o normal_mod-normal_script.o normal_mod-normal_powerpc_setjmp.o
 	-rm -f $@
@@ -1031,7 +1031,7 @@ UNDSYMFILES += und-suspend.lst
 suspend.mod: pre-suspend.o mod-suspend.o
 	-rm -f $@
 	$(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-suspend.o: $(suspend_mod_DEPENDENCIES) suspend_mod-commands_ieee1275_suspend.o
 	-rm -f $@
@@ -1083,7 +1083,7 @@ UNDSYMFILES += und-reboot.lst
 reboot.mod: pre-reboot.o mod-reboot.o
 	-rm -f $@
 	$(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-reboot.o: $(reboot_mod_DEPENDENCIES) reboot_mod-commands_ieee1275_reboot.o
 	-rm -f $@
@@ -1135,7 +1135,7 @@ UNDSYMFILES += und-halt.lst
 halt.mod: pre-halt.o mod-halt.o
 	-rm -f $@
 	$(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_ieee1275_halt.o
 	-rm -f $@
@@ -1189,7 +1189,7 @@ UNDSYMFILES += und-_multiboot.lst
 _multiboot.mod: pre-_multiboot.o mod-_multiboot.o
 	-rm -f $@
 	$(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-_multiboot.o: $(_multiboot_mod_DEPENDENCIES) _multiboot_mod-loader_powerpc_ieee1275_multiboot2.o _multiboot_mod-loader_multiboot2.o _multiboot_mod-loader_multiboot_loader.o
 	-rm -f $@
@@ -1271,7 +1271,7 @@ UNDSYMFILES += und-multiboot.lst
 multiboot.mod: pre-multiboot.o mod-multiboot.o
 	-rm -f $@
 	$(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 pre-multiboot.o: $(multiboot_mod_DEPENDENCIES) multiboot_mod-loader_multiboot_loader_normal.o
 	-rm -f $@
conf/sparc64-ieee1275.mk +31 -31

248 lines not on this page · raw message

configure +1 -1
index 1971471..dc75ebd 100755
@@ -6046,7 +6046,7 @@ for link_addr in 2000 8000 7C00; do
 echo "$as_me: error: ${CC-cc} cannot link at address $link_addr" >&2;}
    { (exit 1); exit 1; }; }
   fi
-  if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'
+  if { ac_try='${OBJCOPY-objcopy} -O binary -R .note.gnu.build-id conftest.exec conftest'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
genmk.rb +2 -2
index 25deddb..d0a0c67 100644
@@ -57,7 +57,7 @@ class Image
 MOSTLYCLEANFILES += #{deps_str}
 
 #{@name}: #{exe}
-	$(OBJCOPY) -O binary -R .note -R .comment $< $@
+	$(OBJCOPY) -O binary -R .note -R .note.gnu.build-id -R .comment $< $@
 
 #{exe}: #{objs_str}
 	$(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(#{prefix}_LDFLAGS)
@@ -115,7 +115,7 @@ UNDSYMFILES += #{undsym}
 #{@name}: #{pre_obj} #{mod_obj}
 	-rm -f $@
 	$(TARGET_CC) $(#{prefix}_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
-	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+	$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .note.gnu.build-id -R .comment $@
 
 #{pre_obj}: $(#{prefix}_DEPENDENCIES) #{objs_str}
 	-rm -f $@
#1 lore raw
Quoted 3 lines · Pavel Roskin

* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Strip section .note.gnu.build-id created by the recent versions of GNU ld. It causes the test fail.

Why does the test fail with new ld ? I don't see any strip command before the objcopy, so if it cope with all the other debugging symbols, why not this one?

Btw, next time please don't include auto-generated files in your patch ;-)

Signature · 5 lines
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)