boot/syslinux: fix build with binutils note gnu property section
authorChristian Stewart <christian@paral.in>
Fri, 5 Apr 2019 06:40:55 +0000 (23:40 -0700)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 7 Apr 2019 09:54:48 +0000 (11:54 +0200)
Fixes #11756

This fixes the following build error with newer binutils:

  objcopy -O binary mbr.elf mbr.bin
  perl /build/syslinux/src/syslinux/mbr/checksize.pl mbr.bin
  mbr.bin: too big (452 > 440)

Corresponding bug reports:

 - https://bugs.archlinux.org/task/60405
 - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414

Strip the .note.gnu.property in the linker scripts for the MBRs.

Signed-off-by: Christian Stewart <christian@paral.in>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch [new file with mode: 0644]

diff --git a/boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch b/boot/syslinux/0014-Fix-build-with-binutils-note-gnu-property-section.patch
new file mode 100644 (file)
index 0000000..fedd815
--- /dev/null
@@ -0,0 +1,47 @@
+From beb526ca925983c7da229043790ecd552d910650 Mon Sep 17 00:00:00 2001
+From: Christian Stewart <christian@paral.in>
+Date: Thu, 4 Apr 2019 23:24:31 -0700
+Subject: [PATCH] Fix build with binutils note gnu property section
+
+This fixes the following build error with newer binutils:
+
+  objcopy -O binary mbr.elf mbr.bin
+  perl /build/syslinux/src/syslinux/mbr/checksize.pl mbr.bin
+  mbr.bin: too big (452 > 440)
+
+Corresponding bug reports:
+
+ - https://bugs.archlinux.org/task/60405
+ - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414
+
+Strips the .note.gnu.property in the linker scripts for the MBRs.
+
+Signed-off-by: Christian Stewart <christian@paral.in>
+---
+ mbr/i386/mbr.ld   | 1 +
+ mbr/x86_64/mbr.ld | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld
+index d14ba802..53683461 100644
+--- a/mbr/i386/mbr.ld
++++ b/mbr/i386/mbr.ld
+@@ -70,4 +70,5 @@ SECTIONS
+   .debug_typenames 0 : { *(.debug_typenames) }
+   .debug_varnames  0 : { *(.debug_varnames) }
+   /DISCARD/ : { *(.note.GNU-stack) }
++  /DISCARD/ : { *(.note.gnu.property) }
+ }
+diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
+index ae27d49a..b8c0d895 100644
+--- a/mbr/x86_64/mbr.ld
++++ b/mbr/x86_64/mbr.ld
+@@ -69,4 +69,5 @@ SECTIONS
+   .debug_typenames 0 : { *(.debug_typenames) }
+   .debug_varnames  0 : { *(.debug_varnames) }
+   /DISCARD/ : { *(.note.GNU-stack) }
++  /DISCARD/ : { *(.note.gnu.property) }
+ }
+-- 
+2.21.0
+