Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
257
target/linux/generic/hack-6.6/200-tools_portability.patch
Normal file
257
target/linux/generic/hack-6.6/200-tools_portability.patch
Normal file
@@ -0,0 +1,257 @@
|
||||
From a7ae4ed0a3951c45d4a59ee575951b64ae4a23fb Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Tue, 7 May 2024 12:22:15 +0200
|
||||
Subject: [PATCH] kernel: fix tools build breakage on macos with x86
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/tools/scripts/Makefile.include
|
||||
+++ b/tools/scripts/Makefile.include
|
||||
@@ -72,8 +72,6 @@ $(call allow-override,CXX,$(CROSS_COMPIL
|
||||
$(call allow-override,STRIP,$(CROSS_COMPILE)strip)
|
||||
endif
|
||||
|
||||
-CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
|
||||
-
|
||||
ifneq ($(LLVM),)
|
||||
HOSTAR ?= $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)
|
||||
HOSTCC ?= $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
|
||||
@@ -84,6 +82,9 @@ HOSTCC ?= gcc
|
||||
HOSTLD ?= ld
|
||||
endif
|
||||
|
||||
+CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
|
||||
+HOSTCC_NO_CLANG := $(shell $(HOSTCC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
|
||||
+
|
||||
# Some tools require Clang, LLC and/or LLVM utils
|
||||
CLANG ?= clang
|
||||
LLC ?= llc
|
||||
@@ -92,8 +93,9 @@ LLVM_OBJCOPY ?= llvm-objcopy
|
||||
LLVM_STRIP ?= llvm-strip
|
||||
|
||||
ifeq ($(CC_NO_CLANG), 1)
|
||||
-EXTRA_WARNINGS += -Wstrict-aliasing=3
|
||||
-
|
||||
+ ifeq ($(HOSTCC_NO_CLANG), 1)
|
||||
+ EXTRA_WARNINGS += -Wstrict-aliasing=3
|
||||
+ endif
|
||||
else ifneq ($(CROSS_COMPILE),)
|
||||
# Allow userspace to override CLANG_CROSS_FLAGS to specify their own
|
||||
# sysroots and flags or to avoid the GCC call in pure Clang builds.
|
||||
--- a/tools/include/linux/types.h
|
||||
+++ b/tools/include/linux/types.h
|
||||
@@ -10,8 +10,12 @@
|
||||
#define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */
|
||||
#endif
|
||||
|
||||
+#ifndef __linux__
|
||||
+#include <tools/linux_types.h>
|
||||
+#else
|
||||
#include <asm/types.h>
|
||||
#include <asm/posix_types.h>
|
||||
+#endif
|
||||
|
||||
struct page;
|
||||
struct kmem_cache;
|
||||
@@ -56,6 +60,7 @@ typedef __s8 s8;
|
||||
#define __user
|
||||
#endif
|
||||
#define __must_check
|
||||
+#undef __cold
|
||||
#define __cold
|
||||
|
||||
typedef __u16 __bitwise __le16;
|
||||
--- a/tools/objtool/include/objtool/objtool.h
|
||||
+++ b/tools/objtool/include/objtool/objtool.h
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#include <objtool/elf.h>
|
||||
|
||||
+#undef __weak
|
||||
#define __weak __attribute__((weak))
|
||||
|
||||
struct pv_state {
|
||||
--- a/tools/include/asm-generic/bitops/fls.h
|
||||
+++ b/tools/include/asm-generic/bitops/fls.h
|
||||
@@ -2,6 +2,8 @@
|
||||
#ifndef _ASM_GENERIC_BITOPS_FLS_H_
|
||||
#define _ASM_GENERIC_BITOPS_FLS_H_
|
||||
|
||||
+#include <string.h>
|
||||
+
|
||||
/**
|
||||
* fls - find last (most-significant) bit set
|
||||
* @x: the word to search
|
||||
@@ -10,6 +12,7 @@
|
||||
* Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
|
||||
*/
|
||||
|
||||
+#define fls __linux_fls
|
||||
static __always_inline int fls(unsigned int x)
|
||||
{
|
||||
int r = 32;
|
||||
--- a/tools/lib/string.c
|
||||
+++ b/tools/lib/string.c
|
||||
@@ -96,6 +96,7 @@ int strtobool(const char *s, bool *res)
|
||||
* If libc has strlcpy() then that version will override this
|
||||
* implementation:
|
||||
*/
|
||||
+#ifndef __APPLE__
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wignored-attributes"
|
||||
@@ -114,6 +115,7 @@ size_t __weak strlcpy(char *dest, const
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
/**
|
||||
* skip_spaces - Removes leading whitespace from @str.
|
||||
--- a/tools/arch/x86/include/asm/insn.h
|
||||
+++ b/tools/arch/x86/include/asm/insn.h
|
||||
@@ -7,7 +7,7 @@
|
||||
* Copyright (C) IBM Corporation, 2009
|
||||
*/
|
||||
|
||||
-#include <asm/byteorder.h>
|
||||
+#include <linux/kernel.h>
|
||||
/* insn_attr_t is defined in inat.h */
|
||||
#include "inat.h" /* __ignore_sync_check__ */
|
||||
|
||||
--- a/tools/arch/x86/include/asm/orc_types.h
|
||||
+++ b/tools/arch/x86/include/asm/orc_types.h
|
||||
@@ -46,7 +46,6 @@
|
||||
#define ORC_TYPE_REGS_PARTIAL 4
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
-#include <asm/byteorder.h>
|
||||
|
||||
/*
|
||||
* This struct is more or less a vastly simplified version of the DWARF Call
|
||||
@@ -59,12 +58,12 @@
|
||||
struct orc_entry {
|
||||
s16 sp_offset;
|
||||
s16 bp_offset;
|
||||
-#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
+#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
unsigned sp_reg:4;
|
||||
unsigned bp_reg:4;
|
||||
unsigned type:3;
|
||||
unsigned signal:1;
|
||||
-#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
+#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned bp_reg:4;
|
||||
unsigned sp_reg:4;
|
||||
unsigned unused:4;
|
||||
--- a/tools/include/linux/rbtree.h
|
||||
+++ b/tools/include/linux/rbtree.h
|
||||
@@ -18,7 +18,6 @@
|
||||
#define __TOOLS_LINUX_PERF_RBTREE_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
-#include <linux/stddef.h>
|
||||
|
||||
struct rb_node {
|
||||
unsigned long __rb_parent_color;
|
||||
--- a/tools/include/tools/be_byteshift.h
|
||||
+++ b/tools/include/tools/be_byteshift.h
|
||||
@@ -2,6 +2,10 @@
|
||||
#ifndef _TOOLS_BE_BYTESHIFT_H
|
||||
#define _TOOLS_BE_BYTESHIFT_H
|
||||
|
||||
+#ifndef __linux__
|
||||
+#include "linux_types.h"
|
||||
+#endif
|
||||
+
|
||||
#include <stdint.h>
|
||||
|
||||
static inline uint16_t __get_unaligned_be16(const uint8_t *p)
|
||||
--- a/tools/include/tools/le_byteshift.h
|
||||
+++ b/tools/include/tools/le_byteshift.h
|
||||
@@ -2,6 +2,10 @@
|
||||
#ifndef _TOOLS_LE_BYTESHIFT_H
|
||||
#define _TOOLS_LE_BYTESHIFT_H
|
||||
|
||||
+#ifndef __linux__
|
||||
+#include "linux_types.h"
|
||||
+#endif
|
||||
+
|
||||
#include <stdint.h>
|
||||
|
||||
static inline uint16_t __get_unaligned_le16(const uint8_t *p)
|
||||
--- /dev/null
|
||||
+++ b/tools/include/tools/linux_types.h
|
||||
@@ -0,0 +1,18 @@
|
||||
+#ifndef __LINUX_TYPES_H
|
||||
+#define __LINUX_TYPES_H
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+typedef int8_t __s8;
|
||||
+typedef uint8_t __u8;
|
||||
+
|
||||
+typedef int16_t __s16;
|
||||
+typedef uint16_t __u16;
|
||||
+
|
||||
+typedef int32_t __s32;
|
||||
+typedef uint32_t __u32;
|
||||
+
|
||||
+typedef int64_t __s64;
|
||||
+typedef uint64_t __u64;
|
||||
+
|
||||
+#endif
|
||||
--- a/tools/objtool/Makefile
|
||||
+++ b/tools/objtool/Makefile
|
||||
@@ -39,6 +39,8 @@ OBJTOOL_LDFLAGS := $(LIBELF_LIBS) $(LIBS
|
||||
elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(HOSTCC) $(OBJTOOL_CFLAGS) -x c -E - | grep elf_getshdr)
|
||||
OBJTOOL_CFLAGS += $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED)
|
||||
|
||||
+OBJTOOL_CFLAGS += $(HOST_EXTRACFLAGS)
|
||||
+
|
||||
# Always want host compilation.
|
||||
HOST_OVERRIDES := CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)"
|
||||
|
||||
--- a/tools/objtool/orc_dump.c
|
||||
+++ b/tools/objtool/orc_dump.c
|
||||
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
-#include <asm/orc_types.h>
|
||||
#include <objtool/objtool.h>
|
||||
#include <objtool/warn.h>
|
||||
#include <objtool/endianness.h>
|
||||
+#include <asm/orc_types.h>
|
||||
|
||||
static const char *reg_name(unsigned int reg)
|
||||
{
|
||||
--- a/tools/objtool/orc_gen.c
|
||||
+++ b/tools/objtool/orc_gen.c
|
||||
@@ -7,11 +7,11 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <linux/objtool_types.h>
|
||||
-#include <asm/orc_types.h>
|
||||
|
||||
#include <objtool/check.h>
|
||||
#include <objtool/warn.h>
|
||||
#include <objtool/endianness.h>
|
||||
+#include <asm/orc_types.h>
|
||||
|
||||
static int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi,
|
||||
struct instruction *insn)
|
||||
--- a/tools/arch/x86/lib/insn.c
|
||||
+++ b/tools/arch/x86/lib/insn.c
|
||||
@@ -15,7 +15,11 @@
|
||||
#include "../include/asm/insn.h" /* __ignore_sync_check__ */
|
||||
#include "../include/asm-generic/unaligned.h" /* __ignore_sync_check__ */
|
||||
|
||||
+#ifdef __KERNEL__
|
||||
#include <linux/errno.h>
|
||||
+#else
|
||||
+#include <errno.h>
|
||||
+#endif
|
||||
#include <linux/kconfig.h>
|
||||
|
||||
#include "../include/asm/emulate_prefix.h" /* __ignore_sync_check__ */
|
||||
Reference in New Issue
Block a user