* [U-Boot] How do I tell buildman to use a /specific/ toolchain? @ 2015-09-23 19:47 Stephen Warren 2015-10-01 22:59 ` Simon Glass 0 siblings, 1 reply; 11+ messages in thread From: Stephen Warren @ 2015-09-23 19:47 UTC (permalink / raw) To: u-boot 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. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-09-23 19:47 [U-Boot] How do I tell buildman to use a /specific/ toolchain? Stephen Warren @ 2015-10-01 22:59 ` Simon Glass 2015-10-01 23:27 ` Stephen Warren 0 siblings, 1 reply; 11+ messages in thread From: Simon Glass @ 2015-10-01 22:59 UTC (permalink / raw) To: u-boot Hi Stephen, On Wednesday, 23 September 2015, Stephen Warren <swarren@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). The option other option at present is -G which lets you use multiple .buildman files. You could have one of these for each toolchain. Regards, Simon ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-01 22:59 ` Simon Glass @ 2015-10-01 23:27 ` Stephen Warren 2015-10-03 14:30 ` Simon Glass 0 siblings, 1 reply; 11+ messages in thread From: Stephen Warren @ 2015-10-01 23:27 UTC (permalink / raw) To: u-boot On 10/01/2015 04:59 PM, Simon Glass wrote: > Hi Stephen, > > On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-01 23:27 ` Stephen Warren @ 2015-10-03 14:30 ` Simon Glass 2015-10-03 19:20 ` Stephen Warren 0 siblings, 1 reply; 11+ messages in thread From: Simon Glass @ 2015-10-03 14:30 UTC (permalink / raw) To: u-boot Hi Stephen, On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 10/01/2015 04:59 PM, Simon Glass wrote: >> >> Hi Stephen, >> >> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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] ? Regards, Simon ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-03 14:30 ` Simon Glass @ 2015-10-03 19:20 ` Stephen Warren 2015-10-04 16:38 ` Simon Glass 0 siblings, 1 reply; 11+ messages in thread From: Stephen Warren @ 2015-10-03 19:20 UTC (permalink / raw) To: u-boot On 10/03/2015 08:30 AM, Simon Glass wrote: > Hi Stephen, > > On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: >> On 10/01/2015 04:59 PM, Simon Glass wrote: >>> >>> Hi Stephen, >>> >>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-03 19:20 ` Stephen Warren @ 2015-10-04 16:38 ` Simon Glass 2015-10-05 1:19 ` Stephen Warren 2015-10-20 15:21 ` Tom Rini 0 siblings, 2 replies; 11+ messages in thread From: Simon Glass @ 2015-10-04 16:38 UTC (permalink / raw) To: u-boot Hi Stephen, On 3 October 2015 at 20:20, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 10/03/2015 08:30 AM, Simon Glass wrote: >> Hi Stephen, >> >> On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: >>> On 10/01/2015 04:59 PM, Simon Glass wrote: >>>> >>>> Hi Stephen, >>>> >>>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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? Regards, Simon ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-04 16:38 ` Simon Glass @ 2015-10-05 1:19 ` Stephen Warren 2016-03-07 2:39 ` Simon Glass 2015-10-20 15:21 ` Tom Rini 1 sibling, 1 reply; 11+ messages in thread From: Stephen Warren @ 2015-10-05 1:19 UTC (permalink / raw) To: u-boot On 10/04/2015 10:38 AM, Simon Glass wrote: > Hi Stephen, > > On 3 October 2015 at 20:20, Stephen Warren <swarren@wwwdotorg.org> wrote: >> On 10/03/2015 08:30 AM, Simon Glass wrote: >>> Hi Stephen, >>> >>> On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: >>>> On 10/01/2015 04:59 PM, Simon Glass wrote: >>>>> >>>>> Hi Stephen, >>>>> >>>>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-05 1:19 ` Stephen Warren @ 2016-03-07 2:39 ` Simon Glass 0 siblings, 0 replies; 11+ messages in thread From: Simon Glass @ 2016-03-07 2:39 UTC (permalink / raw) To: u-boot Hi Stephen, On 4 October 2015 at 19:19, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 10/04/2015 10:38 AM, Simon Glass wrote: >> Hi Stephen, >> >> On 3 October 2015 at 20:20, Stephen Warren <swarren@wwwdotorg.org> wrote: >>> On 10/03/2015 08:30 AM, Simon Glass wrote: >>>> Hi Stephen, >>>> >>>> On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: >>>>> On 10/01/2015 04:59 PM, Simon Glass wrote: >>>>>> >>>>>> Hi Stephen, >>>>>> >>>>>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-04 16:38 ` Simon Glass 2015-10-05 1:19 ` Stephen Warren @ 2015-10-20 15:21 ` Tom Rini 2015-10-20 17:23 ` Simon Glass 1 sibling, 1 reply; 11+ messages in thread From: Tom Rini @ 2015-10-20 15:21 UTC (permalink / raw) To: u-boot On Sun, Oct 04, 2015 at 05:38:41PM +0100, Simon Glass wrote: > Hi Stephen, > > On 3 October 2015 at 20:20, Stephen Warren <swarren@wwwdotorg.org> wrote: > > On 10/03/2015 08:30 AM, Simon Glass wrote: > >> Hi Stephen, > >> > >> On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: > >>> On 10/01/2015 04:59 PM, Simon Glass wrote: > >>>> > >>>> Hi Stephen, > >>>> > >>>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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? Please note that I think this feature is what we need to be able to drop MAKEALL support, it's the only use case I can find right now where we can do something in MAKEALL but not buildman. Thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151020/508897c0/attachment.sig> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-20 15:21 ` Tom Rini @ 2015-10-20 17:23 ` Simon Glass 2016-03-07 18:30 ` Simon Glass 0 siblings, 1 reply; 11+ messages in thread From: Simon Glass @ 2015-10-20 17:23 UTC (permalink / raw) To: u-boot Hi Tom, On 20 October 2015 at 09:21, Tom Rini <trini@konsulko.com> wrote: > > On Sun, Oct 04, 2015 at 05:38:41PM +0100, Simon Glass wrote: > > Hi Stephen, > > > > On 3 October 2015 at 20:20, Stephen Warren <swarren@wwwdotorg.org> wrote: > > > On 10/03/2015 08:30 AM, Simon Glass wrote: > > >> Hi Stephen, > > >> > > >> On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: > > >>> On 10/01/2015 04:59 PM, Simon Glass wrote: > > >>>> > > >>>> Hi Stephen, > > >>>> > > >>>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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? > > Please note that I think this feature is what we need to be able to drop > MAKEALL support, it's the only use case I can find right now where we > can do something in MAKEALL but not buildman. Thanks! > > -- > Tom I'll make time for this over the next few weeks. Regards, Simon ^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] How do I tell buildman to use a /specific/ toolchain? 2015-10-20 17:23 ` Simon Glass @ 2016-03-07 18:30 ` Simon Glass 0 siblings, 0 replies; 11+ messages in thread From: Simon Glass @ 2016-03-07 18:30 UTC (permalink / raw) To: u-boot Hi Tom, On 20 October 2015 at 11:23, Simon Glass <sjg@chromium.org> wrote: > Hi Tom, > > On 20 October 2015 at 09:21, Tom Rini <trini@konsulko.com> wrote: >> >> On Sun, Oct 04, 2015 at 05:38:41PM +0100, Simon Glass wrote: >> > Hi Stephen, >> > >> > On 3 October 2015 at 20:20, Stephen Warren <swarren@wwwdotorg.org> wrote: >> > > On 10/03/2015 08:30 AM, Simon Glass wrote: >> > >> Hi Stephen, >> > >> >> > >> On 2 October 2015 at 00:27, Stephen Warren <swarren@wwwdotorg.org> wrote: >> > >>> On 10/01/2015 04:59 PM, Simon Glass wrote: >> > >>>> >> > >>>> Hi Stephen, >> > >>>> >> > >>>> On Wednesday, 23 September 2015, Stephen Warren <swarren@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 at 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? >> >> Please note that I think this feature is what we need to be able to drop >> MAKEALL support, it's the only use case I can find right now where we >> can do something in MAKEALL but not buildman. Thanks! >> >> -- >> Tom > > I'll make time for this over the next few weeks. > > Regards, > Simon Or in fact, I will only just get to it now... Regards, Simon ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-03-07 18:30 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-09-23 19:47 [U-Boot] How do I tell buildman to use a /specific/ toolchain? Stephen Warren 2015-10-01 22:59 ` Simon Glass 2015-10-01 23:27 ` Stephen Warren 2015-10-03 14:30 ` Simon Glass 2015-10-03 19:20 ` Stephen Warren 2015-10-04 16:38 ` Simon Glass 2015-10-05 1:19 ` Stephen Warren 2016-03-07 2:39 ` Simon Glass 2015-10-20 15:21 ` Tom Rini 2015-10-20 17:23 ` Simon Glass 2016-03-07 18:30 ` Simon Glass
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox