diff mbox

syslinux: fix boot hang when host-gcc is 5.3

Message ID 1462118287-5017-1-git-send-email-fhunleth@troodon-software.com
State Accepted
Headers show

Commit Message

Frank Hunleth May 1, 2016, 3:58 p.m. UTC
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.

Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
---
 .../0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch  | 76 ++++++++++++++++++++++
 1 file changed, 76 insertions(+)
 create mode 100644 boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch

Comments

Thomas Petazzoni May 1, 2016, 5:14 p.m. UTC | #1
Hello,

On Sun,  1 May 2016 11:58:07 -0400, Frank Hunleth wrote:
> 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.
> 
> Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>

Thanks! Do you think this could fix bug
https://bugs.busybox.net/show_bug.cgi?id=8866 ?

Thomas
Frank Hunleth May 1, 2016, 6:38 p.m. UTC | #2
Hi Thomas,

On Sun, May 1, 2016 at 1:14 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
>
> Hello,
>
> On Sun,  1 May 2016 11:58:07 -0400, Frank Hunleth wrote:
> > 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.
> >
> > Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
>
> Thanks! Do you think this could fix bug
> https://bugs.busybox.net/show_bug.cgi?id=8866 ?

Yes, I'm pretty sure that this patch will fix it. I added a comment to
the bug report.

Frank
Thomas Petazzoni May 1, 2016, 8:34 p.m. UTC | #3
Hello,

On Sun,  1 May 2016 11:58:07 -0400, Frank Hunleth wrote:
> 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.
> 
> Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
> ---
>  .../0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch  | 76 ++++++++++++++++++++++
>  1 file changed, 76 insertions(+)
>  create mode 100644 boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch

Applied to master, thanks. I've amended the commit log to indicate that
it most likely fixes bug 8866.

Thanks!

Thomas
diff mbox

Patch

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 0000000..2df6766
--- /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) {