perf: fix strerror_r override detection, apparently part of tools/ relies on non-GNU behavior

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48221
This commit is contained in:
Felix Fietkau 2016-01-12 16:42:12 +00:00
parent 2a170e4086
commit bd99318c82
3 changed files with 19 additions and 12 deletions

View File

@ -59,7 +59,7 @@ MAKE_FLAGS = \
prefix=/usr prefix=/usr
ifdef CONFIG_USE_MUSL ifdef CONFIG_USE_MUSL
MAKE_FLAGS += EXTRA_CFLAGS="-include $(CURDIR)/musl-compat.h -D__UCLIBC__" MAKE_FLAGS += EXTRA_CFLAGS="-I$(CURDIR)/musl-include -include $(CURDIR)/musl-compat.h -D__UCLIBC__"
endif endif
define Build/Compile define Build/Compile

View File

@ -4,7 +4,6 @@
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <string.h>
#include <unistd.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <syscall.h> #include <syscall.h>
@ -16,16 +15,6 @@
#undef _IOC #undef _IOC
#undef _IO #undef _IO
/* 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;
}
#define strerror_r gnu_strerror_r
#define _SC_LEVEL1_DCACHE_LINESIZE -1 #define _SC_LEVEL1_DCACHE_LINESIZE -1
static inline long sysconf_wrap(int name) static inline long sysconf_wrap(int name)

View File

@ -0,0 +1,18 @@
#ifndef __MUSL_COMPAT_STRING_H
#define __MUSL_COMPAT_STRING_H
#include_next <string.h>
/* 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