From 376479256ddabd44fbdf1aeca3bcdc17672291ea Mon Sep 17 00:00:00 2001 From: Peter Goodman Date: Wed, 13 Mar 2019 09:49:27 -0400 Subject: [PATCH] Enable builds with GCC (#527) * Enable builds with GCC * Update travis.sh --- .remill_commit_id | 2 +- cmake/settings.cmake | 19 +++++++++++-------- cmake/utils.cmake | 9 +-------- scripts/travis.sh | 4 ++-- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/.remill_commit_id b/.remill_commit_id index 778174602..25010c717 100644 --- a/.remill_commit_id +++ b/.remill_commit_id @@ -1 +1 @@ -084fe9f39059490657a065b20ec890bb25fd092a +20bfadd947c74cad53c17061eddf055565e46463 diff --git a/cmake/settings.cmake b/cmake/settings.cmake index db33772ce..90409c5f9 100644 --- a/cmake/settings.cmake +++ b/cmake/settings.cmake @@ -1,6 +1,3 @@ -# This is an exact copy of the cmake/settings.cmake file in the Remill -# repository; you are encouraged to keep them in sync - # This is only executed once; use a macro (and not a function) so that # everything defined here does not end up in a separate namespace macro(main) @@ -88,15 +85,21 @@ macro(main) set(GLOBAL_CXXFLAGS -Wall -Wextra -Wno-unused-parameter -Wno-c++98-compat -Wno-unreachable-code-return -Wno-nested-anon-types - -Wno-extended-offsetof -Wgnu-alignof-expression - -Wno-gnu-anonymous-struct -Wno-gnu-designator - -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments - -Wno-gnu-statement-expression -Wno-return-type-c-linkage + -Wno-extended-offsetof + -Wno-variadic-macros -Wno-return-type-c-linkage -Wno-c99-extensions -Wno-ignored-attributes -Wno-unused-local-typedef -Wno-unknown-pragmas -Wno-unknown-warning-option -fPIC -fno-omit-frame-pointer -fvisibility-inlines-hidden -fno-exceptions - -fno-asynchronous-unwind-tables -fno-rtti + -fno-asynchronous-unwind-tables ) + + if ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") + set(GLOBAL_CXXFLAGS + ${GLOBAL_CXXFLAGS} + -Wgnu-alignof-expression -Wno-gnu-anonymous-struct -Wno-gnu-designator + -Wno-gnu-zero-variadic-macro-arguments -Wno-gnu-statement-expression + ) + endif() # debug symbols if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 3cf6eae8d..361b29371 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -8,6 +8,7 @@ function(FindAndSelectClangCompiler) if(DEFINED LLVM_INSTALL_PREFIX) list(APPEND FINDPACKAGE_LLVM_HINTS "${LLVM_INSTALL_PREFIX}/lib/cmake/llvm/") list(APPEND FINDPACKAGE_LLVM_HINTS "${LLVM_INSTALL_PREFIX}/share/llvm/cmake/") + set(FINDPACKAGE_LLVM_HINTS ${FINDPACKAGE_LLVM_HINTS} PARENT_SCOPE) message(STATUS "Using LLVM_INSTALL_PREFIX hints for find_package(LLVM): ${FINDPACKAGE_LLVM_HINTS}") endif() @@ -28,10 +29,6 @@ function(FindAndSelectClangCompiler) set(CMAKE_C_COMPILER "clang" PARENT_SCOPE) endif() endif() - - if (NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" AND NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - message(FATAL_ERROR "Remill and its dependent libraries must be compiled with Clang.") - endif() if(NOT DEFINED CMAKE_CXX_COMPILER) if(DEFINED LLVM_INSTALL_PREFIX) @@ -41,10 +38,6 @@ function(FindAndSelectClangCompiler) set(CMAKE_CXX_COMPILER "clang++${executable_extension}" PARENT_SCOPE) endif() endif() - - if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") - message(FATAL_ERROR "Remill and its dependent libraries must be compiled with Clang.") - endif() if(NOT DEFINED CMAKE_ASM_COMPILER) if(DEFINED LLVM_INSTALL_PREFIX) diff --git a/scripts/travis.sh b/scripts/travis.sh index 277c8eaad..a75c9b4ca 100755 --- a/scripts/travis.sh +++ b/scripts/travis.sh @@ -162,8 +162,8 @@ linux_build() { local log_file=`mktemp` # set up ada support for cmake - # Old supported versions: "35" "36" "37" "38" "39" - llvm_version_list=( "40" "50" "60" ) + # Old supported versions: "35" "36" "37" "38" "39" "40" + llvm_version_list=( "50" "60" ) for llvm_version in "${llvm_version_list[@]}" ; do printf "#\n" printf "# Running CI tests for LLVM version ${llvm_version}...\n"