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:
		| @@ -36,6 +36,8 @@ define Package/perf/description | |||||||
|   perf is the Linux performance monitoring tool |   perf is the Linux performance monitoring tool | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | HOST_CFLAGS += -I$(LINUX_DIR)/tools/include | ||||||
|  |  | ||||||
| MAKE_FLAGS = \ | MAKE_FLAGS = \ | ||||||
| 	ARCH="$(LINUX_KARCH)" \ | 	ARCH="$(LINUX_KARCH)" \ | ||||||
| 	NO_LIBPERL=1 \ | 	NO_LIBPERL=1 \ | ||||||
| @@ -54,6 +56,7 @@ MAKE_FLAGS = \ | |||||||
| 	LD="$(TARGET_CROSS)ld" \ | 	LD="$(TARGET_CROSS)ld" \ | ||||||
| 	CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ | 	CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ | ||||||
| 	LDFLAGS="$(TARGET_LDFLAGS)" \ | 	LDFLAGS="$(TARGET_LDFLAGS)" \ | ||||||
|  | 	KBUILD_HOSTCFLAGS="$(HOST_CFLAGS)" \ | ||||||
| 	$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ | 	$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ | ||||||
| 	WERROR=0 \ | 	WERROR=0 \ | ||||||
| 	O=$(PKG_BUILD_DIR) \ | 	O=$(PKG_BUILD_DIR) \ | ||||||
|   | |||||||
| @@ -1,9 +1,8 @@ | |||||||
| From 48232d3d931c95953ce2ddfe7da7bb164aef6a73 Mon Sep 17 00:00:00 2001 | From 48232d3d931c95953ce2ddfe7da7bb164aef6a73 Mon Sep 17 00:00:00 2001 | ||||||
| From: Felix Fietkau <nbd@nbd.name> | From: Felix Fietkau <nbd@nbd.name> | ||||||
| Date: Fri, 7 Jul 2017 17:03:16 +0200 | 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> | Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||||||
| ---
 | ---
 | ||||||
|  tools/include/tools/be_byteshift.h |  4 ++++ |  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) |  static inline uint16_t __get_unaligned_le16(const uint8_t *p) | ||||||
| --- /dev/null
 | --- /dev/null
 | ||||||
| +++ b/tools/include/tools/linux_types.h
 | +++ b/tools/include/tools/linux_types.h
 | ||||||
| @@ -0,0 +1,22 @@
 | @@ -0,0 +1,26 @@
 | ||||||
| +#ifndef __LINUX_TYPES_H
 | +#ifndef __LINUX_TYPES_H
 | ||||||
| +#define __LINUX_TYPES_H
 | +#define __LINUX_TYPES_H
 | ||||||
| +
 | +
 | ||||||
| +#include <stdint.h>
 | +#include <stdint.h>
 | ||||||
| +
 | +
 | ||||||
|  | +typedef int8_t __s8;
 | ||||||
| +typedef uint8_t __u8;
 | +typedef uint8_t __u8;
 | ||||||
| +typedef uint8_t __be8;
 | +typedef uint8_t __be8;
 | ||||||
| +typedef uint8_t __le8;
 | +typedef uint8_t __le8;
 | ||||||
| +
 | +
 | ||||||
|  | +typedef int16_t __s16;
 | ||||||
| +typedef uint16_t __u16;
 | +typedef uint16_t __u16;
 | ||||||
| +typedef uint16_t __be16;
 | +typedef uint16_t __be16;
 | ||||||
| +typedef uint16_t __le16;
 | +typedef uint16_t __le16;
 | ||||||
| +
 | +
 | ||||||
|  | +typedef int32_t __s32;
 | ||||||
| +typedef uint32_t __u32;
 | +typedef uint32_t __u32;
 | ||||||
| +typedef uint32_t __be32;
 | +typedef uint32_t __be32;
 | ||||||
| +typedef uint32_t __le32;
 | +typedef uint32_t __le32;
 | ||||||
| +
 | +
 | ||||||
|  | +typedef int64_t __s64;
 | ||||||
| +typedef uint64_t __u64;
 | +typedef uint64_t __u64;
 | ||||||
| +typedef uint64_t __be64;
 | +typedef uint64_t __be64;
 | ||||||
| +typedef uint64_t __le64;
 | +typedef uint64_t __le64;
 | ||||||
| +
 | +
 | ||||||
| +#endif
 | +#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) | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau