Page 1 of 1

Build failure: arm with server config

PostPosted: Wed Oct 19, 2016 9:14 am
by kdave
A few people on IRC reported a build failure, I'm providing some more information that I was able to collect from my builds:

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;

Re: Build failure: arm with server config

PostPosted: Fri Oct 21, 2016 6:59 pm
by kdave
For the record, has been fixed.