All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] syslinux using host compiler.
Date: Fri, 25 Mar 2016 23:27:36 +0100	[thread overview]
Message-ID: <56F5BB58.1090702@mind.be> (raw)
In-Reply-To: <20160324151201.7e05fd28@free-electrons.com>

On 03/24/16 15:12, Thomas Petazzoni wrote:
> Hello,
>
> On Thu, 24 Mar 2016 14:08:56 +0100, Gilles Chanteperdrix wrote:
>
>>> For grub2, it is actually using the target compiler, see the comment in
>>> grub2.mk:
>>
>> Ok, I thought I saw grub selected BR2_HOSTARCH_NEEDS_IA32_COMPILER
>> too, must I have misread.
>
> grub yes, not grub2. But your original comment was about grub2, hence I
> looked at grub2. But you are right, grub is like syslinux, we use the
> host compiler.

  One reason for this difference is that the build system was improved a lot 
with grub2. grub1 made it impossible to distinguish host from target build, and 
it does need to build some host tools.

[snip]
>>> The reason why we're using the host compiler rather than the target
>>> compiler is because syslinux must be built as 32-bits x86 code, even if
>>> your target system is x86_64.
>>
>> Yes, but AFAIK, gcc for x86_64 always supports the -m32 switch. To
>> build 32 bits host binaries, you need a multilib installation with a
>> 32 bits glibc, but a bootloader should not use anything in the glibc.
>
> Completely agree with the theory. In practice, I remember seeing some
> problems, like it was anyway trying to build some actual user-space
> applications with -m32. But (1) my analysis at the time might have been
> wrong and (2) syslinux was upgraded several times since then so maybe
> they have changed/fixed things. But that definitely doesn't mean I'm
> not interested in seeing patches improving this stuff.

  I remember I looked at it as well at the time, I think I even posted some 
patches that attempted to get a working syslinux using the cross-compiler, but 
it failed in some cases. This is from memory, consult the mailing list archives 
to be really sure.

  It's possible that it was just a matter of the -m elf_i386, which I wouldn't 
have thought of at the time (it's three years ago, I was still young and 
innexperienced :-P ).


  Regards,
  Arnout

>
>>>> I am using an x86_64 toolchain generated with ct-ng, did not enable
>>>> multilib, and syslinux seems to have no problem compiling with that
>>>> toolchain, which seems normal, since the boot code should not be
>>>> using the libc anyway.
>>>
>>> Are you sure you're using this target compiler to build syslinux, and
>>> not your host compiler? Back in 2014, when commit
>>> 09e7b4c89159a3e48f463b0a22e649c4fc12f4b3 was done, it wouldn't build
>>> with a x86-64 only compiler.
>>
>> Yes, I am sure of it. The only "trick" I had to apply was to force
>> LD="$(TARGET_LD) -m elf_i386". Now buildroot complains later because
>> isohybrid in the host directory is not compiled with the proper
>> rpath, but I guess it means we need host-syslinux.
>
> OK.
>
>>> If that actually works, then patches are welcome. But in this case, we
>>> will indeed probably need separate host-syslinux and syslinux packages,
>>> as you suggested.
>>
>> Yes. Ok, will work on the patch.
>
> Great!
>
> Thomas
>


-- 
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:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

  reply	other threads:[~2016-03-25 22:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-24 10:39 [Buildroot] syslinux using host compiler Gilles Chanteperdrix
2016-03-24 12:50 ` Thomas Petazzoni
2016-03-24 13:08   ` Gilles Chanteperdrix
2016-03-24 14:12     ` Thomas Petazzoni
2016-03-25 22:27       ` Arnout Vandecappelle [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-03-24 10:30 Gilles Chanteperdrix
2016-03-24 10:55 ` Gilles Chanteperdrix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56F5BB58.1090702@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.