Commit 1b245cd7 authored by Ramon Nou's avatar Ramon Nou
Browse files

Added cmake option to disable libc interception compilation

parent 1a535ea0
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -34,7 +34,11 @@

add_library(gkfs_intercept SHARED)
add_library(gkfs_user_lib SHARED)

if (GKFS_BUILD_LIBC_INTERCEPTION)
    add_library(gkfs_libc_intercept SHARED)
endif()

add_library(gkfs_user_lib_autoinit SHARED)

target_sources(gkfs_intercept
@@ -106,7 +110,7 @@ target_sources(
    rpc/forward_malleability.cpp
    syscalls/detail/syscall_info.c syscalls/util.S
)

if (GKFS_BUILD_LIBC_INTERCEPTION)
target_sources(
    gkfs_libc_intercept
    PRIVATE gkfs_functions.cpp
@@ -132,6 +136,7 @@ target_sources(
    syscalls/detail/syscall_info.c syscalls/util.S
   
)
endif ()

target_compile_definitions(gkfs_user_lib PUBLIC BYPASS_SYSCALL)
target_link_options(gkfs_user_lib PRIVATE -z noexecstack)
@@ -140,8 +145,10 @@ endif()
target_compile_definitions(gkfs_user_lib_autoinit PUBLIC BYPASS_SYSCALL ENABLE_INIT)
target_link_options(gkfs_user_lib_autoinit PRIVATE -z noexecstack)

if (GKFS_BUILD_LIBC_INTERCEPTION)
target_compile_definitions(gkfs_libc_intercept PUBLIC BYPASS_SYSCALL ENABLE_INIT)
target_link_options(gkfs_libc_intercept PRIVATE -z noexecstack)
endif ()

if (GKFS_ENABLE_AGIOS)
    target_compile_definitions(gkfs_intercept PUBLIC GKFS_ENABLE_AGIOS)
@@ -192,6 +199,7 @@ target_link_libraries(
    Microsoft.GSL::GSL
)

if (GKFS_BUILD_LIBC_INTERCEPTION)
target_link_libraries(
    gkfs_libc_intercept
    PRIVATE metadata distributor env_util arithmetic path_util rpc_utils
@@ -202,6 +210,15 @@ target_link_libraries(
    Threads::Threads
    Microsoft.GSL::GSL
)
endif ()

install(
    TARGETS gkfs_intercept
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs
)


set_target_properties(gkfs_user_lib
    PROPERTIES
@@ -238,6 +255,7 @@ install(
    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs
)

if (GKFS_BUILD_LIBC_INTERCEPTION)
set_target_properties(gkfs_libc_intercept
    PROPERTIES
    PUBLIC_HEADER "../../include/client/void_syscall_intercept.hpp"
@@ -250,3 +268,4 @@ install(
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gkfs
)
endif ()