Browse Source

Make lwIP CMake build/link with sanitizers

But leave them disabled for now
master
Dirk Ziegelmeier 8 years ago
parent
commit
64ea8a58c1
  1. 6
      ports/CMakeCommon.cmake
  2. 2
      ports/unix/check/CMakeLists.txt
  3. 3
      ports/unix/example_app/CMakeLists.txt
  4. 1
      ports/unix/lib/CMakeLists.txt
  5. 4
      ports/win32/example_app/CMakeLists.txt

6
ports/CMakeCommon.cmake

@ -70,9 +70,10 @@ if(CMAKE_C_COMPILER_ID STREQUAL GNU)
# -fsanitize=address
# -fsanitize=undefined
# -fno-sanitize=alignment
-fstack-protector
-fstack-check
# -fstack-protector
# -fstack-check
)
# set(LWIP_SANITIZER_LIBS asan ubsan)
endif()
set(LWIP_COMPILER_FLAGS ${LWIP_COMPILER_FLAGS_GNU_CLANG})
endif()
@ -86,6 +87,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL Clang)
-Wno-documentation-deprecated-sync
)
set(LWIP_COMPILER_FLAGS ${LWIP_COMPILER_FLAGS_GNU_CLANG})
# set(LWIP_SANITIZER_LIBS asan ubsan)
endif()
if(CMAKE_C_COMPILER_ID STREQUAL MSVC)

2
ports/unix/check/CMakeLists.txt

@ -36,7 +36,7 @@ target_compile_definitions(lwip_unittests PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBE
find_library(LIBCHECK check)
find_library(LIBM m)
target_link_libraries(lwip_unittests lwipallapps lwipcore ${LIBCHECK} ${LIBM})
target_link_libraries(lwip_unittests ${LWIP_SANITIZER_LIBS} lwipallapps lwipcore ${LIBCHECK} ${LIBM})
if (NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
# check installed via brew on Darwin doesn't have a separate subunit library (must be statically linked)

3
ports/unix/example_app/CMakeLists.txt

@ -25,8 +25,9 @@ add_executable(example_app ${LWIP_CONTRIB_DIR}/examples/example_app/test.c defau
target_include_directories(example_app PRIVATE ${LWIP_INCLUDE_DIRS})
target_compile_options(example_app PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(example_app PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_link_libraries(example_app lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcontribportunix lwipcore)
target_link_libraries(example_app ${LWIP_SANITIZER_LIBS} lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcontribportunix lwipcore)
add_executable(makefsdata ${lwipmakefsdata_SRCS})
target_compile_options(makefsdata PRIVATE ${LWIP_COMPILER_FLAGS})
target_include_directories(makefsdata PRIVATE ${LWIP_INCLUDE_DIRS})
target_link_libraries(makefsdata ${LWIP_SANITIZER_LIBS})

1
ports/unix/lib/CMakeLists.txt

@ -28,6 +28,7 @@ add_library(lwip ${lwipnoapps_SRCS} ${lwipcontribportunix_SRCS} ${lwipcontribpor
target_compile_options(lwip PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(lwip PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_include_directories(lwip PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
target_link_libraries(lwip ${LWIP_SANITIZER_LIBS})
find_library(LIBPTHREAD pthread)
target_link_libraries(lwip ${LIBPTHREAD})

4
ports/win32/example_app/CMakeLists.txt

@ -25,9 +25,9 @@ add_executable(example_app ${LWIP_CONTRIB_DIR}/examples/example_app/test.c defau
target_include_directories(example_app PRIVATE ${LWIP_INCLUDE_DIRS})
target_compile_options(example_app PRIVATE ${LWIP_COMPILER_FLAGS})
target_compile_definitions(example_app PRIVATE ${LWIP_DEFINITIONS} ${LWIP_MBEDTLS_DEFINITIONS})
target_link_libraries(example_app lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcore lwipcontribportwindows)
target_link_libraries(example_app ${LWIP_SANITIZER_LIBS} lwipcontribexamples lwipcontribapps lwipcontribaddons lwipallapps lwipcore lwipcontribportwindows)
add_executable(makefsdata ${lwipmakefsdata_SRCS})
target_compile_options(makefsdata PRIVATE ${LWIP_COMPILER_FLAGS})
target_include_directories(makefsdata PRIVATE ${LWIP_INCLUDE_DIRS})
target_link_libraries(makefsdata lwipcore lwipcontribportwindows)
target_link_libraries(makefsdata ${LWIP_SANITIZER_LIBS} lwipcore lwipcontribportwindows)

Loading…
Cancel
Save