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. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot