cortexm.inc.mk: detect 'arm-none-eabi-gcc' from ubuntu bionic#10404
cortexm.inc.mk: detect 'arm-none-eabi-gcc' from ubuntu bionic#10404miri64 merged 1 commit intoRIOT-OS:masterfrom
Conversation
4f39f86 to
1facdd1
Compare
|
@HendrikVE could you also try ? |
|
Works good for me, warning is displayed and bypass with WERROR=0 also works. |
miri64
left a comment
There was a problem hiding this comment.
Still works without warning on Arch and I trust @HendrikVE's testing.
|
Updated (not sure it sent a message) |
miri64
left a comment
There was a problem hiding this comment.
I set-up a VM using https://app.vagrantup.com/ubuntu/boxes/bionic64 and installed the toolchain via apt-get:
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi unzip build-essential
arm-none-eabi-gcc --versionarm-none-eabi-gcc (15:6.3.1+svn253039-1build1) 6.3.1 20170620
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
However, when following the testing procedures I don't get the expected result:
RIOT_CI_BUILD=1 BOARD=samr21-xpro make --no-print-directory -C examples/default/ Building application "default" for "samr21-xpro" with MCU "samd21".
make[1]: Warning: File '/home/vagrant/RIOT/examples/default/bin/samr21-xpro/riotbuild/riotbuild.h' has modification time 1 s in the future
make[2]: Warning: File '/home/vagrant/RIOT/examples/default/bin/samr21-xpro/riotbuild/riotbuild.h' has modification time 0.56 s in the future
make[2]: warning: Clock skew detected. Your build may be incomplete.
make[2]: Warning: File '/home/vagrant/RIOT/examples/default/bin/samr21-xpro/riotbuild/riotbuild.h' has modification time 0.16 s in the future
make[2]: warning: Clock skew detected. Your build may be incomplete.
make[1]: warning: Clock skew detected. Your build may be incomplete.
make: Warning: File '/home/vagrant/RIOT/examples/default/bin/samr21-xpro/stdio_uart.a' has modification time 0.027 s in the future
text data bss dec hex filename
47436 148 6044 53628 d17c /home/vagrant/RIOT/examples/default/bin/samr21-xpro/default.elf
make: warning: Clock skew detected. Your build may be incomplete.
| $(warning $(shell $(TARGET_ARCH)-gcc --version | head -n 1)) | ||
| $(warning The currently recommanded version is the one installed in the riotdocker image) | ||
| $(warning https://github.com/RIOT-OS/riotdocker/blob/master/Dockerfile) | ||
| ifeq (1,$(WERROR)) |
There was a problem hiding this comment.
From the error message below I would expect it to be checked with ifneq (0,$(WERROR))
There was a problem hiding this comment.
I tried to be consistent with the other handling of WERROR
Lines 141 to 144 in 6a8808c
There was a problem hiding this comment.
Mhhhh... Ok for now, but we should think about if it isn't more clearer the other way around (afaics only WERROR=0 is documented, nothing is said about WERROR=<random number != 0>
|
On my machine I get the message… I will try with the vagrant image. What do you get with
|
|
It correctly fails with the test command in a vagrant image. Did you remember to checkout the branch before testing in the VM ? |
Pretty sure I did, but let me try again ;-) |
Arghs, though I mounted the repo from the host machine, I hooked it into a different repo then the one I checked out the PR in (I copied the config for the VM from my #9942 test setup where I did not want to interfere with my development cycle). |
|
Now it works as expected. Sorry for the noise -.- |
miri64
left a comment
There was a problem hiding this comment.
Tested on Arch Linux, Ubuntu 16.04, Ubuntu 18.04 (both with apt-get toolchain and the one used in the docker container). Works as expected. Note that for Ubuntu 16.04 I used the GCC from this source (why aren't we using that one in the docker btw?):
deb http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu xenial main
To test the right GCC on Ubuntu 18.04 I did as done here https://github.com/RIOT-OS/riotdocker/blob/97c77bd8fe9f7e63d0ac4f2f1fd4357e779ab5fb/Dockerfile#L100-L107 and rerouted the PATH:
PATH=/opt/gcc-arm-none-eabi-7-2018-q2-update/bin/:$PATH RIOT_CI_BUILD=1 BOARD=samr21-xpro make --no-print-directory -C examples/default/ ACK!
|
(please squash) |
|
We are not using the PPA anymore to have an explicit version number and choice and also help migrating releases. |
1e9c4aa to
a06519e
Compare
arm-gcc version from ubuntu bionic repository is not supported in RIOT.
Both when building with `gnu` and `llvm`.
arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:6.3.1+svn253039-1build1) 6.3.1 20170620
So detect this version and print an error if found.
The check is done on the building machine and not on the host when building in
docker.
The error can be disabled when building with WERROR=0.
a06519e to
89d7e2e
Compare
|
I rebased then squashed in two steps. |
|
Then let's go |
|
Thank you for reviewing and testing. |
Contribution description
arm-gcc version from ubuntu bionic repository is not supported in RIOT.
Both when building with
gnuandllvm.So detect this version and print an error if found.
The check is done on the building machine and not on the host when building in
docker.
The error can be disabled when building with WERROR=0.
TODO
Testing procedure
Not matching your working gcc version
Try compiling anything for
samr21-xprowith your working setup, it should produce no error at compilationDetecting bionic
Try building with ubuntu bionic GCC version (change your PATH) to see the error is detected, and also other "working" gcc versions:
You can disable the error with
WERROR=0and still try compiling:When building in docker, no check is done on your machine:
Issues/PRs references
Was reported here: