The build message from Wizzup (http://sprunge.us/HdJh):
- Code: Select all
CC arch/arm/kernel/asm-offsets.s
In file included from include/linux/atomic.h:4:0,
from include/linux/spinlock.h:417,
from include/linux/seqlock.h:35,
from include/linux/time.h:5,
from include/uapi/linux/timex.h:56,
from include/linux/timex.h:56,
from include/linux/sched.h:19,
from arch/arm/kernel/asm-offsets.c:14:
./arch/arm/include/asm/atomic.h:590:42: error: redefinition of ‘atomic64_xchg_unchecked_re
laxed’
#define atomic64_xchg_unchecked_relaxed atomic64_xchg_unchecked_relaxed
^
./arch/arm/include/asm/atomic.h:592:25: note: in expansion of macro ‘atomic64_xchg_uncheck
ed_relaxed’
static inline long long atomic64_xchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long l
ong new)
^
./arch/arm/include/asm/atomic.h:585:25: note: previous definition of ‘atomic64_xchg_unchec
ked_relaxed’ was here
static inline long long atomic64_xchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long l
ong new)
^
Kbuild:81: recipe for target 'arch/arm/kernel/asm-offsets.s' failed
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
Makefile:1037: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
I observe the same build error, more specifically with armv7 and "server" flavor (the config https://github.com/kdave/kernel-source/ ... sec-server). It's ok on "desktop" flavor for armv7. The armv6 builds are all ok.
Last build that was ok: grsecurity-3.1-4.7.6-201609301918.patch
First failure: grsecurity-3.1-4.7.7-201610101902.patch
The diff-to-diff changes in the PaX patches seem ok, no changes regarding the atomics, but the interdiff on the above mentioned patches shows this diff:
- Code: Select all
diff -u b/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
--- b/arch/arm/include/asm/atomic.h
+++ b/arch/arm/include/asm/atomic.h
@@ -554,13 +554,13 @@
return oldval;
}
+#define atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
static inline long long
atomic64_cmpxchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long long old, long long new)
{
return atomic64_cmpxchg_relaxed((atomic64_t *)ptr, old, new);
}
-#define atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
#define atomic64_cmpxchg_unchecked_relaxed atomic64_cmpxchg_unchecked_relaxed
static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
@@ -589,6 +589,12 @@
#define atomic64_xchg_relaxed atomic64_xchg_relaxed
#define atomic64_xchg_unchecked_relaxed atomic64_xchg_unchecked_relaxed
+static inline long long atomic64_xchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long long new)
+{
+ return atomic64_xchg_relaxed((atomic64_t *)ptr, new);
+}
+#define atomic64_xchg_unchecked_relaxed atomic64_xchg_unchecked_relaxed
+
static inline long long atomic64_dec_if_positive(atomic64_t *v)
{
long long result;