Hi Stephen, On 4 October 2015 at 19:19, Stephen Warren <swar...@wwwdotorg.org> wrote: > On 10/04/2015 10:38 AM, Simon Glass wrote: >> Hi Stephen, >> >> On 3 October 2015 at 20:20, Stephen Warren <swar...@wwwdotorg.org> wrote: >>> On 10/03/2015 08:30 AM, Simon Glass wrote: >>>> Hi Stephen, >>>> >>>> On 2 October 2015 at 00:27, Stephen Warren <swar...@wwwdotorg.org> wrote: >>>>> On 10/01/2015 04:59 PM, Simon Glass wrote: >>>>>> >>>>>> Hi Stephen, >>>>>> >>>>>> On Wednesday, 23 September 2015, Stephen Warren <swar...@wwwdotorg.org> >>>>>> wrote: >>>>>>> >>>>>>> >>>>>>> Simon, >>>>>>> >>>>>>> I have 3 different ARM toolchains installed into /usr/bin via distro >>>>>>> packages. How do I tell buildman which of those to use? >>>>>>> >>>>>>> I had originally thought that ~/.buildman's [toolchain] section >>>>>>> contained >>>>>>> CROSS_COMPILE-like values, so I tried: >>>>>>> >>>>>>>> [toolchain] >>>>>>>> root: / >>>>>>>> arm0-not-installed: arm-none-gnueabi- >>>>>>>> arm1: arm-none-eabi- >>>>>>>> arm2: arm-linux-gnueabihf- >>>>>>>> arm3: arm-linux-gnueabi- >>>>>>>> arch64: aarch64-linux-gnu- >>>>>>>> >>>>>>>> [toolchain-alias] >>>>>>>> arm: arm1 >>>>>>>> aarch64: aarch64 >>>>>>> >>>>>>> >>>>>>> >>>>>>> (I intended to change the "arm: arm1" line to point at arm1/2/3 based on >>>>>>> which I wanted to use at a particular time). >>>>>>> >>>>>>> However, running "buildman --list-toolchains" and re-reading the docs >>>>>>> shows me that the [toolchain] values are absolute directories that >>>>>>> buildman >>>>>>> searches for files named *-gcc: >>>>>>> >>>>>>>> - scanning path 'arm-none-gnueabi-' >>>>>>>> - looking in 'arm-none-gnueabi-/.' >>>>>>>> - looking in 'arm-none-gnueabi-/bin' >>>>>>>> - looking in 'arm-none-gnueabi-/usr/bin' >>>>>>> >>>>>>> >>>>>>> >>>>>>> If buildman finds multiple toolchains, there doesn't seem to be a way to >>>>>>> tell it which one to use. Am I missing something? >>>>>>> >>>>>>> I suppose a solution wouuld be to move the compiler binaries into >>>>>>> different separate directories, and only list one of those directories >>>>>>> in >>>>>>> ~/.buildman. However, I can't do that for distro-packaged toolchains >>>>>>> (well, >>>>>>> I suppose I could manually mv everything all over the place, but that's >>>>>>> really fragile since it'd break any time the package got upgraded or >>>>>>> removed >>>>>>> and re-installed). >>>>>>> >>>>>>> I think it makes sense to add new syntax into ~/.buildman to specify >>>>>>> "don't do automagical searching, just use this CROSS_COMPILE value that >>>>>>> I >>>>>>> say". Does that sound reasonable? Automagic stuff makes for great >>>>>>> defaults, >>>>>>> but if it can't be overridden, it sucks when you actually know what you >>>>>>> want. >>>>>> >>>>>> >>>>>> Yes I think it would be fine to add an option to use CROSS_COMPILE (of >>>>>> course it would fail if you tried to build the board with the wrong >>>>>> arch). >>>>> >>>>> >>>>> I wasn't necessarily looking for buildman to pick up the CROSS_COMPILE >>>>> environment variable, although that would be a simple solution for >>>>> single-arch builds at least. My mention of CROSS_COMPILE immediately above >>>>> was re: using values that are formatted in the same way as the >>>>> CROSS_COMPILE >>>>> environment variable would be, rather than directory names, in the config >>>>> file. In other words, the example content I showed above. >>>>> >>>>>> The option other option at present is -G which lets you use multiple >>>>>> .buildman files. You could have one of these for each toolchain. >>>>> >>>>> >>>>> I don't think that gets me what I want. As far as I can tell, the buildman >>>>> config file contains a list directories to search within, yet if I have 3 >>>>> toolchains in a single directory, there's no way to select which one I >>>>> want >>>>> to use, is there? >>>>> >>>>> In other words, a config file that contains: >>>>> >>>>> [toolchain] >>>>> distro-packages: /usr/bin >>>>> >>>>> ... finds the following toolchains: >>>>> >>>>> [swarren@swarren-lx1 u-boot]$ ./tools/buildman/buildman \ >>>>> --list-tool-chains >>>>> Scanning for tool chains >>>>> - scanning path '/usr/bin' >>>>> - looking in '/usr/bin/.' >>>>> - found '/usr/bin/./arm-linux-gnueabi-gcc' >>>>> - found '/usr/bin/./arm-linux-gnueabihf-gcc' >>>>> - found '/usr/bin/./arm-none-eabi-gcc' >>>>> (That's 3 AArch32 toolchains found) >>>>> - found '/usr/bin/./winegcc' >>>>> - found '/usr/bin/./aarch64-linux-gnu-gcc' >>>>> - found '/usr/bin/./gcc' >>>>> - found '/usr/bin/./c89-gcc' >>>>> - found '/usr/bin/./x86_64-linux-gnu-gcc' >>>>> - found '/usr/bin/./i586-mingw32msvc-gcc' >>>>> - found '/usr/bin/./c99-gcc' >>>>> - looking in '/usr/bin/bin' >>>>> - looking in '/usr/bin/usr/bin' >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> Tool chain test: OK >>>>> List of available toolchains (7): >>>>> aarch64 : /usr/bin/./aarch64-linux-gnu-gcc >>>>> arm : /usr/bin/./arm-linux-gnueabi-gcc >>>>> (Buildman chose that one, and I think I have no control over that?) >>>>> c89 : /usr/bin/./c89-gcc >>>>> c99 : /usr/bin/./c99-gcc >>>>> i586 : /usr/bin/./i586-mingw32msvc-gcc >>>>> sandbox : /usr/bin/./winegcc >>>>> x86_64 : /usr/bin/./x86_64-linux-gnu-gcc >>>> >>>> I wonder if we need an option to specify the full path and avoid the >>>> search? >>>> >>>> Maybe [toolchain-prefix] ? >>> >>> Yes, that sounds like exactly what I was hoping for. >> >> OK - would you like to do a patch? > > I was hoping you could; I had looked into the toolchain selection > algorithms in buildroot quite a while back and wasn't able to work out > how to implement a feature like that.
I never did get to this. But I'll send a series soon which supports this. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot