Skip to content

Commit

Permalink
switched to gcc on alpine
Browse files Browse the repository at this point in the history
  • Loading branch information
oruchreis committed Oct 31, 2024
1 parent 160fb06 commit df19742
Show file tree
Hide file tree
Showing 7 changed files with 195 additions and 140 deletions.
255 changes: 137 additions & 118 deletions .github/workflows/build.yaml

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ if (MSVC)
string(REGEX REPLACE "/MD$<$<CONFIG:Debug>:d>" "/MT$<$<CONFIG:Debug>:d>" COMPILE_OPTIONS "${COMPILE_OPTIONS}")
string(REGEX REPLACE "/MD$<$<CONFIG:Debug>:d>" "/MT$<$<CONFIG:Debug>:d>" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REGEX REPLACE "/MD$<$<CONFIG:Debug>:d>" "/MT$<$<CONFIG:Debug>:d>" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "/MD$<$<CONFIG:Debug>:d>" "/MT$<$<CONFIG:Debug>:d>" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS}")
string(REGEX REPLACE "/MD$<$<CONFIG:Debug>:d>" "/MT$<$<CONFIG:Debug>:d>" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "/MD$<$<CONFIG:Debug>:d>" "/MT$<$<CONFIG:Debug>:d>" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS}")
endif()

add_subdirectory(cpp_src)
51 changes: 35 additions & 16 deletions cpp_src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,19 @@ target_architecture(COMPILER_TARGET_ARCH)

# Configure compile options
if(MSVC)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -Zi")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -Zi")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -Zi")
set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG -Zi")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -Zi /MT")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -Zi /MT")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -Zi /MT")
set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG -Zi /MT")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-O2 -DNDEBUG -Zi /MT")
set(CMAKE_C_FLAGS_MINSIZEREL "-O2 -DNDEBUG -Zi /MT")
else()
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g1")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g1")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_MINSIZEREL "-O3 -DNDEBUG")
endif()
if(${COMPILER_TARGET_ARCH} STREQUAL "e2k")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g0")
Expand All @@ -97,13 +101,13 @@ endif()
if(NOT MSVC AND NOT APPLE)
check_linker_flag (-gz cxx_linker_supports_gz)
if(cxx_linker_supports_gz)
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} -gz")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -gz")
endif()
endif()

if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd4244 -wd4267 -wd4996 -wd4717 -MP -MD")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244 -wd4267 -wd4996 -wd4717 -wd4800 -wd4396 -wd4503 -MP -MD /bigobj")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd4244 -wd4267 -wd4996 -wd4717 -MP -MT")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244 -wd4267 -wd4996 -wd4717 -wd4800 -wd4396 -wd4503 -MP -MT /bigobj")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -SAFESEH:NO")
else()
if (NOT DEFINED ENV{SECTION_FLAGS})
Expand All @@ -122,6 +126,19 @@ if(WITH_LTO)
include (RxSetupLTO)
endif()

message("CMAKE_C_FLAGS is ${CMAKE_C_FLAGS}")
message("CMAKE_CXX_FLAGS is ${CMAKE_CXX_FLAGS}")
if (CMAKE_BUILD_TYPE STREQUAL "Release")
message("CMAKE_C_FLAGS_RELEASE is ${CMAKE_C_FLAGS_RELEASE}")
message("CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}")
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
message("CMAKE_C_FLAGS_RELWITHDEBINFO is ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
message("CMAKE_CXX_FLAGS_RELWITHDEBINFO is ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
elseif(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
message("CMAKE_C_FLAGS_MINSIZEREL is ${CMAKE_C_FLAGS_MINSIZEREL}")
message("CMAKE_CXX_FLAGS_MINSIZEREL is ${CMAKE_CXX_FLAGS_MINSIZEREL}")
endif()

set(EXTRA_FLAGS "")

if(WITH_ASAN AND WITH_TSAN)
Expand Down Expand Up @@ -445,7 +462,7 @@ if(ENABLE_ROCKSDB)
-DFAIL_ON_WARNINGS=OFF -DUSE_RTTI=1 -G${CMAKE_GENERATOR}
-DWITH_JEMALLOC=On -DWITH_ZLIB=On
-DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>"
-DCMAKE_CXX_FLAGS="/MT$<$<CONFIG:Debug>:d>" -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT$<$<CONFIG:Debug>:d>" -DWITH_WINDOWS_UTF8_FILENAMES=On)
-DCMAKE_CXX_FLAGS="/MT$<$<CONFIG:Debug>:d>" -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT$<$<CONFIG:Debug>:d>" -DCMAKE_CXX_FLAGS_RELEASE="/MT$<$<CONFIG:Debug>:d>" -DCMAKE_CXX_FLAGS_MINSIZEREL="/MT$<$<CONFIG:Debug>:d>" -DWITH_WINDOWS_UTF8_FILENAMES=On)
else()
list(APPEND CMAKE_ARGS
"-DCMAKE_CXX_FLAGS=-fPIC"
Expand Down Expand Up @@ -496,7 +513,7 @@ if(ENABLE_ROCKSDB)
list(APPEND REINDEXER_LIBRARIES Shlwapi.lib Rpcrt4.lib)
endif()

find_library(BZ2_LIBRARY NAMES libbz2.a bz2 bzip2)
find_library(BZ2_LIBRARY NAMES libbz2.a bz2 bzip2 bz2.lib bzip2.lib)
if (BZ2_LIBRARY)
message (STATUS "Found libbz2: ${BZ2_LIBRARY}")
list(APPEND REINDEXER_LIBRARIES ${BZ2_LIBRARY})
Expand Down Expand Up @@ -600,16 +617,17 @@ find_package(Threads REQUIRED ON)
list(APPEND REINDEXER_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} )

if(WITH_CPPTRACE)
find_package(cpptrace)
if (cpptrace_LIBRARY AND cpptrace_INCLUDE_DIR)
find_library(CPPTRACE_LIBRARY NAMES libcpptrace.a cpptrace.lib)
find_path(CPPTRACE_INCLUDE NAMES cpptrace/cpptrace.hpp $ENV{CPPTRACE_INCLUDE})
if (CPPTRACE_LIBRARY AND CPPTRACE_INCLUDE)
if (MSVC)
STRING(REGEX REPLACE "[.]dll$" ".lib" STATIC_cpptrace_LIB ${cpptrace_LIBRARY})
STRING(REGEX REPLACE "[.]dll$" ".lib" STATIC_CPPTRACE_LIB ${CPPTRACE_LIBRARY})
else()
STRING(REGEX REPLACE "[.](so|dylib)$" ".a" STATIC_cpptrace_LIB ${cpptrace_LIBRARY})
STRING(REGEX REPLACE "[.](so|dylib)$" ".a" STATIC_CPPTRACE_LIB ${CPPTRACE_LIBRARY})
endif()
message (STATUS "Found cpptrace: ${STATIC_cpptrace_LIB}")
include_directories(${cpptrace_INCLUDE_DIR})
list (APPEND REINDEXER_LIBRARIES ${STATIC_cpptrace_LIB})
message (STATUS "Found cpptrace: ${STATIC_CPPTRACE_LIB}")
include_directories(${CPPTRACE_INCLUDE})
list (APPEND REINDEXER_LIBRARIES ${STATIC_CPPTRACE_LIB})
else()
ExternalProject_Add(
cpptrace_lib
Expand All @@ -630,6 +648,7 @@ if(WITH_CPPTRACE)
list(APPEND REINDEXER_LIBRARIES cpptrace ${REINDEXER_LIBRARIES})
endif()
add_definitions(-DREINDEX_WITH_CPPTRACE)
add_definitions(-DCPPTRACE_STATIC_DEFINE)
endif()

# librt
Expand Down
3 changes: 0 additions & 3 deletions cpp_src/debug/backtrace.cc
Original file line number Diff line number Diff line change
Expand Up @@ -351,9 +351,6 @@ void print_crash_query(std::ostream& sout) {
#else
namespace reindexer {
namespace debug {
static std::recursive_mutex g_mutex;
static crash_query_reporter_t g_crash_query_reporter = [](std::ostream&) {};
static backtrace_writer_t g_writer = [](std::string_view sv) { std::cerr << sv; };

void backtrace_init() noexcept {}
void set_minidump_path(const std::string&) { assert(false); }
Expand Down
3 changes: 3 additions & 0 deletions cpp_src/server/cbinding/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ endif()
message(STATUS "'${TARGET}' Target Link Libs: ${REINDEXER_LIBRARIES}")
target_link_libraries(${TARGET} PRIVATE ${REINDEXER_LIBRARIES})

# In order to reduce the size of the shared library, we only specify the exported functions. If there is a new export, it should be added to version_script.map file. (oruchreis)
# target_link_options(${TARGET} PUBLIC -Wl,-Bsymbolic -Wl,-Bsymbolic-functions -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/version_script.map)

if (WIN32)
if (MSVC)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
Expand Down
9 changes: 9 additions & 0 deletions cpp_src/server/cbinding/version_script.map
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@
get_reindexer_instance;
check_server_ready;
reopen_log_files;

start_reindexer_grpc;
stop_reindexer_grpc;

init_reindexer;
init_reindexer_with_config;
destroy_reindexer;
reindexer_connect;
reindexer_ping;
Expand All @@ -34,14 +38,19 @@
reindexer_select_query;
reindexer_delete_query;
reindexer_update_query;
reindexer_cptr2cjson;
reindexer_free_cjson;
reindexer_free_buffer;
reindexer_free_buffers;
reindexer_commit;
reindexer_enum_meta;
reindexer_put_meta;
reindexer_get_meta;
reindexer_delete_meta;
reindexer_cancel_context;
reindexer_enable_logger;
reindexer_disable_logger;
reindexer_init_locale;
reindexer_malloc_free;
local: *;
};
11 changes: 8 additions & 3 deletions cpp_src/server/grpc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ if (ENABLE_GRPC)
#target_link_libraries(${TARGET} OpenSSL::Crypto)
#target_link_libraries(${TARGET} OpenSSL::SSL)

set(Protobuf_USE_STATIC_LIBS ON)
set(protobuf_MODULE_COMPATIBLE TRUE)
find_package(Protobuf REQUIRED)
find_package(Protobuf REQUIRED CONFIG)
find_library(UTF8_RANGE NAMES utf8_range libutf8_range.a utf8_range.lib)
set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)
find_program(PROTOBUF_PROTOC_EXECUTABLE protoc)
INCLUDE_DIRECTORIES(SYSTEM ${PROTOBUF_INCLUDE_DIR})
Expand Down Expand Up @@ -86,8 +88,11 @@ file(GLOB GRPC_SRCS ./*.cc ${GENERATED_PROTO_DIR}/*.cc)

if (APPLE)
set (CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -undefined dynamic_lookup")
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
set (CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -gz")
else() #if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
check_linker_flag (-gz cxx_linker_supports_gz)
if(cxx_linker_supports_gz)
set (CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -gz")
endif()
endif()

add_library(${TARGET} ${GRPC_SRCS}) #we need static lib. (oruchreis)
Expand Down

0 comments on commit df19742

Please sign in to comment.