diff --git a/CMakeLists.txt b/CMakeLists.txt index d6562820..0fce58be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.4) +cmake_minimum_required (VERSION 2.8.12) project (kcov) set (PROJECT_VERSION_MAJOR 39) diff --git a/cmake/FindDwarfutils.cmake b/cmake/FindDwarfutils.cmake new file mode 100644 index 00000000..bed79190 --- /dev/null +++ b/cmake/FindDwarfutils.cmake @@ -0,0 +1,35 @@ +# - Try to find dwarfutils + +if (DWARFUTILS_LIBRARIES AND DWARFUTILS_INCLUDE_DIRS) + set (DWARFUTILS_FIND_QUIETLY ON) +endif (DWARFUTILS_LIBRARIES AND DWARFUTILS_INCLUDE_DIRS) + +find_path (DWARFUTILS_INCLUDE_DIR + NAMES + libdwarf.h + PATHS + /usr/local/opt/dwarfutils/include/libdwarf-0/ + /opt/homebrew/opt/dwarfutils/include/libdwarf-0/ + ENV CPATH) + +find_library (DWARFUTILS_LIBRARY + NAMES + dwarf + PATHS + /usr/local/opt/dwarfutils/lib/ + /opt/homebrew/opt/dwarfutils/lib/ + ENV LIBRARY_PATH + ENV LD_LIBRARY_PATH) + +include (FindPackageHandleStandardArgs) + + +# handle the QUIETLY and REQUIRED arguments and set DWARFUTILS_FOUND to TRUE if all listed variables are TRUE +find_package_handle_standard_args(dwarfutils DEFAULT_MSG + DWARFUTILS_LIBRARY + DWARFUTILS_INCLUDE_DIR) + +mark_as_advanced(DWARFUTILS_INCLUDE_DIR DWARFUTILS_LIBRARY) + +set(DWARFUTILS_LIBRARIES ${DWARFUTILS_LIBRARY} ) +set(DWARFUTILS_INCLUDE_DIRS ${DWARFUTILS_INCLUDE_DIR} ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1146ea7c..a9328f24 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -192,6 +192,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") add_library (${SOLIB} SHARED ${${SOLIB}_SRCS}) set_target_properties(${SOLIB} PROPERTIES SUFFIX ".so") else() # Mac OSX + find_package (dwarfutils REQUIRED) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mach_excServer.c @@ -298,8 +299,6 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -g -Wall -D_GLIBCXX_USE_NANO include_directories( include/ ${ZLIB_INCLUDE_DIR} - # FIXME! Dont commit - /usr/local/opt/dwarfutils/include/libdwarf-0/ ) if (LIBDW_FOUND) @@ -314,6 +313,10 @@ if (CURL_FOUND) include_directories(${CURL_INCLUDE_DIRS}) endif (CURL_FOUND) +if (DWARFUTILS_FOUND) + include_directories(${DWARFUTILS_INCLUDE_DIRS}) +endif () + add_library (bash_execve_redirector SHARED engines/bash-execve-redirector.c) set_target_properties(bash_execve_redirector PROPERTIES SUFFIX ".so") target_link_libraries(bash_execve_redirector ${DL_LIBRARY}) @@ -454,7 +457,7 @@ if (LIBELF_FOUND) ${DISASSEMBLER_LIBRARIES} ${LIBDW_LIBRARIES} ${LIBELF_LIBRARIES} - /usr/local/opt/dwarfutils/lib/libdwarf.a + ${DWARFUTILS_LIBRARIES} "${M_LIBRARY}" ${ZLIB_LIBRARIES} ) diff --git a/src/parsers/macho-parser.cc b/src/parsers/macho-parser.cc index 2185ee6b..843f1a89 100644 --- a/src/parsers/macho-parser.cc +++ b/src/parsers/macho-parser.cc @@ -253,11 +253,6 @@ class MachoParser : public IFileParser unsigned int matchParser(const std::string& filename, uint8_t* data, size_t dataSize) final { - if (IConfiguration::getInstance().keyAsInt("low-limit") == 26) - { - printf("NOT MACHO PARSER\n"); - return match_none; - } auto hdr = reinterpret_cast(data); // Don't handle big endian machines, or 32-bit binaries