From 98f7f3e9337783743f91c0ee2a464e403a14fd6a Mon Sep 17 00:00:00 2001 From: John Sanpe Date: Thu, 27 Mar 2025 14:41:14 +0800 Subject: [PATCH] fixup port: fixed compatibility on 32-bit machines Signed-off-by: John Sanpe --- CMakeLists.txt | 11 ++++-- build.cmake | 57 +++++++++++++++-------------- cmake/config.h.in | 4 ++ include/bfdev/asm-generic/types.h | 21 ++++++----- include/bfdev/hash.h | 2 +- port/build.cmake | 18 +-------- port/generic/log.c | 2 +- port/generic/stdio.c | 2 +- port/generic/stdlib.c | 12 +++--- port/generic/string.c | 22 +++++------ port/posix/log.c | 2 +- port/posix/stdio.c | 2 +- port/posix/stdlib.c | 12 +++--- port/posix/string.c | 22 +++++------ port/tests/build.cmake | 10 +++++ port/tests/typecheck.c | 29 +++++++++++++++ scripts/CMakeLists.txt | 1 + scripts/get-type.c | 39 ++++++++++++++++++++ scripts/platform.cmake | 61 +++++++++++++++++++++++++++++++ scripts/sanitize.cmake | 14 +++---- src/port/string.c | 22 +++++------ testsuite/CMakeLists.txt | 4 +- 22 files changed, 254 insertions(+), 115 deletions(-) create mode 100644 port/tests/build.cmake create mode 100644 port/tests/typecheck.c create mode 100644 scripts/get-type.c create mode 100644 scripts/platform.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index ddf364c5..64635850 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,9 +34,9 @@ set(BFDEV_ARCH_PATH ${PROJECT_SOURCE_DIR}/arch/${BFDEV_ARCH}) set(BFDEV_ARCH_HEADER_PATH ${BFDEV_ARCH_PATH}/include) set(BFDEV_CONFIGURE ${BFDEV_GENERATED_PATH}/bfdev-config.cmake) -include(scripts/hostrule.cmake) -include(scripts/packed-header.cmake) -include(scripts/commit.cmake) +include(${PROJECT_SOURCE_DIR}/scripts/hostrule.cmake) +include(${PROJECT_SOURCE_DIR}/scripts/packed-header.cmake) +include(${PROJECT_SOURCE_DIR}/scripts/commit.cmake) commit_hash(BFDEV_COMMITID) commit_branch(BFDEV_BRANCH) @@ -129,6 +129,11 @@ macro(bfdev_dependencies target) ) endmacro() +set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} \ + ${BFDEV_C_FLAGS}" +) + add_library(bfdev_object OBJECT ${BFDEV_LIBRARY}) bfdev_dependencies(bfdev_object) add_library(bfdev ALIAS bfdev_object) diff --git a/build.cmake b/build.cmake index e409a822..99480d96 100644 --- a/build.cmake +++ b/build.cmake @@ -3,30 +3,31 @@ # Copyright(c) 2023 John Sanpe # -add_compile_options( - -std=gnu11 - -Wall - -Wextra - -Wno-override-init - -Wno-unused-parameter - -Wno-sign-compare - -Wno-pointer-sign - -Wno-null-pointer-arithmetic - -Wmissing-prototypes - -Wmissing-declarations - -fvisibility=hidden +set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} \ + -std=gnu11 \ + -Wall \ + -Wextra \ + -Wno-override-init \ + -Wno-unused-parameter \ + -Wno-sign-compare \ + -Wno-pointer-sign \ + -Wno-null-pointer-arithmetic \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -fvisibility=hidden " ) -if(BFDEV_STRICT) +if(CMAKE_C_FLAGS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \ -Werror" ) endif() -include(scripts/check.cmake) -include(scripts/sanitize.cmake) -include(scripts/asm-generic.cmake) +include(${PROJECT_SOURCE_DIR}/scripts/check.cmake) +include(${PROJECT_SOURCE_DIR}/scripts/asm-generic.cmake) +include(${PROJECT_SOURCE_DIR}/scripts/sanitize.cmake) asm_generic( bfdev/asm-generic/ @@ -35,16 +36,6 @@ asm_generic( ${BFDEV_HEADER_PATH}/bfdev/asm-generic ) -configure_file( - ${BFDEV_MODULE_PATH}/config.h.in - ${BFDEV_GENERATED_PATH}/bfdev/config.h -) - -configure_file( - ${BFDEV_MODULE_PATH}/bfdev-config.cmake.in - ${BFDEV_CONFIGURE} -) - file(GLOB_RECURSE BFDEV_HEADER ${BFDEV_HEADER_PATH}/*.h ) @@ -64,9 +55,21 @@ set(BFDEV_INCLUDE_DIRS ) include_directories(${BFDEV_INCLUDE_DIRS}) +include(${PROJECT_SOURCE_DIR}/scripts/platform.cmake) +include(${BFDEV_PORT_PATH}/build.cmake) + include(${BFDEV_ARCH_PATH}/build.cmake) include(${BFDEV_SOURCE_PATH}/build.cmake) -include(${BFDEV_PORT_PATH}/build.cmake) + +configure_file( + ${BFDEV_MODULE_PATH}/config.h.in + ${BFDEV_GENERATED_PATH}/bfdev/config.h +) + +configure_file( + ${BFDEV_MODULE_PATH}/bfdev-config.cmake.in + ${BFDEV_CONFIGURE} +) set(BFDEV_LIBRARY_HEADER ${BFDEV_HEADER} diff --git a/cmake/config.h.in b/cmake/config.h.in index 333ccb3c..782e6cd2 100644 --- a/cmake/config.h.in +++ b/cmake/config.h.in @@ -24,6 +24,10 @@ BFDEV_BEGIN_DECLS #define BFDEV_VERSION ${BFDEV_VERSION} #define BFDEV_RELEASE "${BFDEV_RELEASE}" +#define BFDEV_TYPE_ADDR ${BFDEV_TYPE_ADDR} +#define BFDEV_TYPE_W64 ${BFDEV_TYPE_W64} +#define BFDEV_TYPE_MAX ${BFDEV_TYPE_MAX} + #cmakedefine BFDEV_DEBUG_LIST #cmakedefine BFDEV_DEBUG_SLIST #cmakedefine BFDEV_DEBUG_HLIST diff --git a/include/bfdev/asm-generic/types.h b/include/bfdev/asm-generic/types.h index c5a2b459..66144081 100644 --- a/include/bfdev/asm-generic/types.h +++ b/include/bfdev/asm-generic/types.h @@ -7,6 +7,7 @@ #define _BFDEV_ASM_GENERIC_TYPES_H_ #include +#include BFDEV_BEGIN_DECLS @@ -19,20 +20,20 @@ typedef unsigned short bfdev_u16; typedef unsigned int bfdev_u32; #ifdef __GNUC__ -__extension__ typedef __signed__ long long bfdev_s64; -__extension__ typedef unsigned long long bfdev_u64; +__extension__ typedef __signed__ BFDEV_TYPE_W64 bfdev_s64; +__extension__ typedef unsigned BFDEV_TYPE_W64 bfdev_u64; #else -typedef __signed__ long long bfdev_s64; -typedef unsigned long long bfdev_u64; +typedef __signed__ BFDEV_TYPE_W64 bfdev_s64; +typedef unsigned BFDEV_TYPE_W64 bfdev_u64; #endif -typedef unsigned long bfdev_size_t; -typedef bfdev_s64 bfdev_intmax_t; -typedef bfdev_u64 bfdev_uintmax_t; +typedef unsigned BFDEV_TYPE_ADDR bfdev_size_t; +typedef unsigned BFDEV_TYPE_ADDR bfdev_uintptr_t; +typedef __signed__ BFDEV_TYPE_ADDR bfdev_intptr_t; +typedef __signed__ BFDEV_TYPE_ADDR bfdev_ptrdiff_t; -typedef unsigned long bfdev_uintptr_t; -typedef __signed__ long bfdev_intptr_t; -typedef __signed__ long bfdev_ptrdiff_t; +typedef __signed__ BFDEV_TYPE_MAX bfdev_intmax_t; +typedef unsigned BFDEV_TYPE_MAX bfdev_uintmax_t; BFDEV_END_DECLS diff --git a/include/bfdev/hash.h b/include/bfdev/hash.h index d8c4b466..a073c245 100644 --- a/include/bfdev/hash.h +++ b/include/bfdev/hash.h @@ -69,7 +69,7 @@ bfdev_hash64(bfdev_u64 value, unsigned int bits) # define BFDEV_GOLDEN_RATIO_LONG BFDEV_GOLDEN_RATIO_64 # define bfdev_hashvl(value) bfdev_hashv64(value) # define bfdev_hashl(value, bits) bfdev_hash64(value, bits) -#endif /* BFDEV_BITS_PER_LONG == 64 */ +#endif BFDEV_END_DECLS diff --git a/port/build.cmake b/port/build.cmake index bedad310..00892f44 100644 --- a/port/build.cmake +++ b/port/build.cmake @@ -3,24 +3,10 @@ # Copyright(c) 2025 John Sanpe # -if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin|GNU") - set(BFDEV_PORT_TYPE "posix") -endif() - -if(CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN") - set(BFDEV_PORT_TYPE "posix") -endif() - -if(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD|FreeBSD|NetBSD|OpenBSD|DragonFly") - set(BFDEV_PORT_TYPE "posix") -endif() - -if(CMAKE_SYSTEM_NAME MATCHES "Generic") - set(BFDEV_PORT_TYPE "generic") -endif() - if(BFDEV_PORT_TYPE) include(${BFDEV_PORT_PATH}/${BFDEV_PORT_TYPE}/build.cmake) else() message(FATAL_ERROR "Unsupported system: ${CMAKE_SYSTEM_NAME}") endif() + +include(${CMAKE_CURRENT_LIST_DIR}/tests/build.cmake) diff --git a/port/generic/log.c b/port/generic/log.c index e7ded6d2..f8aaa15e 100644 --- a/port/generic/log.c +++ b/port/generic/log.c @@ -9,7 +9,7 @@ /* TODO: PORTME */ -hidden int +int bfport_log_write(bfdev_log_message_t *msg) { return 0; diff --git a/port/generic/stdio.c b/port/generic/stdio.c index c3101224..9b88b7d9 100644 --- a/port/generic/stdio.c +++ b/port/generic/stdio.c @@ -8,7 +8,7 @@ /* TODO: PORTME */ -hidden int +int bfport_vsnprintf(char *s, bfdev_size_t maxlen, const char *fmt, bfdev_va_list arg) { diff --git a/port/generic/stdlib.c b/port/generic/stdlib.c index b5dd204f..2e9b58cd 100644 --- a/port/generic/stdlib.c +++ b/port/generic/stdlib.c @@ -8,37 +8,37 @@ /* TODO: PORTME */ -hidden __bfdev_malloc void * +__bfdev_malloc void * bfport_malloc(bfdev_size_t size) { return BFDEV_NULL; } -hidden __bfdev_malloc void * +__bfdev_malloc void * bfport_calloc(bfdev_size_t nmemb, bfdev_size_t size) { return BFDEV_NULL; } -hidden __bfdev_malloc void * +__bfdev_malloc void * bfport_realloc(void *ptr, bfdev_size_t size) { return BFDEV_NULL; } -hidden void +void bfport_free(void *ptr) { return; } -hidden int +int bfport_rand(void) { return 0; } -hidden __bfdev_noreturn void +__bfdev_noreturn void bfport_abort(void) { for (;;); diff --git a/port/generic/string.c b/port/generic/string.c index d7df128a..45ec5b79 100644 --- a/port/generic/string.c +++ b/port/generic/string.c @@ -6,7 +6,7 @@ #include #include -hidden void * +void * bfport_memcpy(void *dest, const void *src, bfdev_size_t n) { const unsigned char *nsrc; @@ -21,7 +21,7 @@ bfport_memcpy(void *dest, const void *src, bfdev_size_t n) return dest; } -hidden void * +void * bfport_memset(void *s, int c, bfdev_size_t n) { unsigned char *xs; @@ -33,7 +33,7 @@ bfport_memset(void *s, int c, bfdev_size_t n) return s; } -hidden int +int bfport_memcmp(const void *s1, const void *s2, bfdev_size_t n) { const unsigned char *su1, *su2; @@ -48,7 +48,7 @@ bfport_memcmp(const void *s1, const void *s2, bfdev_size_t n) return res; } -hidden int +int bfport_strcmp(const char *s1, const char *s2) { int cp; @@ -62,7 +62,7 @@ bfport_strcmp(const char *s1, const char *s2) return cp; } -hidden char * +char * bfport_strchr(const char *s, int c) { for (; *s != (char)c; ++s) { @@ -73,7 +73,7 @@ bfport_strchr(const char *s, int c) return (char *)s; } -hidden bfdev_size_t +bfdev_size_t bfport_strspn(const char *s, const char *accept) { const unsigned char *p, *a; @@ -93,7 +93,7 @@ bfport_strspn(const char *s, const char *accept) return count; } -hidden bfdev_size_t +bfdev_size_t bfport_strcspn(const char *s, const char *reject) { const unsigned char *p, *r; @@ -111,7 +111,7 @@ bfport_strcspn(const char *s, const char *reject) return count; } -hidden char * +char * bfport_strcpy(char *dest, const char *src) { unsigned char *tmp; @@ -123,7 +123,7 @@ bfport_strcpy(char *dest, const char *src) return dest; } -hidden char * +char * bfport_strncpy(char *dest, const char *src, bfdev_size_t n) { unsigned char *tmp; @@ -136,7 +136,7 @@ bfport_strncpy(char *dest, const char *src, bfdev_size_t n) return dest; } -hidden bfdev_size_t +bfdev_size_t bfport_strlen(const char *s) { const unsigned char *len; @@ -148,7 +148,7 @@ bfport_strlen(const char *s) return (char *)len - s; } -hidden bfdev_size_t +bfdev_size_t bfport_strnlen(const char *s, bfdev_size_t len) { const unsigned char *sc; diff --git a/port/posix/log.c b/port/posix/log.c index 52b3828d..d9743c10 100644 --- a/port/posix/log.c +++ b/port/posix/log.c @@ -13,7 +13,7 @@ # include #endif -hidden int +int bfport_log_write(bfdev_log_message_t *msg) { FILE *file; diff --git a/port/posix/stdio.c b/port/posix/stdio.c index 1fbf9902..9b6948d2 100644 --- a/port/posix/stdio.c +++ b/port/posix/stdio.c @@ -12,7 +12,7 @@ # include #endif -hidden int +int bfport_vsnprintf(char *s, bfdev_size_t maxlen, const char *fmt, bfdev_va_list arg) { diff --git a/port/posix/stdlib.c b/port/posix/stdlib.c index 3b25fb4d..c65680e0 100644 --- a/port/posix/stdlib.c +++ b/port/posix/stdlib.c @@ -12,37 +12,37 @@ # include #endif -hidden __bfdev_malloc void * +__bfdev_malloc void * bfport_malloc(bfdev_size_t size) { return malloc(size); } -hidden __bfdev_malloc void * +__bfdev_malloc void * bfport_calloc(bfdev_size_t nmemb, bfdev_size_t size) { return calloc(nmemb, size); } -hidden __bfdev_malloc void * +__bfdev_malloc void * bfport_realloc(void *ptr, bfdev_size_t size) { return realloc(ptr, size); } -hidden void +void bfport_free(void *ptr) { free(ptr); } -hidden int +int bfport_rand(void) { return rand(); } -hidden __bfdev_noreturn void +__bfdev_noreturn void bfport_abort(void) { abort(); diff --git a/port/posix/string.c b/port/posix/string.c index ff4d080e..8c3f4c6e 100644 --- a/port/posix/string.c +++ b/port/posix/string.c @@ -12,67 +12,67 @@ # include #endif -hidden void * +void * bfport_memcpy(void *dest, const void *src, bfdev_size_t n) { return memcpy(dest, src, n); } -hidden void * +void * bfport_memset(void *s, int c, bfdev_size_t n) { return memset(s, c, n); } -hidden int +int bfport_memcmp(const void *s1, const void *s2, bfdev_size_t n) { return memcmp(s1, s2, n); } -hidden int +int bfport_strcmp(const char *s1, const char *s2) { return strcmp(s1, s2); } -hidden char * +char * bfport_strchr(const char *s, int c) { return strchr(s, c); } -hidden bfdev_size_t +bfdev_size_t bfport_strspn(const char *s, const char *accept) { return strspn(s, accept); } -hidden bfdev_size_t +bfdev_size_t bfport_strcspn(const char *s, const char *reject) { return strcspn(s, reject); } -hidden char * +char * bfport_strcpy(char *dest, const char *src) { return strcpy(dest, src); } -hidden char * +char * bfport_strncpy(char *dest, const char *src, bfdev_size_t n) { return strncpy(dest, src, n); } -hidden bfdev_size_t +bfdev_size_t bfport_strlen(const char *s) { return strlen(s); } -hidden bfdev_size_t +bfdev_size_t bfport_strnlen(const char *s, bfdev_size_t len) { return strnlen(s, len); diff --git a/port/tests/build.cmake b/port/tests/build.cmake new file mode 100644 index 00000000..80c54f5d --- /dev/null +++ b/port/tests/build.cmake @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Copyright(c) 2025 John Sanpe +# + +if(BFDEV_PORT_TYPE STREQUAL "posix") + add_executable(bfdev-typecheck ${CMAKE_CURRENT_LIST_DIR}/typecheck.c) + target_compile_options(bfdev-typecheck PRIVATE -Werror) + target_link_libraries(bfdev-typecheck bfdev) +endif() diff --git a/port/tests/typecheck.c b/port/tests/typecheck.c new file mode 100644 index 00000000..31cb34bf --- /dev/null +++ b/port/tests/typecheck.c @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright(c) 2025 John Sanpe + */ + +#include +#include +#include + +int +main(int argc, const char *argv[]) +{ + bfdev_typecheck(bfdev_s8, (int8_t){0}); + bfdev_typecheck(bfdev_u8, (uint8_t){0}); + bfdev_typecheck(bfdev_s16, (int16_t){0}); + bfdev_typecheck(bfdev_u16, (uint16_t){0}); + bfdev_typecheck(bfdev_s32, (int32_t){0}); + bfdev_typecheck(bfdev_u32, (uint32_t){0}); + bfdev_typecheck(bfdev_s64, (int64_t){0}); + bfdev_typecheck(bfdev_u64, (uint64_t){0}); + + bfdev_typecheck(bfdev_size_t, (size_t){0}); + bfdev_typecheck(bfdev_intptr_t, (intptr_t){0}); + bfdev_typecheck(bfdev_ptrdiff_t, (ptrdiff_t){0}); + bfdev_typecheck(bfdev_intmax_t, (intmax_t){0}); + bfdev_typecheck(bfdev_uintmax_t, (uintmax_t){0}); + + return 0; +} diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index efe2f785..76a0b802 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -7,6 +7,7 @@ set(HOST_C_FLAGS ${HOST_C_FLAGS} -Wall -Wextra + -Werror -I ${PROJECT_SOURCE_DIR}/include -I ${PROJECT_BINARY_DIR}/generated ) diff --git a/scripts/get-type.c b/scripts/get-type.c new file mode 100644 index 00000000..89277f06 --- /dev/null +++ b/scripts/get-type.c @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright(c) 2023 John Sanpe + */ + +#include +#include +#include + +#ifndef TYPE +# error "undefine type" +#endif + +int +main(int argc, const char *argv[]) +{ + const char *name; + TYPE type; + + name = _Generic(type, + __signed__ char: "char", + unsigned char: "char", + __signed__ short: "short", + unsigned short: "short", + __signed__ int: "int", + unsigned int: "int", + __signed__ long: "long", + unsigned long: "long", + __signed__ long long: "long long", + unsigned long long: "long long", + default: NULL + ); + + if (!name) + return 1; + printf("%s", name); + + return 0; +} diff --git a/scripts/platform.cmake b/scripts/platform.cmake new file mode 100644 index 00000000..4c70afdd --- /dev/null +++ b/scripts/platform.cmake @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Copyright(c) 2025 John Sanpe +# + +if(HOST_C_COMPILER) + set(PRINT_TYPE_LINK "-static") +endif() + +macro(print_type output name) + message(STATUS "Print type: " ${name}) + try_run( + RUN_RESULT + COMPILE_RESULT + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_LIST_DIR}/get-type.c + COMPILE_DEFINITIONS "-Werror -DTYPE=${name}" + LINK_OPTIONS "${PRINT_TYPE_LINK}" + RUN_OUTPUT_VARIABLE ${output} + COMPILE_OUTPUT_VARIABLE COMPILE_OUTPUT + ) + if ((NOT COMPILE_RESULT) OR (NOT RUN_RESULT EQUAL 0)) + message("Compile output: ${COMPILE_OUTPUT}") + message("Run result: ${RUN_RESULT}") + message(FATAL_ERROR "Failed to retrieve the original type ${name}") + endif() +endmacro() + +if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin|GNU") + set(BFDEV_PORT_TYPE "posix") +endif() + +if(CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN") + set(BFDEV_PORT_TYPE "posix") +endif() + +if(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD|FreeBSD|NetBSD|OpenBSD|DragonFly") + set(BFDEV_PORT_TYPE "posix") +endif() + +if(CMAKE_SYSTEM_NAME MATCHES "Generic") + set(BFDEV_PORT_TYPE "generic") +endif() + +if(BFDEV_PORT_TYPE STREQUAL "posix") + print_type(BFDEV_TYPE_ADDR "size_t") + print_type(BFDEV_TYPE_W64 "int64_t") + print_type(BFDEV_TYPE_MAX "intmax_t") +endif() + +if(NOT BFDEV_TYPE_ADDR) + set(BFDEV_TYPE_ADDR "long") +endif() + +if(NOT BFDEV_TYPE_W64) + set(BFDEV_TYPE_W64 "long long") +endif() + +if(NOT BFDEV_TYPE_MAX) + set(BFDEV_TYPE_MAX "long long") +endif() diff --git a/scripts/sanitize.cmake b/scripts/sanitize.cmake index 2522813e..50a5dadc 100644 --- a/scripts/sanitize.cmake +++ b/scripts/sanitize.cmake @@ -4,7 +4,7 @@ # if(BFDEV_ASAN) - set(CMAKE_C_FLAGS + set(BFDEV_C_FLAGS "${CMAKE_C_FLAGS} \ -fsanitize=address \ -fsanitize=undefined \ @@ -13,16 +13,16 @@ if(BFDEV_ASAN) -fno-stack-protector" ) if(NOT APPLE) - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} \ + set(BFDEV_C_FLAGS + "${BFDEV_C_FLAGS} \ -fsanitize=leak" ) endif() endif() if(BFDEV_UBSAN) - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} \ + set(BFDEV_C_FLAGS + "${BFDEV_C_FLAGS} \ -fsanitize=alignment \ -fsanitize=bounds \ -fsanitize=shift \ @@ -34,8 +34,8 @@ if(BFDEV_UBSAN) endif() if(BFDEV_GCOV) - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} \ + set(BFDEV_C_FLAGS + "${BFDEV_C_FLAGS} \ -fprofile-arcs \ -ftest-coverage" ) diff --git a/src/port/string.c b/src/port/string.c index ac17a162..0f85138a 100644 --- a/src/port/string.c +++ b/src/port/string.c @@ -7,67 +7,67 @@ #include #include -hidden void * +void * bfdev_memcpy(void *dest, const void *src, bfdev_size_t n) { return bfport_memcpy(dest, src, n); } -hidden void * +void * bfdev_memset(void *s, int c, bfdev_size_t n) { return bfport_memset(s, c, n); } -hidden int +int bfdev_memcmp(const void *s1, const void *s2, bfdev_size_t n) { return bfport_memcmp(s1, s2, n); } -hidden int +int bfdev_strcmp(const char *s1, const char *s2) { return bfport_strcmp(s1, s2); } -hidden char * +char * bfdev_strchr(const char *s, int c) { return bfport_strchr(s, c); } -hidden bfdev_size_t +bfdev_size_t bfdev_strspn(const char *s, const char *accept) { return bfport_strspn(s, accept); } -hidden bfdev_size_t +bfdev_size_t bfdev_strcspn(const char *s, const char *reject) { return bfport_strcspn(s, reject); } -hidden char * +char * bfdev_strcpy(char *dest, const char *src) { return bfport_strcpy(dest, src); } -hidden char * +char * bfdev_strncpy(char *dest, const char *src, bfdev_size_t n) { return bfport_strncpy(dest, src, n); } -hidden bfdev_size_t +bfdev_size_t bfdev_strlen(const char *s) { return bfport_strlen(s); } -hidden bfdev_size_t +bfdev_size_t bfdev_strnlen(const char *s, bfdev_size_t len) { return bfport_strnlen(s, len); diff --git a/testsuite/CMakeLists.txt b/testsuite/CMakeLists.txt index 5bba07cf..4e2af445 100644 --- a/testsuite/CMakeLists.txt +++ b/testsuite/CMakeLists.txt @@ -3,8 +3,8 @@ # Copyright(c) 2024 John Sanpe # -include(build.cmake) -include(testsuite.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/build.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/testsuite.cmake) add_subdirectory(array) add_subdirectory(bitwalk)