From a0aa4660548ffb7d94182d37f778ecbd9ed0205e Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Tue, 7 Jun 2022 11:00:02 +0300 Subject: [PATCH] fix cu_memcmp on x86_64 --- CMakeLists.txt | 6 ++++-- cutil.c | 9 +++++---- cutil.h | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 409656f..ecfcbaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ set(SOURCES heap.c ) -set(ARCHITECTURE "SuperH4" CACHE STRING "cutil target architecture") +set(ARCHITECTURE "x86_64" CACHE STRING "cutil target architecture") set(ARM_PROCESSOR "cortex-m4" CACHE STRING "cutil ARM processor") set(ARM_PROFILE "a" CACHE STRING "cutil ARM architecture profile") @@ -45,13 +45,15 @@ if ("${ARCHITECTURE}" MATCHES "ARM*") elseif("${ARCHITECTURE}" MATCHES "SuperH4") set(CUSTOM_STDLIB "/opt/sh4-platform/lib" CACHE STRING "custom stdlib path") add_compile_options("-m4") +else() + set(CUSTOM_STDLIB "" CACHE STRING "custom stdlib path") endif() add_library(cutil STATIC ${SOURCES} ${HEADERS} "arch/${ARCHITECTURE}.S" ) -option(NOSTDLIB "compile cutil without stdlib" ON) +option(NOSTDLIB "compile cutil without stdlib" OFF) option(STATIC "compile test static" OFF) if (NOSTDLIB) target_compile_definitions(cutil PRIVATE CUTIL_NOSTDLIB) diff --git a/cutil.c b/cutil.c index 4030b98..b2d37e5 100644 --- a/cutil.c +++ b/cutil.c @@ -1,9 +1,10 @@ #include "cutil.h" #include "endian.h" +#include "heap.h" + +mheap_t cu_heap; #ifdef CUTIL_NOSTDLIB -# include "heap.h" -mheap_t cu_heap; void* _cu_malloc(size_t size) { @@ -29,7 +30,7 @@ void (*cu_free)(void*) = _cu_free; void* (*cu_memset)(void*,int,size_t) = _cu_memset; void* (*cu_memcpy)(void*,const void*,size_t) = _cu_memcpy; void* (*cu_memmove)(void*,const void*,size_t) = _cu_memmove; -void* (*cu_memcmp)(const void*,const void*, size_t) = _cu_memcmp; +int (*cu_memcmp)(const void*,const void*, size_t) = _cu_memcmp; void cutil_init(void* heap, size_t size) { @@ -46,7 +47,7 @@ void (*cu_free)(void*) = free; void* (*cu_memset)(void*,int,size_t) = memset; void* (*cu_memcpy)(void*,const void*,size_t) = memcpy; void* (*cu_memmove)(void*,const void*,size_t) = memmove; -void* (*cu_memcmp)(const void*,const void*, size_t) = memcmp; +int (*cu_memcmp)(const void*,const void*, size_t) = memcmp; void cutil_init(void* heap, size_t size) { diff --git a/cutil.h b/cutil.h index f6198ce..4af0cda 100644 --- a/cutil.h +++ b/cutil.h @@ -7,7 +7,7 @@ extern void* _cu_memset(void* dst, int val, size_t size); extern void* _cu_memcpy(void* dst, const void* src, size_t size); extern void* _cu_memmove(void* dst, const void* src, size_t size); -extern void* _cu_memcmp(const void* dst, const void* src, size_t size); +extern int _cu_memcmp(const void* dst, const void* src, size_t size); void __cu_memmove(void* dst, void* src, size_t size); @@ -17,7 +17,7 @@ extern void (*cu_free)(void*); extern void* (*cu_memset)(void*,int,size_t); extern void* (*cu_memcpy)(void*,const void*,size_t); extern void* (*cu_memmove)(void*,const void*,size_t); -extern void* (*cu_memcmp)(const void*,const void*, size_t); +extern int (*cu_memcmp)(const void*,const void*, size_t); void cutil_init(void* heap, size_t size); void cutil_init();