summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorFrank Hunleth <fhunleth@troodon-software.com>2016-05-01 11:58:07 -0400
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-05-01 22:22:11 +0200
commit2512fcf41f402f7bd7aa27db17a91a00e079f881 (patch)
treec5e3f01d152c7050846057e2b7d85229a4f681eb /boot
parent21e611273851d503dd3145fa9564c71c461808c1 (diff)
syslinux: fix boot hang when host-gcc is 5.3
Syslinux uses the host version of gcc to build to bootloader. On systems with gcc 5.3, this results in a bootloader that hangs. This issue has been addressed in upstream syslinux, but an official release has not been made yet. This commit adds the upstream patch to fix the issue. Most likely fixes bug #8866. Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'boot')
-rw-r--r--boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch b/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch
new file mode 100644
index 000000000..2df676655
--- /dev/null
+++ b/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch
@@ -0,0 +1,76 @@
+commit e5f2b577ded109291c9632dacb6eaa621d8a59fe
+Author: Sylvain Gault <sylvain.gault@gmail.com>
+Date: Tue Sep 29 02:38:25 2015 +0200
+
+ bios: Fix alignment change with gcc 5
+
+ The section aligment specified in the ld scripts have to be greater or
+ equal to those in the .o files generated by gcc.
+
+ Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
+ Tested-by: poma <pomidorabelisima@gmail.com>
+ Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
+ Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
+
+diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld
+index 7b4e012..7390451 100644
+--- a/core/i386/syslinux.ld
++++ b/core/i386/syslinux.ld
+@@ -266,7 +266,7 @@ SECTIONS
+ __text_end = .;
+ }
+
+- . = ALIGN(16);
++ . = ALIGN(32);
+
+ __rodata_vma = .;
+ __rodata_lma = __rodata_vma + __text_lma - __text_vma;
+@@ -361,7 +361,7 @@ SECTIONS
+ __dynamic_end = .;
+ }
+
+- . = ALIGN(16);
++ . = ALIGN(32);
+
+ __data_vma = .;
+ __data_lma = __data_vma + __text_lma - __text_vma;
+@@ -377,7 +377,7 @@ SECTIONS
+ __pm_code_dwords = (__pm_code_len + 3) >> 2;
+
+ . = ALIGN(128);
+-
++
+ __bss_vma = .;
+ __bss_lma = .; /* Dummy */
+ .bss (NOLOAD) : AT (__bss_lma) {
+diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld
+index 1057112..bf815c4 100644
+--- a/core/x86_64/syslinux.ld
++++ b/core/x86_64/syslinux.ld
+@@ -266,7 +266,7 @@ SECTIONS
+ __text_end = .;
+ }
+
+- . = ALIGN(16);
++ . = ALIGN(32);
+
+ __rodata_vma = .;
+ __rodata_lma = __rodata_vma + __text_lma - __text_vma;
+@@ -361,7 +361,7 @@ SECTIONS
+ __dynamic_end = .;
+ }
+
+- . = ALIGN(16);
++ . = ALIGN(32);
+
+ __data_vma = .;
+ __data_lma = __data_vma + __text_lma - __text_vma;
+@@ -377,7 +377,7 @@ SECTIONS
+ __pm_code_dwords = (__pm_code_len + 3) >> 2;
+
+ . = ALIGN(128);
+-
++
+ __bss_vma = .;
+ __bss_lma = .; /* Dummy */
+ .bss (NOLOAD) : AT (__bss_lma) {