diff --git a/0001-Don-t-add-unnecessary-compiler-flags-to-llvm-config-.patch b/0001-Don-t-add-unnecessary-compiler-flags-to-llvm-config-.patch new file mode 100644 index 0000000..4697afc --- /dev/null +++ b/0001-Don-t-add-unnecessary-compiler-flags-to-llvm-config-.patch @@ -0,0 +1,91 @@ +From 701f3faf6e70374ba8f372f38d1039f13e8ef7cd Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Thu, 13 Dec 2018 18:21:23 +0000 +Subject: [PATCH] Don't add unnecessary compiler flags to llvm-config output + +Summary: +llvm-config --cxxflags --cflags, should only output the minimal flags +required to link against the llvm libraries. They currently contain +all flags used to compile llvm including flags like -g, -pedantic, +-Wall, etc, which users may not always want. + +This changes the llvm-config output to only include flags that have been +explictly added to the COMPILE_FLAGS property of the llvm-config target +by the llvm build system. + +llvm.org/PR8220 + +Output from llvm-config when running cmake with: +cmake -G Ninja .. -DCMAKE_CXX_FLAGS=-funroll-loops + +Before: + +--cppflags: -I$HEADERS_DIR/llvm/include -I$HEADERS_DIR/llvm/build/include + -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +--cflags: -I$HEADERS_DIR/llvm/include -I$HEADERS_DIR/llvm/build/include + -fPIC -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings \ + -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough \ + -Wno-comment -fdiagnostics-color -g -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS \ + -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +--cxxflags: -I$HEADERS_DIR/llvm/include -I$HEADERS_DIR/llvm/build/include\ + -funroll-loops -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall \ + -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers \ + -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized \ + -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment \ + -fdiagnostics-color -g -fno-exceptions -fno-rtti -D_GNU_SOURCE -D_DEBUG \ + -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" + +After: + +--cppflags: -I$HEADERS_DIR/llvm/include -I$HEADERS_DIR/llvm/build/include \ + -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +--cflags: -I$HEADERS_DIR/llvm/include -I$HEADERS_DIR/llvm/build/include \ + -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS +--cxxflags: -I$HEADERS_DIR/llvm/include -I$HEADERS_DIR/llvm/build/include \ + -std=c++11 -fno-exceptions -fno-rtti \ + -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS + +Reviewers: sylvestre.ledru, infinity0, mgorny + +Reviewed By: sylvestre.ledru, mgorny + +Subscribers: mgorny, dmgreen, llvm-commits + +Differential Revision: https://reviews.llvm.org/D55391 + +llvm-svn: 349068 +--- + llvm/tools/llvm-config/CMakeLists.txt | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt +index a0bd36c..a7db173 100644 +--- a/tools/llvm-config/CMakeLists.txt ++++ b/tools/llvm-config/CMakeLists.txt +@@ -29,12 +29,20 @@ string(REPLACE ";" " " SYSTEM_LIBS "${SYSTEM_LIBS}") + # Fetch target specific compile options, e.g. RTTI option + get_property(COMPILE_FLAGS TARGET llvm-config PROPERTY COMPILE_FLAGS) + ++# The language standard potentially affects the ABI/API of LLVM, so we want ++# to make sure it is reported by llvm-config. ++# NOTE: We don't want to start extracting any random C/CXX flags that the ++# user may add that could affect the ABI. We only want to extract flags ++# that have been added by the LLVM build system. ++string(REGEX MATCH "-std=[^ ]\+" LLVM_CXX_STD_FLAG ${CMAKE_CXX_FLAGS}) ++string(REGEX MATCH "-std=[^ ]\+" LLVM_C_STD_FLAG ${CMAKE_C_FLAGS}) ++ + # Use configure_file to create BuildVariables.inc. + set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) + set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) +-set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") +-set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") +-set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") ++set(LLVM_CPPFLAGS "${LLVM_DEFINITIONS}") ++set(LLVM_CFLAGS "${LLVM_C_STD_FLAG} ${LLVM_DEFINITIONS}") ++set(LLVM_CXXFLAGS "${LLVM_CXX_STD_FLAG} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") + set(LLVM_BUILD_SYSTEM cmake) + set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) + set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}") +-- +1.8.3.1 + diff --git a/0001-Filter-out-cxxflags-not-supported-by-clang.patch b/0001-Filter-out-cxxflags-not-supported-by-clang.patch deleted file mode 100644 index 31b819b..0000000 --- a/0001-Filter-out-cxxflags-not-supported-by-clang.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 5f7fd92155db77c7608e3a07e5dcfad1ec7bd4e4 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Fri, 16 Mar 2018 07:52:33 -0700 -Subject: [PATCH] Filter out cxxflags not supported by clang - ---- - tools/llvm-config/CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt -index a0bd36c..4193b0e 100644 ---- a/tools/llvm-config/CMakeLists.txt -+++ b/tools/llvm-config/CMakeLists.txt -@@ -34,7 +34,11 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) - set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) - set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") - set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") -+STRING(REGEX REPLACE "-mcet" "" LLVM_CFLAGS ${LLVM_CFLAGS}) -+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CFLAGS ${LLVM_CFLAGS}) - set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") -+STRING(REGEX REPLACE "-mcet" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) -+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) - set(LLVM_BUILD_SYSTEM cmake) - set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) - set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}") --- -1.8.3.1 - diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..219cd2c --- /dev/null +++ b/gating.yaml @@ -0,0 +1,12 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +rules: + - !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete} +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +rules: + - !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete} diff --git a/llvm.spec b/llvm.spec index a9ddfec..893f440 100644 --- a/llvm.spec +++ b/llvm.spec @@ -55,7 +55,7 @@ Name: %{pkg_name} Version: %{maj_ver}.%{min_ver}.%{patch_ver} -Release: 2%{?rc_ver:.rc%{rc_ver}}%{?dist} +Release: 3%{?rc_ver:.rc%{rc_ver}}%{?dist} Summary: The Low Level Virtual Machine License: NCSA @@ -64,7 +64,6 @@ Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver} Source1: run-lit-tests Patch3: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch -Patch7: 0001-Filter-out-cxxflags-not-supported-by-clang.patch Patch12: 0001-unittests-Don-t-install-TestPlugin.so.patch # If python2 is available on the system, llvm will try to use it. This patch @@ -75,6 +74,8 @@ Patch15: 0001-Don-t-set-rpath-when-installing.patch Patch16: 0001-Ensure-that-variant-part-discriminator-is-read-by-Me.patch Patch17: 0002-test-Fix-Assembler-debug-info.ll.patch +# rhbz#1672012 +Patch18: 0001-Don-t-add-unnecessary-compiler-flags-to-llvm-config-.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -450,6 +451,9 @@ fi %endif %changelog +* Tue Feb 12 2019 Tom Stellard - 7.0.1-3 +- Remove unnecessary flags from llvm-config + * Mon Jan 21 2019 Josh Stone - 7.0.1-2 - Fix discriminators in metadata, rhbz#1668033 diff --git a/tests/clang-llvm-config/runtest.sh b/tests/clang-llvm-config/runtest.sh new file mode 100755 index 0000000..c505c85 --- /dev/null +++ b/tests/clang-llvm-config/runtest.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +set -ex + +echo "int main() {}" | clang $(llvm-config --cflags) -x c - -o /dev/null diff --git a/tests/tests.yml b/tests/tests.yml index dbfde2e..7f13ad3 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -5,7 +5,11 @@ - classic required_packages: - llvm-test + # Required for clang-llvm-config test + - clang + - llvm tests: - regression-tests: dir: ./ run: /usr/libexec/tests/llvm/run-lit-tests --threads 1 + - clang-llvm-config