[syslinux] [PATCH 0/2] Cross-compilation patches

Ady Ady
Wed, 05 Apr 2017 16:13:24 -0000

> Hi there,
>
> I've had issue with the integration of syslinux into the buildroot
project
> [0]. After some research, it turned out that we were wrongly using the host
> toolchain instead of the target toolchain to build syslinux. This gave us
> bigger issues (for instance) when trying to link syslinux with gnu-efi,
that
> was built using the target toolchain.
>
> The first one forces ld to output i386 binary when processing the binary
> files generated by nasm (for consistency with the other .o files), and the
> second one explicitely uses the host toolchain to build the utilities under
> utils/.
>
> Those two patches turned out to be necessary in order to have a proper
build.
> please consider them for upstream inclusion.
>
> There was an aditionnal third patch [1] I required, but that one isn't
> authored by me. I would be grateful if you integrate it in your next
release
> as well.
>
> Best Regards,
> Ben.
>

I'm not not sure the assumptions are always true (for every downstream
use case / project / distro).

Expressions such as "The utilities are meant to run on the host
machine, hence must be built using the host toolchain." might be
relevant for certain use cases whereas not necessarily true for others.

What would happen if a user, while troubleshooting, wants to use a
binary - just for the sake of simplicity, say we are talking about
memdisk and/or the isohybrid tool - that was created on a different
host than this user has/uses? We should want to be able to tell such
user things like "try the pre-built official binaries included in the
official distribution archives located at kernel.org".

In a similar (but not the same) line of thinking , there are Linux
distributions that are no longer building packages for xi86, and so
they don't build EFI binaries for UEFI IA32. I am sure that a PC with a
UEFI IA32 firmware is not from the same era than a "686" PC, and they
do not use such a similar microprocessor. UEFI IA32 binaries should
still be built, but such distros don't do it anymore; IMHO, they still
should.

We should be aware about the broad consequences (for others) when we
assume that "my use-case is _the_ (only/best) case.

Regards,
Ady.