-
-
Notifications
You must be signed in to change notification settings - Fork 398
Request for clarification arduino IDE toolchain selection #873
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Also the adafruit wiced in |
The rule "tool with highest version number delivered for the same core/architecture" gives me a much higher build rate but still doesn't cover the whole domain. For instance:
As both boards are nfr52 boards the above rule implies they should use the same tool versions which they clearly don't. I also see the Arduino IDE dump following for adafruit:
and for primo:
Seems like core is currently defined as what is in the |
So, there are many concurrent rules that apply:
|
I'm talking about case 2a. I have no clue what you mean with:
Can you point me to the code that does this override and the code that gets the prefs? |
Sure, https://github.com/arduino/Arduino/blob/88fa134d07f278ea91ab39abbbd5d3e1e9e5b637/arduino-core/src/cc/arduino/Compiler.java#L277-L281 . For every |
From this code I would assume the override happens in BaseNoGui.boardPreferences |
Some background info on what I'm doing. I'm currently running unit tests where I try to build the barebone ino file for all boards available in the unofficial hardware list. Running this test I came to the conclusion my tool selection like arduino IDE was not compliant with the arduino IDE tool selection 😮 Sloeber/arduino-eclipse-plugin#1145 Here is the reporting: So of the 711 boards the test skipped 219 after 50 failures so 442 successes. Success means "build ok" not build like arduino IDE". Most frustrating to me is that there are quite some Arduino packaged boards in there. So I updated the code to take tool versions instead of package versions and got these results: 636 successful 🎈 builds but again lots of arduino packaged boards. So I switched to take the highest tool version but only consider the dependent tools of platforms that have the same architecture than the current boards architecture (where architecture is based on the foldername). Results even better (forgot to take a snapshot). But arduino primo is in the list So I switched to take the highest tool version but only consider the dependent tools of platforms that have the same architecture than the current boards core (where core is defined as the value of the key As there is a difference between what I programmed and what I think I programmed and I'm unable to figure out what the algorithm should be some help is really appreciated. |
Based on the info provided I found this code: This code selects the tools from the platform and the referenced platform preferring the tools of the referenced platform. I tested this way in sloeber and all arduino delivered boards seem to compile fine 😃 but many 3th party boards fail 😒. For some of the failed boards It seems like Some guidance would be appreciated. |
I got Sloeber all working. The way I think now it works (or this way is how Sloeber works):
I'm not sure if only I can update Surely in the latter, the following claim:
arduino-cli/docs/platform-specification.md Lines 769 to 770 in 6ac5f7a
is simply not correct. |
I wanted to update the pages but they have been moved and I do not see how I can update them now. |
Hi @jantje. As you saw, we are now hosting the package_index.json and Arduino platform specifications in the Arduino CLI repository (since Arduino CLI is now the tool that handles these things for all the official Arduino development software). You are welcome to submit a PR for any enhancements or fixes to the documentation you would like to propose. The documentation is hosted here: Some information on contributing to the docs: Thanks! |
@per1234 |
I read this
which is IMHO not correct |
@per1234 what should we do about this? |
This indeed solves the problem of lack of documentation.
|
From the "package index specification":
arduino-cli/docs/package_index_json-specification.md
Lines 166 to 167 in 6ac5f7a
I always understood the Arduino IDE selected the tool(chain)? with the highest version number (making the assumption the latest is the one with the highest version number). However testing shows this is not Arduino IDE behaviour.
For example installing the "SparkFun Apollo3 Boards" platform (https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json) means installing
arm-none-eabi-gcc\\8-2018-q4-major
After installing the sparkfun platform, Arduino Zero compiles with
arm-none-eabi-gcc\\7-2017q4
(version 7) and not with the sparkfun tool (version 8).Can you please specify how Arduino IDE selects the tool(chain)?
Note: IMHO the arduino framework specifies/uses platform versions and tool versions but does not specify/use toolchain versions.
The text was updated successfully, but these errors were encountered: