Skip to contentSkip to conversation

syslinux: install helper programs to the host

PATCH New Frank Hunleth 4 participants 10 messages Mar 16, 2014 – Apr 21, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Even though syslinux is built for the target, it does create helper programs intended to be run on the host such as syslinux and extlinux. This change installs these helper programs to the host so that they may be called by post image creation scripts.

---
 boot/syslinux/syslinux.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
boot/syslinux/syslinux.mk +6 -1
index eedc364..7b3f9cf 100644
@@ -11,7 +11,6 @@ SYSLINUX_SITE    = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/4.xx/
 SYSLINUX_LICENSE = GPLv2+
 SYSLINUX_LICENSE_FILES = COPYING
 
-SYSLINUX_INSTALL_TARGET = NO
 SYSLINUX_INSTALL_IMAGES = YES
 
 SYSLINUX_DEPENDENCIES = host-nasm host-util-linux
@@ -23,6 +22,12 @@ define SYSLINUX_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC) -idirafter $(HOST_DIR)/usr/include $(HOST_LDFLAGS)" AR="$(HOSTAR)" -C $(@D)
 endef
 
+define SYSLINUX_INSTALL_TARGET_CMDS
+	# While the actual bootloader is compiled for the target, several
+	# utilities for installing the bootloader are meant for the host.
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) INSTALLROOT=$(HOST_DIR) install
+endef
+
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += isolinux.bin
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += pxelinux.bin
 
Signature · 1 line
1.8.3.2
#1 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Quoted 4 lines · Frank Hunleth

Even though syslinux is built for the target, it does create helper programs intended to be run on the host such as syslinux and extlinux. This change installs these helper programs to the host so that they may be called by post image creation scripts.

So what is host-syslinux for then?

In fact, we currently have two ways for installing the host-tools of
bootloaders:

1. An explicit host-foo package, used by syslinux and u-boot. In the case of u-boot, it's even a separate package u-boot-tools in package/

2. Implicit when installing to target, used by grub, and grub2 (and by this patch as well). In the case of grub2, nothing is installed to target in fact, instead it's installed to HOST_DIR.

So maybe we should converge on a single mechanism for all
bootloader-host-tools. I'm personally in favour of option 1, but I have no strong opinion.

Regards,
Arnout

Quoted 32 lines
---
 boot/syslinux/syslinux.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
boot/syslinux/syslinux.mk +6 -1
index eedc364..7b3f9cf 100644
@@ -11,7 +11,6 @@ SYSLINUX_SITE    = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/4.xx/
 SYSLINUX_LICENSE = GPLv2+
 SYSLINUX_LICENSE_FILES = COPYING
 
-SYSLINUX_INSTALL_TARGET = NO
 SYSLINUX_INSTALL_IMAGES = YES
 
 SYSLINUX_DEPENDENCIES = host-nasm host-util-linux
@@ -23,6 +22,12 @@ define SYSLINUX_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC) -idirafter $(HOST_DIR)/usr/include $(HOST_LDFLAGS)" AR="$(HOSTAR)" -C $(@D)
 endef
 
+define SYSLINUX_INSTALL_TARGET_CMDS
+	# While the actual bootloader is compiled for the target, several
+	# utilities for installing the bootloader are meant for the host.
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) INSTALLROOT=$(HOST_DIR) install
+endef
+
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += isolinux.bin
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += pxelinux.bin
 
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#2 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Quoted 8 lines · Arnout Vandecappelle
Quoted 4 lines · Frank Hunleth

Even though syslinux is built for the target, it does create helper programs intended to be run on the host such as syslinux and extlinux. This change installs these helper programs to the host so that they may be called by post image creation scripts.

So what is host-syslinux for then?

This was confusing to me. host-syslinux isn't used anywhere and can't be enabled, so it looks like it can be deleted. Additionally, the Config.in has options for the target syslinux which makes you believe that it's the way to go if you want syslinux.

Quoted 6 lines

In fact, we currently have two ways for installing the host-tools of
bootloaders:

1. An explicit host-foo package, used by syslinux and u-boot. In the case of u-boot, it's even a separate package u-boot-tools in package/

Quoted 7 lines

2. Implicit when installing to target, used by grub, and grub2 (and by this patch as well). In the case of grub2, nothing is installed to target in fact, instead it's installed to HOST_DIR.

So maybe we should converge on a single mechanism for all
bootloader-host-tools. I'm personally in favour of option 1, but I have no strong opinion.

This is my first x86/buildroot project, so I'm fine with whatever the consensus decides.

Thanks,
Frank

Quoted 46 lines

Regards,
Arnout

Quoted 22 lines
---
 boot/syslinux/syslinux.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
boot/syslinux/syslinux.mk +0 -1
index eedc364..7b3f9cf 100644
@@ -11,7 +11,6 @@ SYSLINUX_SITE    = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/4.xx/
 SYSLINUX_LICENSE = GPLv2+
 SYSLINUX_LICENSE_FILES = COPYING
 
-SYSLINUX_INSTALL_TARGET = NO
 SYSLINUX_INSTALL_IMAGES = YES
 
 SYSLINUX_DEPENDENCIES = host-nasm host-util-linux
@@ -23,6 +22,12 @@ define SYSLINUX_BUILD_CMDS
      $(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC) -idirafter $(HOST_DIR)/usr/include $(HOST_LDFLAGS)" AR="$(HOSTAR)" -C $(@D)
 endef

boot/syslinux/syslinux.mk define SYSLINUX_BUILD_CMDS · line 33

Quoted 10 lines
boot/syslinux/syslinux.mk +6 -0
 
+define SYSLINUX_INSTALL_TARGET_CMDS
+     # While the actual bootloader is compiled for the target, several
+     # utilities for installing the bootloader are meant for the host.
+     $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) INSTALLROOT=$(HOST_DIR) install
+endef
+
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += isolinux.bin
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += pxelinux.bin
 

--

Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
Signature · 4 lines
Frank Hunleth
Troodon Software LLC
Embedded Software Development
http://troodon-software.com/
#3 lore raw

PATCH 1/1 syslinux: install helper programs to the host

In reply to Frank Hunleth

Dear Frank Hunleth,

Quoted 9 lines · Frank Hunleth

Even though syslinux is built for the target, it does create helper programs intended to be run on the host such as syslinux and extlinux. This change installs these helper programs to the host so that they may be called by post image creation scripts.

---
 boot/syslinux/syslinux.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

I've applied your patch, and removed the code that implements the host-syslinux variant (which BTW was originally added by Arnout in 9baaa5b4a39145f4cc64c6bba1a6aa8cec48f00a).

Frank, syslinux upstream is now at version 6.x. Since you're using syslinux, could you take care of updating the package in Buildroot to match the latest upstream version?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Hi Thomas,

Quoted 9 lines · Thomas Petazzoni

Dear Frank Hunleth,

Quoted 5 lines · Frank Hunleth

Even though syslinux is built for the target, it does create helper programs intended to be run on the host such as syslinux and extlinux. This change installs these helper programs to the host so that they may be called by post image creation scripts.

Quoted 8 lines
Quoted 4 lines
---
 boot/syslinux/syslinux.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

I've applied your patch, and removed the code that implements the host-syslinux variant (which BTW was originally added by Arnout in 9baaa5b4a39145f4cc64c6bba1a6aa8cec48f00a).

Thanks!

Quoted 4 lines

Frank, syslinux upstream is now at version 6.x. Since you're using syslinux, could you take care of updating the package in Buildroot to match the latest upstream version?

I looked into this some last night and got as far as porting two new prerequisite packages for 6.x and then debugging issues with building the new EFI code. I personally don't use EFI, and without more digging into it I wasn't sure how to turn off its compilation.

It looks like it will take a little longer to make progress on this, and I'm not sure when I'll have time again. In the mean time, if there are any other interested syslinux users on this list, feel free to contact me and I'll try to explain where I'm at with my partial work.

Frank

Signature · 4 lines
Frank Hunleth
Troodon Software LLC
Embedded Software Development
http://troodon-software.com/
#5 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Frank, Thomas, All,

On 2014-04-21 09:18 -0400, Frank Hunleth spake thusly:

Quoted 5 lines
Quoted 3 lines · Thomas Petazzoni

Frank, syslinux upstream is now at version 6.x. Since you're using syslinux, could you take care of updating the package in Buildroot to match the latest upstream version?

To be noted: I am already working on this too. :-)

Quoted 4 lines

I looked into this some last night and got as far as porting two new prerequisite packages for 6.x and then debugging issues with building the new EFI code. I personally don't use EFI, and without more digging into it I wasn't sure how to turn off its compilation.

syslinux is a pain to use in cross-compilation, as it assumes headers and libs from gnu-efi to be in /usr/blabla so it's a pain to make it work in Buildroot.

That, plus a few other nits here and there...

But I have a few patches here to fix the issue for us. It may even be possible to shape them for upstream...

Quoted 4 lines

It looks like it will take a little longer to make progress on this, and I'm not sure when I'll have time again. In the mean time, if there are any other interested syslinux users on this list, feel free to contact me and I'll try to explain where I'm at with my partial work.

As I am also working on this, if you just posted your changes (on the list on in a public git tree), I can incorporate your changes I am missing, and submit those.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Hi Yann,

Quoted 10 lines · Yann E. MORIN

Frank, Thomas, All,

On 2014-04-21 09:18 -0400, Frank Hunleth spake thusly:

Quoted 5 lines
Quoted 3 lines · Thomas Petazzoni

Frank, syslinux upstream is now at version 6.x. Since you're using syslinux, could you take care of updating the package in Buildroot to match the latest upstream version?

To be noted: I am already working on this too. :-)

Awesome!

Quoted 9 lines
Quoted 5 lines

I looked into this some last night and got as far as porting two new prerequisite packages for 6.x and then debugging issues with building the new EFI code. I personally don't use EFI, and without more digging into it I wasn't sure how to turn off its compilation.

syslinux is a pain to use in cross-compilation, as it assumes headers and libs from gnu-efi to be in /usr/blabla so it's a pain to make it work in Buildroot.

Yep. that's where I stopped and decided that sleep was more important.

Quoted 5 lines

That, plus a few other nits here and there...

But I have a few patches here to fix the issue for us. It may even be possible to shape them for upstream...

It sounds like you're a lot farther along than I am.

Quoted 9 lines
Quoted 5 lines

It looks like it will take a little longer to make progress on this, and I'm not sure when I'll have time again. In the mean time, if there are any other interested syslinux users on this list, feel free to contact me and I'll try to explain where I'm at with my partial work.

As I am also working on this, if you just posted your changes (on the list on in a public git tree), I can incorporate your changes I am missing, and submit those.

I've attached my current progress just in case there's something of use, but I suspect that you're farther along.

Thanks,
Frank

Quoted 11 lines

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

Signature · 11 lines
Frank Hunleth
Troodon Software LLC
Embedded Software Development
http://troodon-software.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: syslinux-6-WIP.patch
Type: text/x-patch
Size: 4239 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140421/b8cdc166/attachment.bin>
#7 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Frank, All,

On 2014-04-21 10:30 -0400, Frank Hunleth spake thusly:

Quoted 7 lines · Yann E. MORIN
Quoted 3 lines

As I am also working on this, if you just posted your changes (on the list on in a public git tree), I can incorporate your changes I am missing, and submit those.

I've attached my current progress just in case there's something of use, but I suspect that you're farther along.

Woot! :-) In fact, you are farther than me! I still did not had a need for usl of upx.

This patch is missing your SoB. Could you just resend with your SoB added? Then I'll handle all the nitty-gritty work of finishing this, and pushing upstream.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Yann,

Quoted 8 lines · Yann E. MORIN

Frank, All,

On 2014-04-21 10:30 -0400, Frank Hunleth spake thusly:

Quoted 5 lines · Yann E. MORIN
Quoted 3 lines

As I am also working on this, if you just posted your changes (on the list on in a public git tree), I can incorporate your changes I am missing, and submit those.

Quoted 5 lines
Quoted 2 lines

I've attached my current progress just in case there's something of use, but I suspect that you're farther along.

Woot! :-) In fact, you are farther than me! I still did not had a need for usl of upx.

Just a note, I've convinced myself that there's no way that upx will do the right thing on cross-compiled executables. I suspect that it will work on my x86 setup since the host and target are the same architecture, but not in general. I didn't get far enough to verify it though.

Quoted 4 lines

This patch is missing your SoB. Could you just resend with your SoB added? Then I'll handle all the nitty-gritty work of finishing this, and pushing upstream.

Done! And thanks. Let me know if I can help by testing anything in my setup.

Thanks again,
Frank

Quoted 11 lines

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

-------------- next part --------------
A non-text attachment was scrubbed...
Name: syslinux-6-WIP.patch
Type: text/x-patch
Size: 4300 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140421/6c741371/attachment.bin>

#9 lore raw

PATCH 1/1 syslinux: install helper programs to the host

Frank, All,

On 2014-04-21 10:55 -0400, Frank Hunleth spake thusly:

Quoted 12 lines · Yann E. MORIN
Quoted 11 lines

Frank, All,

On 2014-04-21 10:30 -0400, Frank Hunleth spake thusly:

Quoted 7 lines · Yann E. MORIN
Quoted 3 lines

As I am also working on this, if you just posted your changes (on the list on in a public git tree), I can incorporate your changes I am missing, and submit those.

I've attached my current progress just in case there's something of use, but I suspect that you're farther along.

Quoted 8 lines
Quoted 2 lines

Woot! :-) In fact, you are farther than me! I still did not had a need for usl of upx.

Just a note, I've convinced myself that there's no way that upx will do the right thing on cross-compiled executables. I suspect that it will work on my x86 setup since the host and target are the same architecture, but not in general. I didn't get far enough to verify it though.

Well, syslinux is only for the x86 world anyway, and it is only buildable on a x86 machine as well (since it uses the host compiler).

Quoted 5 lines
Quoted 3 lines

This patch is missing your SoB. Could you just resend with your SoB added? Then I'll handle all the nitty-gritty work of finishing this, and pushing upstream.

Done! And thanks. Let me know if I can help by testing anything in my setup.

Thanks for this bootstrap code! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'