Skip to content

Commit ab83426

Browse files
kolyshkinxemul
authored andcommitted
arm: rm -Wa from CFLAGS
Somehow clang doesn't always like -Wa flags, for example when making dependencies (see commit 9303ed3 ("Makefiles: move -Wa,--noexecstack out of CFLAGS"), which causes build break, scary error messages, and even hair loss. There are many ways to solve this. This patch employs the one that is simple and clean. The -Wa,-mimplicit-it=always flag was added by commit 79c4b74 ("arm: fix compilation on ARMv7"). The reason is, ARM needs an IT instruction before certain conditionals. Those IT instructions are almost always automatically generated by assembler itself, but in some cases a special assembler flag (like the one above) is needed. As there is only one place in the code that need IT, it's easy to patch it (add explicit IT) and remove the flag. Note that "IT" generates no machine code per se, so there should not be any functional change (although I haven't checked it). For more info on IT, see http://tinyurl.com/z3ldsdr Hope for a review from our ARM experts. travis-ci: success for Fixes to compile on arm with clang Cc: Christopher Covington <[email protected]> Cc: Dmitry Safonov <[email protected]> Cc: Cyrill Gorcunov <[email protected]> Signed-off-by: Kir Kolyshkin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
1 parent 4c51dba commit ab83426

File tree

2 files changed

+1
-2
lines changed

2 files changed

+1
-2
lines changed

Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ ifeq ($(ARCH),arm)
6161
ARMV := $(shell echo $(UNAME-M) | sed -nr 's/armv([[:digit:]]).*/\1/p; t; i7')
6262
DEFINES := -DCONFIG_ARMV$(ARMV)
6363

64-
USERCFLAGS += -Wa,-mimplicit-it=always
65-
6664
ifeq ($(ARMV),6)
6765
USERCFLAGS += -march=armv6
6866
endif

include/common/arch/arm/asm/atomic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
2727
"ldrex %1, [%3]\n"
2828
"mov %0, #0\n"
2929
"teq %1, %4\n"
30+
"it eq\n"
3031
"strexeq %0, %5, [%3]\n"
3132
: "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
3233
: "r" (&ptr->counter), "Ir" (old), "r" (new)

0 commit comments

Comments
 (0)