From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeroen Hofstee Date: Sat, 07 Feb 2015 11:04:34 +0100 Subject: [U-Boot] recent tools on FreeBSD In-Reply-To: References: <54D27501.7040304@myspectrum.nl> <54D3C9D1.6030905@myspectrum.nl> <54D51C5F.7090500@myspectrum.nl> <54D526DB.6080303@googlemail.com> Message-ID: <54D5E332.50401@myspectrum.nl> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Simon, On 06-02-15 22:00, Simon Glass wrote: > Hi, > > On 6 February 2015 at 13:40, Andreas Bie?mann > wrote: >> Hi, >> >> On 06.02.15 20:56, Jeroen Hofstee wrote: >>> Hello Simon, +Andreas, >>> >>> On 06-02-15 04:05, Simon Glass wrote: >>>> Hi Jeroen, >>>> >>>> On 5 February 2015 at 12:51, Jeroen Hofstee wrote: >>>>> Hello Guilherme, >>>>> >>>>> Thanks for commenting on this, >>>>> >>>>> On 02/05/15 13:27, Guilherme Maciel Ferreira wrote: >>>>>> Hi Jeroen, >>>>>> >>>>>> My apologies, I didn't test the tools on BSD. The answers are inline. >>>>>> >>>>>> Best regards, >>>>>> Guilherme >>>>>> >>>>>> Am 04.02.2015 19:37 schrieb "Jeroen Hofstee": >>> Regarding the linking problem, there is nothing special about FreeBSD ld, >>> it just is based on a version which has no idea what INSERT BEFORE .data >>> means. >>> >>> there are several option I guess (not tested): >>> 1) include a complete linker script so INSERT BEFORE .data is not needed >>> 2) teach FreeBSD ld what INSERT BEFORE .data is supposed to mean >>> 3) don't use linker magic in tools (and use a linux box for sandbox, at >>> least for now) >>> >>> 1) sounds like a bad idea, the target/host might be any arch e.g. >>> 2) won't magically fix problems as well, even if FreeBSD trunk can be >>> teached to understand >>> this, things will still be broken on releases. And u-boot tools work on >>> more host systems, >>> Andreas, can you check if Darwin is still able to compile tools from >>> u-boot master? >> unfortunately it does not. >> >> ---8<--- >> andreas at imac % git describe >> v2015.04-rc1-4-g7f641d5 >> andreas at imac % >> PATH=/Volumes/crosstool-ng/arm-unknown-linux-uclibcgnueabi/bin:$PATH >> make CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi- V=1 >> ... >> gcc -T ./tools/imagetool.lds -o tools/envcrc tools/envcrc.o >> tools/lib/crc32.o tools/common/env_embedded.o tools/lib/sha1.o >> ld: unknown option: -T >> collect2: error: ld returned 1 exit status >> make[1]: *** [tools/envcrc] Error 1 >> make: *** [tools] Error 2 >> andreas at imac % gcc --version >> gcc (MacPorts gcc49 4.9.2_1) 4.9.2 >> Copyright (C) 2014 Free Software Foundation, Inc. >> This is free software; see the source for copying conditions. There is NO >> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. >> --->8--- >> >>> 3) the option I would be tempted to choose, just don't do linker magic >>> for tools. This would >>> make sure at least mkimage etc can be build everywhere. sandbox won't >>> build, but as said >>> it is already broken because of other issues. (and I doubt there is even >>> an single user around >>> besides me to even try to build sandbox on FreeBSD). >>> >>> So as far as I am concerned we go for option 3. >> +1 >> >> 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. > 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) > Re 1) I found an open in ld to produce the standard link script. I > actually used that before I found INSERT BEFORE. > > Before giving up I think it would be worth exploring 1). It should > then be possible to make sandbox work also. I am not giving up, I think it is sane if a tool which adds a header and a checksum does not use linker magic. Sandbox biggest problem is not the linking, but the fact that linux headers and std* are included, it is a different topic. > Finally, please point me to how I can install FreeBSD in viritualbox > or similar. I'm interested in that... Just download an install image and start it in virtualbox, see 1. You might need to change the motherboard type. doc/README.clang explains how to use the host compiler to cross build u-boot (for some boards). You can install a gcc cross compiler as well. [1] https://www.freebsd.org/releases/10.1R/announce.html