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
master
Felix Fietkau 9 years ago
parent 2a170e4086
commit bd99318c82
  1. 2
      package/devel/perf/Makefile
  2. 11
      package/devel/perf/musl-compat.h
  3. 18
      package/devel/perf/musl-include/string.h

@ -59,7 +59,7 @@ MAKE_FLAGS = \
prefix=/usr
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
define Build/Compile

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

@ -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
Loading…
Cancel
Save