-
Notifications
You must be signed in to change notification settings - Fork 2k
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
pkg: blacklist selected pkg
s for LLVM/clang
#9734
Conversation
378b1db
to
d76827c
Compare
1485801
to
0d1cb3f
Compare
pkg/jerryscript/Makefile.include
Outdated
|
||
# There are problem with unused `-mcpu...` arguments in clang and with | ||
# ranlib + LLVM/clang in this package | ||
TOOLCHAINS_BLACKLIST += llvm |
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.
Still need to fix the conversion error first, before tackling this one, but I had ranlib
problems in openthread
regardless, so it might also be just cortex-m%
.
d82b9d2
to
3379a8d
Compare
pkg/jerryscript/Makefile.include
Outdated
|
||
ifneq (,$(filter cortex-m%,$(CPU_ARCH))) | ||
# There is a linking issue to `_setjmp()` and `stderr` when compiling | ||
# for Cortex-M with LLVM/clang |
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.
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.
OK I see the error with samr21-xpro
:
make -C examples/javascript BOARD=samr21-xpro distclean all TOOLCHAIN=llvm
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.
Mhh... now that I went through all that trouble fixing LLVM in jerryscript, I kind of want to know what's causing this, especially since their test with RIOT doesn't seem to have that problem :-/.
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.
Posted in the wrong PR before:
With #9821 it looks like I can correctly compile examples/javascript with llvm both on ubuntu 16.04 and in the docker image with BOARD=samr21-xpro.
pkg/openthread/Makefile.include
Outdated
@@ -8,3 +8,9 @@ ifneq (,$(filter openthread_contrib,$(USEMODULE))) | |||
DIRS += $(OPENTHREAD_DIR)/contrib | |||
DIRS += $(OPENTHREAD_DIR)/contrib/netdev | |||
endif | |||
|
|||
ifneq (,$(filter cortex-m0%,$(CPU_ARCH))) |
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.
This one should also be disabled for cortex-m3
it is failing when running buildtest
on the iotlab/fox boards.
9273d16
to
6d90988
Compare
Rebased to current master and dependencies |
6d90988
to
bcd29d9
Compare
bcd29d9
to
031c730
Compare
Rebased to current master as #9730 was merged. |
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.
Except libcose, I get the same errors.
I re-trigger murdock to see if I can just remove qDSA and make it build (in #9398).
pkg/libcose/Makefile.include
Outdated
# There is a problem with the LLVM assembler, the M0(+) instruction set, and | ||
# the assembly part of this package | ||
TOOLCHAINS_BLACKLIST += llvm | ||
endif |
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.
I do not have any error when building
make -C tests/unittests tests-libcose BOARD=samr21-xpro distclean all TOOLCHAIN=llvm
With arm-none-eabi-gcc 6.3.1
and clag 3.8.0
on ubuntu xenial.
But it fails with qDSA though. So could have been a problem of parallel output in murdock maybe ?
It says llvm-as unrecognized option -mcpu=cortex-m0plus. Same on arch linux.
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.
Murdock is happy when I removed qDSA
https://ci.riot-os.org/RIOT-OS/RIOT/9398/44552886b429f1ce7c704249beb43964fed7a297/output/compile/tests/unittests/samr21-xpro:llvm.txt so it should be pkg/qDSA
disabled instead.
make -C tests/unittests tests-qDSA BOARD=samr21-xpro distclean all TOOLCHAIN=llvm
I disabled the test in DISABLE_TEST_FOR_ARM_CORTEX_M for unittests.
I will re-enable the qDSA test to verify.
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.
RIOT/tests/unittests/bin/pkg/samr21-xpro/qDSA/arm/asm/bigint_mul.S:17:3: error: invalid instruction, any one of the following would fix this:
add r0,#8
pkg/jerryscript/Makefile.include
Outdated
|
||
ifneq (,$(filter cortex-m%,$(CPU_ARCH))) | ||
# There is a linking issue to `_setjmp()` and `stderr` when compiling | ||
# for Cortex-M with LLVM/clang |
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.
OK I see the error with samr21-xpro
:
make -C examples/javascript BOARD=samr21-xpro distclean all TOOLCHAIN=llvm
@@ -31,3 +31,6 @@ DIRS += \ | |||
$(NORDIC_SRCS)/components/softdevice/common/softdevice_handler \ | |||
$(NORDIC_SRCS)/components/ble/common \ | |||
$(NORDIC_SRCS)/components/iot/ble_ipsp | |||
|
|||
# LLVM ARM assembler has massive problems digesting this | |||
TOOLCHAINS_BLACKLIST += llvm |
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.
OK it fails for examples/gnrc_networking
on nrf52dk
.
@@ -1 +1,7 @@ | |||
INCLUDES += -I$(PKGDIRBASE)/micro-ecc | |||
|
|||
ifneq (,$(filter cortex-m0%,$(CPU_ARCH))) |
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.
Ok it fails for samr21-xpro
in tests/pkg_micro-ecc
.
ifneq (,$(filter cortex-m0% cortex-m3%,$(CPU_ARCH))) | ||
# There are problem with unused `-mcpu...` arguments in clang and with | ||
# ranlib + LLVM/clang in this package with Cortex-M0 and M3 | ||
TOOLCHAINS_BLACKLIST += llvm |
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.
I get the same for pkg/openthread
with samr21-xpro
and iotlab-m3
From what I've gathered from your review: I removed the blacklist for |
With the current version of this PR, #9398 (1394027) still fails due to libcose, so I revert 3a0c1fa, though I can confirm that qDSA is also failing when compiled locally. |
@miri64 if qDSA is blacklisting the toolchain, why would even the unittest try to build ? |
I only blacklisted Cortex-M0+... but true that's the architecture |
arghs... used |
b42f494
to
b32d273
Compare
LLVM/clang can't handle the inline assembler instructions in this package
There is a problem with ranlib and LLVM/clang in this package
b32d273
to
ed5dde0
Compare
Rebased and removed jerryscript blacklisting to check if #9821 works now. |
@cladmi readded jerryscript to black list, as discussed in #9809 (comment) |
Looks good to me, and I already tested the blackilsted packages. |
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.
ACK, tested they are needed and checked that they are enough to make murdock happy with llvm #9809
Contribution description
Some
pkg
s have problems when compiled with LLVM/clang. This fixes that by blacklisting LLVM for them.This is still WIP:
Issues/PRs references
Depends on
#9730(merged).