[U-Boot] recent tools on FreeBSD
Simon Glass
sjg at chromium.org
Sat Feb 7 17:29:14 CET 2015
Hi Andreas,
On 7 February 2015 at 09:23, Andreas Bießmann
<andreas.devel at googlemail.com> wrote:
> Hi Simon,
>
> On 07.02.15 16:10, Simon Glass wrote:
>> On 7 February 2015 at 03:04, Jeroen Hofstee <jeroen at myspectrum.nl> wrote:
>>> On 06-02-15 22:00, Simon Glass wrote:
>>>> On 6 February 2015 at 13:40, Andreas Bießmann
>>>> <andreas.devel at googlemail.com> wrote:
>>>>> On 06.02.15 20:56, Jeroen Hofstee wrote:
>
>>>>> Dynamic list-sections is in general a good thing. But beside the linker
>>>>> problem here we will get another problem on darwin hosts when we want to
>>>>> read the sections. I added a patch to linux kernel to get around [1].
>>>>>
>>>>> So I have another option here:
>>>>>
>>>>> 4) setup the lists sections in code, add the magic handling for Mach-O
>>>>> binaries and remove the linker foo.
>>>>
>>>> The lower-common-denominator approach is a bit frustrating. How does
>>>> FreeBSD compile U-Boot?
>>>
>>>
>>> I guess I am missing the point here. U-boot v2015.01 builds fine
>>> on FreeBSD and as far as I know on a mac as well. It is v2015.04-rc1
>>> which no longer builds mkimage on FreeBSD and Darwin.
>
> Exactly that is the point. Before it worked to build the host tools on
> some exotic hosts. The introduced linker generated lists breaks this.
>
>>>> What are you actually using that system for if
>>>> it cannot build U-Boot?
>>>
>>> I am missing the point, u-boot and its tools build fine until v2015.04-rc1
>>> on FreeBSD and a mac. And this is easily fixed by not using linker magic
>>> for tools. (and yes sandbox likely fails to build, but I don't care that
>>> much)
>>
>> How do you build U-Boot for any of the boards supported? What I mean
>> is that if you can't handle linker scripts in FreeBSD how do you build
>> anything beyond the 'tools' build?
>
> to build U-Boot for any board we use a cross toolchain, to build the
> host tools we use the host compiler. In most cases the cross toolchain
> is gnu/linux which comes with a linker as we know in linux.
> But some host systems toolchain differ. *BSD with ELF as binary format
> is not really a problem here, cause the binary format is comparable. It
> requires just some tweaks for the used host-tools (e.g. host linker) and
> it will work. Unfortunately Darwin uses Mach-O as binary format which
> has some more restrictions. Especially it does not work with sections
> the same way as ELF does. Therefore I posted the patch for
> scripts/mod/file2alias.c in linux kernel to handle these. In days gone
> by we used to support windows as host too, at least with mingw which
> tries to clone a unix environment on windows. But the binary format on
> Windows is still PE (AFAIK) ... I wonder if the MS linker can generate
> those lists.
OK I see, so the GNU cross compilers are used on BSD, but the GNU x86
compiler is not used for host compiling.
>
> Please do not use the linker to generate those lists. Maybe we should
> use the kernel approach and build the lists inside the code.
Can you point me to that please? I'm not familiar with it. The kernel
uses all sorts of crazy link scripts - I wonder how FreeBSD deals with
that? I suppose you can't compile Linux on FreeBSD natively?
Regards,
Simon
More information about the U-Boot
mailing list