From: Alexandros Couloumbis Date: Mon, 11 May 2020 11:44:12 +0000 (+0300) Subject: add back linux 4.4 workarounds X-Git-Url: http://git.ozo.com/?a=commitdiff_plain;h=443d40a931a5ab055184eac6c9ffbeac3634ba2f;p=openwrt%2F.git add back linux 4.4 workarounds --- diff --git a/package/devel/perf/Makefile b/package/devel/perf/Makefile index aa478a0431..6569109ea4 100644 --- a/package/devel/perf/Makefile +++ b/package/devel/perf/Makefile @@ -59,6 +59,12 @@ MAKE_FLAGS = \ O=$(PKG_BUILD_DIR) \ prefix=/usr +ifdef CONFIG_LINUX_4_4 +ifdef CONFIG_USE_MUSL + MAKE_FLAGS += EXTRA_CFLAGS="-I$(CURDIR)/musl-include -include $(CURDIR)/musl-compat.h -D__UCLIBC__" +endif +endif + define Build/Compile +$(MAKE_FLAGS) $(MAKE) $(PKG_JOBS) \ --no-print-directory \ diff --git a/package/devel/perf/musl-compat.h b/package/devel/perf/musl-compat.h new file mode 100644 index 0000000000..83aa00a7c8 --- /dev/null +++ b/package/devel/perf/musl-compat.h @@ -0,0 +1,43 @@ +#ifndef __PERF_MUSL_COMPAT_H +#define __PERF_MUSL_COMPAT_H + +#ifndef __ASSEMBLER__ + +#include +#include +#include +#include + +#undef _IOWR +#undef _IOR +#undef _IOW +#undef _IOC +#undef _IO + +#define _SC_LEVEL1_DCACHE_LINESIZE -1 + +static inline long sysconf_wrap(int name) +{ + FILE *f; + int val; + + switch (name) { + case _SC_LEVEL1_DCACHE_LINESIZE: + f = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r"); + if (!f) + return 0; + + if (fscanf(f, "%d", &val) != 1) + return 0; + + fclose(f); + return val; + default: + return sysconf(name); + } +} + +#define sysconf(_n) sysconf_wrap(_n) + +#endif +#endif diff --git a/package/devel/perf/musl-include/asm/errno.h b/package/devel/perf/musl-include/asm/errno.h new file mode 100644 index 0000000000..8c4b1beb52 --- /dev/null +++ b/package/devel/perf/musl-include/asm/errno.h @@ -0,0 +1,8 @@ +#ifndef __MUSL_COMPAT_ASM_ERRNO_H +#define __MUSL_COMPAT_ASM_ERRNO_H + +/* Avoid including different versions of errno.h, the defines (incorrectly) + * cause a redefinition error on PowerPC */ +#include + +#endif diff --git a/package/devel/perf/musl-include/string.h b/package/devel/perf/musl-include/string.h new file mode 100644 index 0000000000..65dc2f1e8f --- /dev/null +++ b/package/devel/perf/musl-include/string.h @@ -0,0 +1,18 @@ +#ifndef __MUSL_COMPAT_STRING_H +#define __MUSL_COMPAT_STRING_H + +#include_next + +/* Change XSI compliant version into GNU extension hackery */ +static inline char * +gnu_strerror_r(int err, char *buf, size_t buflen) +{ + if (strerror_r(err, buf, buflen)) + return NULL; + return buf; +} +#ifdef _GNU_SOURCE +#define strerror_r gnu_strerror_r +#endif + +#endif