Loading CMake/gkfs-options.cmake +6 −0 Original line number Diff line number Diff line Loading @@ -245,6 +245,12 @@ gkfs_define_option( DEFAULT_VALUE ON ) gkfs_define_option( GKFS_BUILD_LIBC_INTERCEPTION_MANUAL HELP_TEXT "Compile libc interception with manual init" DEFAULT_VALUE ON ) # use old resolve function gkfs_define_option( GKFS_USE_LEGACY_PATH_RESOLVE Loading src/client/CMakeLists.txt +49 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,10 @@ if (GKFS_BUILD_LIBC_INTERCEPTION) add_library(gkfs_libc_intercept SHARED) endif() if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) add_library(gkfs_libc_intercept_manual SHARED) endif() add_library(gkfs_user_lib_autoinit SHARED) target_sources(gkfs_intercept Loading Loading @@ -150,6 +154,12 @@ target_compile_definitions(gkfs_libc_intercept PUBLIC BYPASS_SYSCALL ENABLE_INIT target_link_options(gkfs_libc_intercept PRIVATE -z noexecstack) endif () if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) target_compile_definitions(gkfs_libc_intercept_manual PUBLIC BYPASS_SYSCALL) target_link_options(gkfs_libc_intercept_manual PRIVATE -z noexecstack) endif () if (GKFS_ENABLE_AGIOS) target_compile_definitions(gkfs_intercept PUBLIC GKFS_ENABLE_AGIOS) endif () Loading Loading @@ -221,6 +231,29 @@ if (GKFS_ENABLE_CLIENT_METRICS) endif () endif () if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) target_link_libraries( gkfs_libc_intercept_manual PRIVATE metadata distributor env_util arithmetic path_util rpc_utils PUBLIC dl Mercury::Mercury hermes fmt::fmt Threads::Threads Microsoft.GSL::GSL ) # Enable MSGPack metrics for intercept only if (GKFS_ENABLE_CLIENT_METRICS) target_link_libraries( gkfs_libc_intercept_manual PUBLIC msgpack_util ) target_compile_definitions(gkfs_libc_intercept_manual PUBLIC GKFS_ENABLE_CLIENT_METRICS) endif () endif () install( TARGETS gkfs_intercept LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} Loading Loading @@ -278,3 +311,19 @@ install( PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs ) endif () if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) set_target_properties(gkfs_libc_intercept_manual PROPERTIES PUBLIC_HEADER "../../include/client/void_syscall_intercept.hpp" PUBLIC_HEADER "../../include/client/user_functions.hpp" ) install( TARGETS gkfs_libc_intercept_manual LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs ) endif () Loading
CMake/gkfs-options.cmake +6 −0 Original line number Diff line number Diff line Loading @@ -245,6 +245,12 @@ gkfs_define_option( DEFAULT_VALUE ON ) gkfs_define_option( GKFS_BUILD_LIBC_INTERCEPTION_MANUAL HELP_TEXT "Compile libc interception with manual init" DEFAULT_VALUE ON ) # use old resolve function gkfs_define_option( GKFS_USE_LEGACY_PATH_RESOLVE Loading
src/client/CMakeLists.txt +49 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,10 @@ if (GKFS_BUILD_LIBC_INTERCEPTION) add_library(gkfs_libc_intercept SHARED) endif() if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) add_library(gkfs_libc_intercept_manual SHARED) endif() add_library(gkfs_user_lib_autoinit SHARED) target_sources(gkfs_intercept Loading Loading @@ -150,6 +154,12 @@ target_compile_definitions(gkfs_libc_intercept PUBLIC BYPASS_SYSCALL ENABLE_INIT target_link_options(gkfs_libc_intercept PRIVATE -z noexecstack) endif () if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) target_compile_definitions(gkfs_libc_intercept_manual PUBLIC BYPASS_SYSCALL) target_link_options(gkfs_libc_intercept_manual PRIVATE -z noexecstack) endif () if (GKFS_ENABLE_AGIOS) target_compile_definitions(gkfs_intercept PUBLIC GKFS_ENABLE_AGIOS) endif () Loading Loading @@ -221,6 +231,29 @@ if (GKFS_ENABLE_CLIENT_METRICS) endif () endif () if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) target_link_libraries( gkfs_libc_intercept_manual PRIVATE metadata distributor env_util arithmetic path_util rpc_utils PUBLIC dl Mercury::Mercury hermes fmt::fmt Threads::Threads Microsoft.GSL::GSL ) # Enable MSGPack metrics for intercept only if (GKFS_ENABLE_CLIENT_METRICS) target_link_libraries( gkfs_libc_intercept_manual PUBLIC msgpack_util ) target_compile_definitions(gkfs_libc_intercept_manual PUBLIC GKFS_ENABLE_CLIENT_METRICS) endif () endif () install( TARGETS gkfs_intercept LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} Loading Loading @@ -278,3 +311,19 @@ install( PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs ) endif () if (GKFS_BUILD_LIBC_INTERCEPTION_MANUAL) set_target_properties(gkfs_libc_intercept_manual PROPERTIES PUBLIC_HEADER "../../include/client/void_syscall_intercept.hpp" PUBLIC_HEADER "../../include/client/user_functions.hpp" ) install( TARGETS gkfs_libc_intercept_manual LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs ) endif ()