kernel: fix portability issue with perf on linux 5.4
Remove dependencies on core kernel headers in host tools used to build perf, which break on any non-linux system Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
5aa2ddd0d6
commit
2dd26fda16
|
@ -36,6 +36,8 @@ define Package/perf/description
|
|||
perf is the Linux performance monitoring tool
|
||||
endef
|
||||
|
||||
HOST_CFLAGS += -I$(LINUX_DIR)/tools/include
|
||||
|
||||
MAKE_FLAGS = \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
NO_LIBPERL=1 \
|
||||
|
@ -54,6 +56,7 @@ MAKE_FLAGS = \
|
|||
LD="$(TARGET_CROSS)ld" \
|
||||
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
|
||||
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
KBUILD_HOSTCFLAGS="$(HOST_CFLAGS)" \
|
||||
$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
|
||||
WERROR=0 \
|
||||
O=$(PKG_BUILD_DIR) \
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
From 48232d3d931c95953ce2ddfe7da7bb164aef6a73 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 7 Jul 2017 17:03:16 +0200
|
||||
Subject: linux-3.6: fix portability of some includes files in tools/ used on the host
|
||||
Subject: fix portability of some includes files in tools/ used on the host
|
||||
|
||||
lede-commit: 6040b1d29ab1f047c5e49b748abcb6a3196add28
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
tools/include/tools/be_byteshift.h | 4 ++++
|
||||
|
@ -40,26 +39,72 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
static inline uint16_t __get_unaligned_le16(const uint8_t *p)
|
||||
--- /dev/null
|
||||
+++ b/tools/include/tools/linux_types.h
|
||||
@@ -0,0 +1,22 @@
|
||||
@@ -0,0 +1,26 @@
|
||||
+#ifndef __LINUX_TYPES_H
|
||||
+#define __LINUX_TYPES_H
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+typedef int8_t __s8;
|
||||
+typedef uint8_t __u8;
|
||||
+typedef uint8_t __be8;
|
||||
+typedef uint8_t __le8;
|
||||
+
|
||||
+typedef int16_t __s16;
|
||||
+typedef uint16_t __u16;
|
||||
+typedef uint16_t __be16;
|
||||
+typedef uint16_t __le16;
|
||||
+
|
||||
+typedef int32_t __s32;
|
||||
+typedef uint32_t __u32;
|
||||
+typedef uint32_t __be32;
|
||||
+typedef uint32_t __le32;
|
||||
+
|
||||
+typedef int64_t __s64;
|
||||
+typedef uint64_t __u64;
|
||||
+typedef uint64_t __be64;
|
||||
+typedef uint64_t __le64;
|
||||
+
|
||||
+#endif
|
||||
--- a/tools/include/linux/types.h
|
||||
+++ b/tools/include/linux/types.h
|
||||
@@ -7,8 +7,12 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */
|
||||
+#ifndef __linux__
|
||||
+#include <tools/linux_types.h>
|
||||
+#else
|
||||
#include <asm/types.h>
|
||||
#include <asm/posix_types.h>
|
||||
+#endif
|
||||
|
||||
struct page;
|
||||
struct kmem_cache;
|
||||
--- a/tools/perf/pmu-events/jevents.c
|
||||
+++ b/tools/perf/pmu-events/jevents.c
|
||||
@@ -1,4 +1,6 @@
|
||||
+#ifdef __linux__
|
||||
#define _XOPEN_SOURCE 500 /* needed for nftw() */
|
||||
+#endif
|
||||
#define _GNU_SOURCE /* needed for asprintf() */
|
||||
|
||||
/* Parse event JSON files */
|
||||
@@ -35,6 +37,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
+#include <strings.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <stdarg.h>
|
||||
--- a/tools/perf/pmu-events/json.c
|
||||
+++ b/tools/perf/pmu-events/json.c
|
||||
@@ -38,7 +38,6 @@
|
||||
#include <unistd.h>
|
||||
#include "jsmn.h"
|
||||
#include "json.h"
|
||||
-#include <linux/kernel.h>
|
||||
|
||||
|
||||
static char *mapfile(const char *fn, size_t *size)
|
Loading…
Reference in New Issue