Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
57 changes: 30 additions & 27 deletions build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,31 @@
# Copyright(c) 2023 John Sanpe <sanpeqf@gmail.com>
#

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/
Expand All @@ -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
)
Expand All @@ -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}
Expand Down
4 changes: 4 additions & 0 deletions cmake/config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
21 changes: 11 additions & 10 deletions include/bfdev/asm-generic/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#define _BFDEV_ASM_GENERIC_TYPES_H_

#include <bfdev/config.h>
#include <bfdev/asm/bitsperlong.h>

BFDEV_BEGIN_DECLS

Expand All @@ -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

Expand Down
2 changes: 1 addition & 1 deletion include/bfdev/hash.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
18 changes: 2 additions & 16 deletions port/build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,10 @@
# Copyright(c) 2025 John Sanpe <sanpeqf@gmail.com>
#

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)
2 changes: 1 addition & 1 deletion port/generic/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

/* TODO: PORTME */

hidden int
int
bfport_log_write(bfdev_log_message_t *msg)
{
return 0;
Expand Down
2 changes: 1 addition & 1 deletion port/generic/stdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

/* TODO: PORTME */

hidden int
int
bfport_vsnprintf(char *s, bfdev_size_t maxlen, const char *fmt,
bfdev_va_list arg)
{
Expand Down
12 changes: 6 additions & 6 deletions port/generic/stdlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 (;;);
Expand Down
22 changes: 11 additions & 11 deletions port/generic/string.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include <port/string.h>
#include <export.h>

hidden void *
void *
bfport_memcpy(void *dest, const void *src, bfdev_size_t n)
{
const unsigned char *nsrc;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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) {
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion port/posix/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# include <stdio.h>
#endif

hidden int
int
bfport_log_write(bfdev_log_message_t *msg)
{
FILE *file;
Expand Down
2 changes: 1 addition & 1 deletion port/posix/stdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# include <stdio.h>
#endif

hidden int
int
bfport_vsnprintf(char *s, bfdev_size_t maxlen, const char *fmt,
bfdev_va_list arg)
{
Expand Down
Loading
Loading