From 076af9e1d3521aee6169a57e80355b080e144577 Mon Sep 17 00:00:00 2001 From: "e.gavrin" Date: Tue, 29 Jul 2014 23:28:11 +0400 Subject: [PATCH] add musl support for host systems using musl=1 flag --- Makefile.mak | 20 +++++++++++-- src/libruntime/jerry-libc.c | 60 ++++++++++++++++++------------------- 2 files changed, 47 insertions(+), 33 deletions(-) diff --git a/Makefile.mak b/Makefile.mak index 688a3964e..4bd077e57 100644 --- a/Makefile.mak +++ b/Makefile.mak @@ -98,6 +98,12 @@ else OPTION_MCU = disable endif +ifeq ($(musl),1) + OPTION_MUSL := enable +else + OPTION_MUSL := disable +endif + # # Target CPU # @@ -142,7 +148,7 @@ CFLAGS_CORTEXM4 ?= -mlittle-endian -mcpu=cortex-m4 -march=armv7e-m -mthumb \ # Common # -CFLAGS_COMMON ?= $(INCLUDES) -std=c99 #-fsanitize=address -fdiagnostics-color=always +CFLAGS_COMMON ?= $(INCLUDES) -std=c99 LDFLAGS ?= @@ -214,7 +220,15 @@ ifeq ($(OPTION_NDEBUG),enable) endif ifeq ($(OPTION_MCU),disable) - DEFINES_JERRY += -D__HOST -DJERRY_SOURCE_BUFFER_SIZE=1048576 + DEFINES_JERRY += -D__HOST -DJERRY_SOURCE_BUFFER_SIZE=$$((1024*1024)) + CFLAGS_COMMON += -fno-stack-protector + + ifeq ($(OPTION_MUSL),enable) + CC := musl-$(CC) + CFLAGS_COMMON += -static + else + CFLAGS_COMMON += -fsanitize=address + endif else CFLAGS_COMMON += -ffunction-sections -fdata-sections -nostdlib DEFINES_JERRY += -D__TARGET_MCU @@ -326,7 +340,7 @@ $(PARSER_TESTS_TARGET): debug.$(TARGET_SYSTEM) fi $(CHECK_TARGETS): $(TARGET_OF_ACTION) - @ make unittests + @ make unittests testparser @ mkdir -p $(TARGET_DIR)/check @ echo "=== Running cppcheck ===" @ cppcheck $(DEFINES_JERRY) `find $(UNITTESTS_SRC_DIR) -name *.[c]` $(SOURCES_JERRY) $(INCLUDES_JERRY) $(INCLUDES_THIRDPARTY) \ diff --git a/src/libruntime/jerry-libc.c b/src/libruntime/jerry-libc.c index c128fe957..b03d133f9 100644 --- a/src/libruntime/jerry-libc.c +++ b/src/libruntime/jerry-libc.c @@ -18,36 +18,36 @@ */ #include "jerry-libc.h" - -/** - * memcpy alias to __memcpy (for compiler usage) - */ -extern void *memcpy(void *s1, const void*s2, size_t n); - -/** - * memset alias to __memset (for compiler usage) - */ -extern void *memset(void *s, int c, size_t n); - -/** - * memcpy alias to __memcpy (for compiler usage) - */ -void* memcpy(void *s1, /**< destination */ - const void* s2, /**< source */ - size_t n) /**< bytes number */ -{ - return __memcpy(s1, s2, n); -} /* memcpy */ - -/** - * memset alias to __memset (for compiler usage) - */ -void* memset(void *s, /**< area to set values in */ - int c, /**< value to set */ - size_t n) /**< area size */ -{ - return __memset(s, c, n); -} /* memset */ +// +///** +// * memcpy alias to __memcpy (for compiler usage) +// */ +//extern void *memcpy(void *s1, const void*s2, size_t n); +// +///** +// * memset alias to __memset (for compiler usage) +// */ +//extern void *memset(void *s, int c, size_t n); +// +///** +// * memcpy alias to __memcpy (for compiler usage) +// */ +//void* memcpy(void *s1, /**< destination */ +// const void* s2, /**< source */ +// size_t n) /**< bytes number */ +//{ +// return __memcpy(s1, s2, n); +//} /* memcpy */ +// +///** +// * memset alias to __memset (for compiler usage) +// */ +//void* memset(void *s, /**< area to set values in */ +// int c, /**< value to set */ +// size_t n) /**< area size */ +//{ +// return __memset(s, c, n); +//} /* memset */ /** * memset