-
• #2
Yes, if you have an
arm-none-eabi-gcc
installed then it'll use that, regardless of the version.For most people they won't have the compiler installed, or if they installed it, it's because they have a compiler they're happy with, so it hasn't been an issue thus far.
-
• #3
For some weeks now, it is best solution to use gcc-arm-none-eabi-8-2018-q4-major
I've done some testing based on actual provision.sh and looks like- If we already have an older version of gcc-arm-none-eabi installed, provision.sh will never install v8
- if v8 is installed manually using command from provision.sh, older version is used, v8 is ignored
- after changing sequence in export to export PATH=/home/nodejs/http88/Espruino/gcc-arm-none-eabi-8-2018-q4-major/bin:$PATH v8 is used
Since I'm not an expert in this area, could please someone check
- If we already have an older version of gcc-arm-none-eabi installed, provision.sh will never install v8
-
• #4
That all sounds right to me I think?
provision.sh
just checks that there's agcc-arm-none-eabi
on the path, not which version it is.Since
provision.sh
is expecting that GCC won't be installed, it adds it to the end of the path by default - so if it was previously installed and you ran the old code manually then the old one would have ended up being used. -
• #5
Would you see any possible problems, to install V8 always and changing sequence, so that v8 is always searched first ?
-
• #6
Yes, I think there would be problems - people may well want to use their own compiler, especially if v9 gets released and we're still on v8.
I don't think changing the path order would be a big problem though.
Maybe a
FORCE=1
option could be added, to force the compilers/etc to always be installed even if there was one already on the path?However since this would appear to be for your tool, it might make sense to just modify your tool such that the existing
gcc-arm-none-eabi
was removed from your path before runningprovision.sh
? -
• #7
Removing is not a good solution for me.
I'm one of the guys mentioned by you, having their own idea from time to time.
And since my server is not dedicated for my tool, ...Looke like I'll need something like an "provision.sh-changed-event" and do the job manually.
I'm pretty sure, this will not happen very often.
May be https://app.github-file-watcher.com/ is a solution -
• #8
Surely just removing the tool from the path for that one session is absolutely fine - it's not like it's global.
For instance adding the command:
export PATH=`echo $PATH | sed -e "s/:[^:]*arm[^:]*:/:/"`
to your script would remove any path entry containing the text
arm
, just for that terminal session, and not across your whole system(you probably want to run
echo $PATH
first to check that's the correct entry to remove though)
Looks like provision.sh first checks for existance of compiler (line 175)
This returns true for any arm-none-eabi-gcc, even very old versions
So it never reaches line 183/184
Is my assumption correct, or is there some misunderstanding on my side