-
Notifications
You must be signed in to change notification settings - Fork 45
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
add TI msp430 gcc 8.3.0 ELF/newlib toolchain #91
add TI msp430 gcc 8.3.0 ELF/newlib toolchain #91
Conversation
92ee023
to
c6e22b8
Compare
FYI: A couple of weeks ago I asked the riot-devs per email which version to use, the TI or vanilla one. The vote was leaning towards the vanilla version. |
I asked the same, and the vote was more like, "why maintain our own toolchain compiles?". I was leaning towards vanilla, as TI's up to 8.2.0 needed patches to their own linker files. Are there any concrete reasons for using the vanilla version? |
It seems that the installation of the Ubuntu packages could be removed, right? Lines 90 to 93 in c6e22b8
|
Maybe
|
Yeah, for now we'll need to keep this, as current master relies on it. For a while (until the release after RIOT-OS/RIOT#12457), we'll have to keep both. |
I will take a look to PR RIOT-OS/RIOT#12457 next, as soon as I have some time. At the beginning of the winter term, my schedule is always quite busy. |
I was looking for the votes you both mentioned here. @geromueller You had exactly two votes from other developers, but both of them were suggesting to use vanilla. Arguments were:
@kaspar030 I couldn't find your survey. From my humble point of view, we shouldn't compile a toolchain by our self if the precompiled one from the vendor or any other source works and fulfills our requirements. It is not always necessary to have the latest gcc version. Compiling the toolchain takes a lot of time and resources to generate the Docker image. If I remember correctly, it may timeout during generation, but I'm not sure. And finally, if the vendor doesn't have interest anymore, then we can compile it by our self. So, if version 8.3.0 works, fulfills our requirements and doesn't have the problems @kaspar030 mentioned for version 8.2.0, I would prefer to use the precompiled one. I have tested it with RIOT-OS/RIOT#12457 and it seems to work, at least the compilation. I will have a test whether produced code also works. The only thing I have found with the toolchain is that it obviously uses a newlib-nano ( |
Hi,
using the TI one as default is perfectly fine for me. Nevertheless there
may be occasions when the vanilla one is interesting too. We could use
docker ARGS to be able to switch to the vanilla one if a developer want
to compile it on his own?
Gero
Am 18.10.19 um 08:09 schrieb Gunar Schorcht:
… I was looking for the votes you both mentioned here
***@***.***/>.
@geromueller <https://github.com/geromueller> You had exactly two votes
from other developers, but both of them were suggesting to use vanilla.
Arguments were:
* More consistent to other toolchains (no TI specific stuff)
* Does not rely on TI for future updates (in case TI looses interest
in maintaining their on version)
@kaspar030 <https://github.com/kaspar030> I couldn't find your survey.
From my humble point of view, we shouldn't compile a toolchain by our
self if the precompiled one from the vendor or any other source works
and fulfills our requirements. It is not always necessary to have the
latest gcc version. Compiling the toolchain takes a lot of time and
resources to generate the Docker image. If I remember correctly, it may
timeout during generation, but I'm not sure. And finally, if the vendor
doesn't have interest anymore, then we can compile it by our self.
So, if version 8.3.0 works, fulfills our requirements and doesn't have
the problems @kaspar030 <https://github.com/kaspar030> mentioned for
version 8.2.0, I would prefer to use the precompiled one.
I have tested it with RIOT-OS/RIOT#12457
<RIOT-OS/RIOT#12457> and it seems to work, at
least the compilation. I will have a test whether produced code also
works. The only thing I have found with the toolchain is that it
obviously uses a newlib-nano (|tests/libc_newlib| fails) which requires
to use module |newlib-nano| in the build system. But this can be fixed
in RIOT-OS/RIOT#12457 <RIOT-OS/RIOT#12457>.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#91?email_source=notifications&email_token=AAKCVWPGEILCSG6CV5UZ7BLQPFHKJA5CNFSM4JA2XDY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBS2C4Q#issuecomment-543531378>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAKCVWPB4RME3QRZRJOZZV3QPFHKJANCNFSM4JA2XDYQ>.
|
Would gcc 9.2 require further adaptations in RIOT's source code for MSP430? |
On the other hand, we might argue that the |
I do not understand the reluctance do add a feature some people are
interested in. If you have good reasons, remove it. If you don't, just
leave it in for those who want to test their code on different compilers
and platforms. That is what testing is all about, isn't it?
Gero
Am 18.10.19 um 11:02 schrieb Gunar Schorcht:
… We could use docker ARGS to be able to switch to the vanilla one if
a developer want to compile it on his own?
On the other hand, we might argue that the |riotdocker| image comes with
the default toolchain version for developers who do not want to have
effort to manually install a toolchain on their host and wanna to use
the toolchain out of the box. Developers with very specific toolchain
requirements would probably install the toolchain on their host anyway.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#91?email_source=notifications&email_token=AAKCVWLGWF2F2FFPR3XRYLLQPF3SFA5CNFSM4JA2XDY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBTOO7Q#issuecomment-543614846>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAKCVWK7YR4SA6X2NNQNVJLQPF3SFANCNFSM4JA2XDYQ>.
|
AFAIK, no. I'm using a self-compiled msp430 (very similar to how @geromueller did it: started from the arch AUR build files, changed some newlib flags). It works fine. |
I'm actually all for compiling our own toolchains (even if just for verifying the vendor ones). But IMO that needs to be introduced properly.
So I propose:
|
The whole point of the docker container is to bundle a somewhat stable toolchain. |
I completely agree with @kaspar030. |
From my point of view, we should provide the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The toolchain was tested completely together with current master and RIOT-OS/RIOT#12457. It is working without any problems.
To make some progress with the new toolchain and RIOT-OS/RIOT#12457, I will merge this first. Regarding the PR #82, we will find a solution according to @kaspar030's proposal in #91 (comment). |
@kaspar030 Would you like to rebase it before the merge? |
@kaspar30 Could you rebase your branch to the current master and force it? I have accidentally let GitHub merge the master branch into your branch 🕶️ |
ffb7c28
to
779eb39
Compare
yup, done. |
@kaspar030 Thanks for contributing it. Once it is rolled out to Murdock, we can continue with PR RIOT-OS/RIOT#12457. |
This might be related to issue #64 which proposes the versioning of riotdocker containers for releases. This would become easy with a toolchain repository. |
This PR adds the current official TI msp430 ELF toolchain.
@gschorcht @geromueller please take a look!
Compared to #82 , it avoids building the toolchain from source.
Compared to #62, this is using TI's current release, and does not install the support files.
PR to RIOT master updating msp430: RIOT-OS/RIOT#12457, which includes just the used msp430-support-files.
This PR will not do any compilation test on travis, as there's no code supporting this in master...