Hi Andreas, On 7 February 2015 at 10:08, Andreas Bießmann <andreas.de...@googlemail.com> wrote: > Hi Simon, > > On 07.02.15 17:29, Simon Glass wrote: >> On 7 February 2015 at 09:23, Andreas Bießmann >> <andreas.de...@googlemail.com> wrote: >>> On 07.02.15 16:10, Simon Glass wrote: >>>> On 7 February 2015 at 03:04, Jeroen Hofstee <jer...@myspectrum.nl> wrote: >>>>> On 06-02-15 22:00, Simon Glass wrote: >>>>>> On 6 February 2015 at 13:40, Andreas Bießmann >>>>>> <andreas.de...@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 added correct section handling for Mach-O binary format to the > file2alias.c [1] when they introduced dynamic sections > (ADD_TO_DEVTABLE() macro in that file) which broke compilation on darwin. > >> I'm not familiar with it. > > Me too, I just fixed the build when it was broken.
So are you saying that we need to write a tool which converts the ELF sections in the u-boot ELF into C code which then gets compiled and put into a final u-boot ELF? And if we did that then sandbox would work? BTW I never did have any success getting a dev environment up on a Mac. It took hours to download and install things and then I can't remember what went wrong but it was awful. This was about 2 years ago - maybe things have got easier? I'm happy to fiddle with this sort of thing but my pain tolerance isn't what it was/ > >> The kernel >> uses all sorts of crazy link scripts - I wonder how FreeBSD deals with >> that? > > AFAIK there is no link script for any host tool. They use it heavily for > the kernel. But again, this is compiled and linked with the gnu linux > cross tool chain. Ah OK. And compiling U-Boot sandbox with a gnu linux cross tool chain (with x86 target) on BSD is not an option? I suppose it would not run. > >> I suppose you can't compile Linux on FreeBSD natively? > > This will not work. > > Best regards > > Andreas Bießmann > > [1] > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/scripts/mod/file2alias.c?id=bb66fc67192bbd406fe9c22033f1bbbf3e7ec621 Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot