From 16d1788356e82c639302a884437341e039574822 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Sun, 15 Jan 2017 17:53:56 +0100 Subject: Fix codecs in simulator builds on Windows The mingw linker uses strlen() in some cases, and codeclib.c redefines it, that leads to mingw runtime init to call into our strlen() and then ci->strlen() which of course crashes. Apply the same fix as for malloc and friends: rename the symbol. The codeclib.h include is necessary for normal builds. Change-Id: Ifa85901a3e4a31cc0e10b4b905df348a239d5c99 --- lib/rbcodec/codecs/lib/codeclib.c | 3 ++- lib/rbcodec/codecs/lib/codeclib.h | 3 ++- lib/rbcodec/codecs/libasap/asap.c | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/rbcodec/codecs/lib/codeclib.c b/lib/rbcodec/codecs/lib/codeclib.c index 1f52c00434..12e29f477c 100644 --- a/lib/rbcodec/codecs/lib/codeclib.c +++ b/lib/rbcodec/codecs/lib/codeclib.c @@ -100,7 +100,8 @@ void* codec_realloc(void* ptr, size_t size) return(x); } -size_t strlen(const char *s) +#undef strlen +size_t codec_strlen(const char *s) { return(ci->strlen(s)); } diff --git a/lib/rbcodec/codecs/lib/codeclib.h b/lib/rbcodec/codecs/lib/codeclib.h index 18c1043b8c..6a18870898 100644 --- a/lib/rbcodec/codecs/lib/codeclib.h +++ b/lib/rbcodec/codecs/lib/codeclib.h @@ -40,6 +40,7 @@ extern struct codec_api *ci; #define free(x) codec_free(x) #undef alloca #define alloca(x) __builtin_alloca(x) +#define strlen(s) codec_strlen(s) void* codec_malloc(size_t size); void* codec_calloc(size_t nmemb, size_t size); @@ -51,7 +52,7 @@ void *memset(void *s, int c, size_t n); int memcmp(const void *s1, const void *s2, size_t n); void *memmove(void *s1, const void *s2, size_t n); -size_t strlen(const char *s); +size_t codec_strlen(const char *s); char *strcpy(char *dest, const char *src); char *strcat(char *dest, const char *src); diff --git a/lib/rbcodec/codecs/libasap/asap.c b/lib/rbcodec/codecs/libasap/asap.c index a2c592fd7e..2290884f86 100644 --- a/lib/rbcodec/codecs/libasap/asap.c +++ b/lib/rbcodec/codecs/libasap/asap.c @@ -21,6 +21,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "codeclib.h" #include "asap_internal.h" static byte s_memory[65536]; -- cgit