]> git.webhop.me Git - bs-cst-neutrino-hd.git/commitdiff
hd2: fix build kernel with gcc8 and greater
authorMarkham <markham001@gmx.de>
Wed, 27 Apr 2022 07:20:12 +0000 (09:20 +0200)
committerMarkham <markham001@gmx.de>
Wed, 27 Apr 2022 07:20:12 +0000 (09:20 +0200)
archive-patches/kernel-config/0001-fix-compilation-with-gcc-8.patch [new file with mode: 0644]
archive-patches/kernel-config/compiler-gcc9.h [new file with mode: 0644]
archive-patches/kernel-config/kernel-2.6.34.13-nevis.config
make/kernel.mk
make/prerequisites.mk

diff --git a/archive-patches/kernel-config/0001-fix-compilation-with-gcc-8.patch b/archive-patches/kernel-config/0001-fix-compilation-with-gcc-8.patch
new file mode 100644 (file)
index 0000000..e491ef5
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
+index 74b17d0..dc64fa2 100644
+--- a/arch/arm/include/asm/uaccess.h
++++ b/arch/arm/include/asm/uaccess.h
+@@ -165,7 +165,7 @@ extern int __put_user_8(void *, unsigned
+       ({                                                              \
+               unsigned long __limit = current_thread_info()->addr_limit - 1; \
+               const typeof(*(p)) __user *__tmp_p = (p);               \
+-              register const typeof(*(p)) __r2 asm("r2") = (x);       \
++              register typeof(*(p)) __r2 asm("r2") = (x);     \
+               register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+               register unsigned long __l asm("r1") = __limit;         \
+               register int __e asm("r0");                                     \
diff --git a/archive-patches/kernel-config/compiler-gcc9.h b/archive-patches/kernel-config/compiler-gcc9.h
new file mode 100644 (file)
index 0000000..e322f45
--- /dev/null
@@ -0,0 +1,59 @@
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc9.h> directly, include <linux/compiler.h> instead."
+#endif
+
+#define __used                         __attribute__((__used__))
+#define __must_check                   __attribute__((warn_unused_result))
+#define __compiler_offsetof(a, b)      __builtin_offsetof(a, b)
+
+/* Mark functions as cold. gcc will assume any path leading to a call
+   to them will be unlikely.  This means a lot of manual unlikely()s
+   are unnecessary now for any paths leading to the usual suspects
+   like BUG(), printk(), panic() etc. [but let's keep them for now for
+   older compilers]
+
+   gcc also has a __attribute__((__hot__)) to move hot functions into
+   a special section, but I don't see any sense in this right now in
+   the kernel context */
+#define __cold                 __attribute__((__cold__))
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#ifndef __CHECKER__
+# define __compiletime_warning(message) __attribute__((warning(message)))
+# define __compiletime_error(message) __attribute__((error(message)))
+#endif /* __CHECKER__ */
+
+/*
+ * Mark a position in code as unreachable.  This can be used to
+ * suppress control flow warnings after asm blocks that transfer
+ * control elsewhere.
+ */
+#define unreachable() __builtin_unreachable()
+
+/* Mark a function definition as prohibited from being cloned. */
+#define __noclone      __attribute__((__noclone__))
+
+/*
+ * Tell the optimizer that something else uses this function or variable.
+ */
+#define __visible __attribute__((externally_visible))
+
+/*
+ * GCC 'asm goto' miscompiles certain code sequences:
+ *
+ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+ *
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+ *
+ * (asm goto is automatically volatile - the naming reflects this.)
+ */
+#define asm_volatile_goto(x...)        do { asm goto(x); asm (""); } while (0)
+
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+#define __HAVE_BUILTIN_BSWAP32__
+#define __HAVE_BUILTIN_BSWAP64__
+#define __HAVE_BUILTIN_BSWAP16__
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
+
+//#define KASAN_ABI_VERSION 6
index d0401cee0c6f102dc9001c7be5ea99f239729ce2..989da608d45f5a70b90a79b76efd45af7421008a 100644 (file)
@@ -658,7 +658,7 @@ CONFIG_NETDEVICES=y
 # CONFIG_BONDING is not set
 # CONFIG_MACVLAN is not set
 # CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
+CONFIG_TUN=m
 # CONFIG_VETH is not set
 CONFIG_PHYLIB=y
 
index 35d21d1a28728edbbf2f637f879f25da32140ba0..0d6e7f2b88746fa55855d0bb125d43e9ea098377 100644 (file)
@@ -53,6 +53,9 @@ ifeq ($(K_SRCDIR), $(SOURCE_DIR)/linux)
        rm -f $(SOURCE_DIR)/linux/.config
 endif
        set -e; cd $(SOURCE_DIR)/linux; \
+               if [ "$(BOXSERIES)" = "hd2" ]; then \
+                       patch -t -p1 < $(PATCHES)/kernel-config/0001-fix-compilation-with-gcc-8.patch; \
+               fi; \
                make ARCH=arm CROSS_COMPILE=$(TARGET)- silentoldconfig O=$(K_OBJ)/; \
                $(MAKE) ARCH=arm LOCALVERSION= CROSS_COMPILE=$(TARGET)- O=$(K_OBJ)/; \
                make ARCH=arm CROSS_COMPILE=$(TARGET)- INSTALL_MOD_PATH=$(TARGETPREFIX)/mymodules modules_install O=$(K_OBJ)/
index 31f97471006347f2746692202788f0668fe4a215..9170baf42237a4864d283f2a6c1e670feb37646e 100755 (executable)
@@ -129,7 +129,7 @@ $(GIT_KERNEL):
                        ln -sf $(GIT_KERNEL)/linux-$(KBRANCH) $(SOURCE_DIR)/linux; \
                fi; \
                if [ "$(BOXSERIES)" = "hd2" ]; then \
-                       cp -a $(PATCHES)/kernel-config/compiler-gcc6.h $(GIT_KERNEL)/linux-$(KBRANCH)/include/linux; \
+                       cp -a $(PATCHES)/kernel-config/compiler-gcc*.h $(GIT_KERNEL)/linux-$(KBRANCH)/include/linux; \
                fi
 
 $(GIT_PLUGINS):