CMakeLists.txt: Disable libromdata.so when using afl; print the libromdata library type in Build Summary.

afl-fuzz crashes when trying to load libromdata.so for some reason.
This commit is contained in:
David Korth 2022-09-24 16:49:39 -04:00
parent c9513cb8c6
commit 56a52f779c
2 changed files with 20 additions and 3 deletions

View File

@ -182,6 +182,16 @@ ELSE(BUILD_CLI)
SET(CLI_BUILD_MSG "No")
ENDIF(BUILD_CLI)
IF(RP_LIBROMDATA_IS_DLL)
IF(WIN32)
SET(LIBROMDATA_LIB_TYPE "shared library (.dll)")
ELSE(WIN32)
SET(LIBROMDATA_LIB_TYPE "shared library (.so)")
ENDIF(WIN32)
ELSE(RP_LIBROMDATA_IS_DLL)
SET(LIBROMDATA_LIB_TYPE "static library")
ENDIF(RP_LIBROMDATA_IS_DLL)
IF(NOT SECURITY_MECHANISM)
SET(SECURITY_MECHANISM "None")
ENDIF(NOT SECURITY_MECHANISM)
@ -275,6 +285,7 @@ MESSAGE(STATUS "
Build Summary:
- Building these UI frontends: ${UI_FRONTENDS}
- Building command-line frontend: ${CLI_BUILD_MSG}
- libromdata is built as: ${LIBROMDATA_LIB_TYPE}
- Security mechanism: ${SECURITY_MECHANISM}
- Decryption functionality: ${ENABLE_DECRYPTION_MSG}
- XML parsing: ${ENABLE_XML_MSG}

View File

@ -93,10 +93,16 @@ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/config.version.h.in" "${CMAKE_CURREN
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/stdboolx.h.in" "${CMAKE_CURRENT_BINARY_DIR}/stdboolx.h")
# Build certain libraries as shared libraries on Linux and Windows.
IF(WIN32 OR (UNIX AND NOT APPLE))
SET(RP_LIBROMDATA_IS_DLL 1)
IF(CMAKE_C_COMPILER MATCHES afl)
# Don't enable libromdata.so when building with afl/afl++.
# afl-fuzz crashes when trying to load libromdata.so for some reason.
MESSAGE(WARNING "Disabling libromdata.so due to afl")
ELSEIF(WIN32 OR (UNIX AND NOT APPLE))
SET(RP_LIBROMDATA_IS_DLL 1 PARENT_SCOPE)
ADD_DEFINITIONS(-DRP_LIBROMDATA_IS_DLL=1)
ENDIF(WIN32 OR (UNIX AND NOT APPLE))
ELSE()
MESSAGE(WARNING "Disabling libromdata.so due to unsupported OS")
ENDIF()
# FIXME: gcc-5's libgcc.a doesn't get linked in for some reason,
# resulting in the following error: