From 46e006a53ea32e4296131a638a78ee43ee4b4275 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 27 Feb 2020 01:47:44 +0000 Subject: [PATCH] 11.0.0-rc1 Release --- .gitignore | 4 + ...or-writing-CET-enabled-assembly-code.patch | 146 ------------------ ...ltiple-config-options-if-filenames-a.patch | 64 -------- ...clang-Don-t-install-static-libraries.patch | 22 +-- clang.spec | 19 ++- sources | 8 +- 6 files changed, 28 insertions(+), 235 deletions(-) delete mode 100644 0001-Add-cet.h-for-writing-CET-enabled-assembly-code.patch delete mode 100644 0001-Driver-Accept-multiple-config-options-if-filenames-a.patch diff --git a/.gitignore b/.gitignore index a858158..542c727 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,7 @@ /clang-tools-extra-10.0.0.src.tar.xz.sig /clang-tools-extra-10.0.0.src.tar.xz /clang-10.0.0.src.tar.xz +/clang-11.0.0rc1.src.tar.xz +/clang-tools-extra-11.0.0rc1.src.tar.xz +/clang-tools-extra-11.0.0rc1.src.tar.xz.sig +/clang-11.0.0rc1.src.tar.xz.sig diff --git a/0001-Add-cet.h-for-writing-CET-enabled-assembly-code.patch b/0001-Add-cet.h-for-writing-CET-enabled-assembly-code.patch deleted file mode 100644 index 552de9e..0000000 --- a/0001-Add-cet.h-for-writing-CET-enabled-assembly-code.patch +++ /dev/null @@ -1,146 +0,0 @@ -From bcc0c894f38fd8b43af521e356a167b1a12dd497 Mon Sep 17 00:00:00 2001 -From: Xiang1 Zhang -Date: Tue, 19 May 2020 13:29:30 +0800 -Subject: [PATCH] Add cet.h for writing CET-enabled assembly code - -Summary: -Add x86 feature with IBT and/or SHSTK bits to ELF program property if they are enabled. Otherwise, contents in this header file are unused. -This file is mainly design for assembly source code which want to enable CET - -Reviewers: hjl.tools, annita.zhang, LuoYuanke, craig.topper, tstellar, pengfei, rsmith - -Reviewed By: LuoYuanke - -Subscribers: cfe-commits, mgorny - -Tags: #clang - -Differential Revision: https://reviews.llvm.org/D79617 ---- - clang/lib/Headers/CMakeLists.txt | 1 + - clang/lib/Headers/cet.h | 66 ++++++++++++++++++++++++++++++++++++++++ - clang/test/CodeGen/asm-cet.S | 27 ++++++++++++++++ - 3 files changed, 94 insertions(+) - create mode 100644 clang/lib/Headers/cet.h - create mode 100644 clang/test/CodeGen/asm-cet.S - -diff --git a/clang/lib/Headers/CMakeLists.txt b/clang/lib/Headers/CMakeLists.txt -index 60d359f..c5215ee 100644 ---- a/clang/lib/Headers/CMakeLists.txt -+++ b/clang/lib/Headers/CMakeLists.txt -@@ -46,6 +46,7 @@ set(files - __clang_cuda_math_forward_declares.h - __clang_cuda_runtime_wrapper.h - cetintrin.h -+ cet.h - cldemoteintrin.h - clzerointrin.h - cpuid.h -diff --git a/clang/lib/Headers/cet.h b/clang/lib/Headers/cet.h -new file mode 100644 -index 0000000..ffb19de ---- /dev/null -+++ b/clang/lib/Headers/cet.h -@@ -0,0 +1,66 @@ -+/*===------ cet.h -Control-flow Enforcement Technology feature ------------=== -+ * Add x86 feature with IBT and/or SHSTK bits to ELF program property if they -+ * are enabled. Otherwise, contents in this header file are unused. This file -+ * is mainly design for assembly source code which want to enable CET. -+ * -+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -+ * See https://llvm.org/LICENSE.txt for license information. -+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -+ * -+ *===-----------------------------------------------------------------------=== -+ */ -+#ifndef __CET_H -+#define __CET_H -+ -+#ifdef __ASSEMBLER__ -+ -+#ifndef __CET__ -+# define _CET_ENDBR -+#endif -+ -+#ifdef __CET__ -+ -+# ifdef __LP64__ -+# if __CET__ & 0x1 -+# define _CET_ENDBR endbr64 -+# else -+# define _CET_ENDBR -+# endif -+# else -+# if __CET__ & 0x1 -+# define _CET_ENDBR endbr32 -+# else -+# define _CET_ENDBR -+# endif -+# endif -+ -+ -+# ifdef __LP64__ -+# define __PROPERTY_ALIGN 3 -+# else -+# define __PROPERTY_ALIGN 2 -+# endif -+ -+ .pushsection ".note.gnu.property", "a" -+ .p2align __PROPERTY_ALIGN -+ .long 1f - 0f /* name length. */ -+ .long 4f - 1f /* data length. */ -+ /* NT_GNU_PROPERTY_TYPE_0. */ -+ .long 5 /* note type. */ -+0: -+ .asciz "GNU" /* vendor name. */ -+1: -+ .p2align __PROPERTY_ALIGN -+ /* GNU_PROPERTY_X86_FEATURE_1_AND. */ -+ .long 0xc0000002 /* pr_type. */ -+ .long 3f - 2f /* pr_datasz. */ -+2: -+ /* GNU_PROPERTY_X86_FEATURE_1_XXX. */ -+ .long __CET__ -+3: -+ .p2align __PROPERTY_ALIGN -+4: -+ .popsection -+#endif -+#endif -+#endif -diff --git a/clang/test/CodeGen/asm-cet.S b/clang/test/CodeGen/asm-cet.S -new file mode 100644 -index 0000000..3644ed7 ---- /dev/null -+++ b/clang/test/CodeGen/asm-cet.S -@@ -0,0 +1,27 @@ -+// REQUIRES: x86-registered-target -+// RUN: %clang --target=x86_64-pc-linux -fcf-protection -include cet.h -c %s -o - | llvm-readelf -n | FileCheck %s -+// RUN: %clang --target=x86_64-pc-linux -include cet.h -c %s -o - | llvm-readelf -S | FileCheck %s --check-prefixes=NOCET -+// RUN: %clang --target=x86_64-pc-linux -include cet.h -S %s -o - | FileCheck %s --check-prefixes=NOENDBR -+// RUN: %clang --target=x86_64-pc-linux -fcf-protection -include cet.h -S %s -o - | FileCheck %s --check-prefixes=ENDBR64 -+ -+// RUN: %clang --target=i386-pc-linux -fcf-protection -include cet.h -c %s -o - | llvm-readelf -n | FileCheck %s -+// RUN: %clang --target=i386-pc-linux -include cet.h -c %s -o - | llvm-readelf -S | FileCheck %s --check-prefixes=NOCET -+// RUN: %clang --target=i386-pc-linux -include cet.h -S %s -o - | FileCheck %s --check-prefixes=NOENDBR -+// RUN: %clang --target=i386-pc-linux -fcf-protection -include cet.h -S %s -o - | FileCheck %s --check-prefixes=ENDBR32 -+ -+// CHECK: IBT, SHSTK -+ -+// NOCET: Section Headers -+// NOCET-NOT: .note.gnu.property -+ -+// NOENDBR: foo -+// NOENDBR-NOT: endbr -+ -+// ENDBR64: endbr64 -+// ENDBR32: endbr32 -+ .text -+ .globl foo -+ .type foo, @function -+foo: -+ _CET_ENDBR -+ ret --- -1.8.3.1 - diff --git a/0001-Driver-Accept-multiple-config-options-if-filenames-a.patch b/0001-Driver-Accept-multiple-config-options-if-filenames-a.patch deleted file mode 100644 index 8e11d46..0000000 --- a/0001-Driver-Accept-multiple-config-options-if-filenames-a.patch +++ /dev/null @@ -1,64 +0,0 @@ -From d970ab63e22eb5918774953da6b99ac27e5832a0 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 16 Jun 2020 11:20:20 -0700 -Subject: [PATCH] Driver: Accept multiple --config options if filenames are the - same - -Summary: -We're trying to use the --config options to pass distro specific -options for Fedora via the CFLAGS variable. However, some projects -end up using the CFLAGS variable multiple times in their command line, -which leads to an error when --config is used. - -This patch resolves this issue by allowing more than one --config option -on the command line as long as the file names are the same. - -Reviewers: sepavloff, hfinkel - -Reviewed By: sepavloff - -Subscribers: cfe-commits, llvm-commits - -Tags: #clang - -Differential Revision: https://reviews.llvm.org/D81424 ---- - clang/lib/Driver/Driver.cpp | 8 ++++++-- - clang/test/Driver/config-file.c | 5 +++++ - 2 files changed, 11 insertions(+), 2 deletions(-) - -diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp -index 3add665..a8442d2 100644 ---- a/clang/lib/Driver/Driver.cpp -+++ b/clang/lib/Driver/Driver.cpp -@@ -833,8 +833,12 @@ bool Driver::loadConfigFile() { - std::vector ConfigFiles = - CLOptions->getAllArgValues(options::OPT_config); - if (ConfigFiles.size() > 1) { -- Diag(diag::err_drv_duplicate_config); -- return true; -+ if (!std::all_of( -+ ConfigFiles.begin(), ConfigFiles.end(), -+ [ConfigFiles](std::string s) { return s == ConfigFiles[0]; })) { -+ Diag(diag::err_drv_duplicate_config); -+ return true; -+ } - } - - if (!ConfigFiles.empty()) { -diff --git a/clang/test/Driver/config-file.c b/clang/test/Driver/config-file.c -index 04127d4..fde7260 100644 ---- a/clang/test/Driver/config-file.c -+++ b/clang/test/Driver/config-file.c -@@ -71,3 +71,8 @@ - // RUN: %clang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 --config config-4 -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-PRECEDENCE - // CHECK-PRECEDENCE: Configuration file: {{.*}}Inputs{{.}}config2{{.}}config-4.cfg - // CHECK-PRECEDENCE: -Wall -+ -+ -+//--- Duplicate --config options are allowed if the value is the same -+// RUN: %clang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 --config config-4 --config config-4 -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-SAME-CONFIG -+// CHECK-SAME-CONFIG: Configuration file: {{.*}}Inputs{{.}}config2{{.}}config-4.cfg --- -1.8.3.1 - diff --git a/0001-clang-Don-t-install-static-libraries.patch b/0001-clang-Don-t-install-static-libraries.patch index 4bf7d35..8c80dd3 100644 --- a/0001-clang-Don-t-install-static-libraries.patch +++ b/0001-clang-Don-t-install-static-libraries.patch @@ -1,4 +1,4 @@ -From 856b789b9de0895786ba23681c4337172676e01e Mon Sep 17 00:00:00 2001 +From 8097a9d4295dbc39cbd541ccace7bc5884852366 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 31 Jan 2020 11:04:57 -0800 Subject: [PATCH] clang: Don't install static libraries @@ -8,18 +8,18 @@ Subject: [PATCH] clang: Don't install static libraries 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake -index cbd618e..9cf076a 100644 +index 704278a0e93..1737b24a2bc 100644 --- a/clang/cmake/modules/AddClang.cmake +++ b/clang/cmake/modules/AddClang.cmake -@@ -97,7 +97,7 @@ macro(add_clang_library name) - if(TARGET ${name}) - target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS}) +@@ -111,7 +111,7 @@ macro(add_clang_library name) + if(TARGET ${lib}) + target_link_libraries(${lib} INTERFACE ${LLVM_COMMON_LIBS}) -- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN) -+ if (ARG_SHARED AND (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)) - set(export_to_clangtargets) - if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR - "clang-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR +- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN) ++ if (ARG_SHARED AND (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)) + set(export_to_clangtargets) + if(${lib} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR + "clang-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR -- -1.8.3.1 +2.18.1 diff --git a/clang.spec b/clang.spec index 575bbe0..4e37672 100644 --- a/clang.spec +++ b/clang.spec @@ -1,10 +1,10 @@ %global compat_build 0 -%global maj_ver 10 +%global maj_ver 11 %global min_ver 0 %global patch_ver 0 -#%%global rc_ver 6 -%global baserelease 11 +%global rc_ver 1 +%global baserelease 0.1 %global clang_tools_binaries \ %{_bindir}/clang-apply-replacements \ @@ -13,7 +13,6 @@ %{_bindir}/clang-doc \ %{_bindir}/clang-extdef-mapping \ %{_bindir}/clang-format \ - %{_bindir}/clang-import-test \ %{_bindir}/clang-include-fixer \ %{_bindir}/clang-move \ %{_bindir}/clang-offload-bundler \ @@ -98,12 +97,9 @@ Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc Patch4: 0002-gtest-reorg.patch Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch -Patch14: 0001-clang-fix-undefined-behaviour-in-RawComment-getForma.patch # Not Upstream Patch15: 0001-clang-Don-t-install-static-libraries.patch -Patch16: 0001-Driver-Accept-multiple-config-options-if-filenames-a.patch -Patch17: 0001-Add-cet.h-for-writing-CET-enabled-assembly-code.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -257,10 +253,7 @@ pathfix.py -i %{__python3} -pn \ %patch4 -p1 -b .gtest %patch11 -p1 -b .libcxx-fix %patch13 -p2 -b .unwind-all -%patch14 -p2 -b .clangd %patch15 -p2 -b .no-install-static -%patch16 -p2 -b .config-multiple -%patch17 -p2 -b .cet.h mv ../%{clang_tools_srcdir} tools/extra @@ -408,6 +401,9 @@ popd %endif +# Remove clang-tidy headers. We don't ship the libraries for these. +rm -Rvf %{buildroot}%{_includedir}/clang-tidy/ + %check %if !0%{?compat_build} # requires lit.py from LLVM utilities @@ -491,6 +487,9 @@ LD_LIBRARY_PATH=%{buildroot}/%{_libdir} %cmake_build --target check-all || \ %endif %changelog +* Mon Aug 10 2020 Tom Stellard - 11.0.0-0.1.rc1 +- 11.0.0-rc1 Release + * Tue Aug 04 2020 Tom Stellard - 10.0.0-11 - Remove Requires: emacs-filesystem diff --git a/sources b/sources index 2f30f80..9ddc7ba 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (clang-10.0.0.src.tar.xz.sig) = cb46d9c616de9ba6e11602269f93a003fc24951b75844d2d62ad7c435bd9ace0357bf396141b9a3e97034f617ad8f301a1a5556a3feb94b17647f8b76c0b6236 -SHA512 (clang-tools-extra-10.0.0.src.tar.xz.sig) = f0527b315ce9f2c86a19dabd462d0d466ac0843262f06d5f2b69333f77457ec9cb99f8ce9fdaa00048dfaec3de5613fb884c4259acd4a75463ba3c6714e35423 -SHA512 (clang-tools-extra-10.0.0.src.tar.xz) = 33b6019e64e9ac94bd7c000b77a4a927602a2705baa9b370e392a56b53fe09c8dad1ff7d583892729e9eb291440433ad7d71df768a96d927e4dbc1988fc01d99 -SHA512 (clang-10.0.0.src.tar.xz) = b1cccc13c46abcda3d689f51d486fa613ecec40c581c72d8b15951715100a2b8fb24370161601e6716cdba5a784337439e99ec2f0766f988e9cce92de6d775da +SHA512 (clang-11.0.0rc1.src.tar.xz) = b526c2a9cd53a928d8c01965a37557999653e7c3af26f97f53dd46f9f1133250ae83bfb84148d5e8cfae9ff728973669f5cca2e1e7cde7a758f577e6e8a214ae +SHA512 (clang-tools-extra-11.0.0rc1.src.tar.xz) = d1edb7ef676fc261ef7fdeab0cd4ae009b575cab416e9b9947705a7e3640c45de73bfc9d87f833770c3f5aca3000f31459fb9bb043aeae6177bf67d104dc4236 +SHA512 (clang-tools-extra-11.0.0rc1.src.tar.xz.sig) = 5d884da912f2d3e0b67231d9d08438d430593da1d46f9f878f3cfe710dddb41ae89bb823a05240851de1e6634d219631818a205c85fab76a3373810e2613c758 +SHA512 (clang-11.0.0rc1.src.tar.xz.sig) = 68ec822dcba32891aa9166dc70fec8c005b8c704730c23ae3af56edf6094df1d2933e0e96bcbf5c66e0ac1d50e70fb5b2f2cdc1991b73adab581b581815727e6