From 5e6967be511d8f735afa071691cbb3d71f07f5b8 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 30 Mar 2021 14:56:32 -0400 Subject: [PATCH] import clang-11.0.0-1.module+el8.4.0+8598+a071fcd5 --- .clang.metadata | 4 +- .gitignore | 4 +- ...c-toolchains-with-libgcc_s.so-when-n.patch | 132 ++++++++++++++++++ ...clang-Don-t-install-static-libraries.patch | 22 +-- ...0001-clang-Fix-spurious-test-failure.patch | 25 ++++ SOURCES/clang-10.0.0.src.tar.xz.sig | Bin 566 -> 0 bytes SOURCES/clang-11.0.0.src.tar.xz.sig | Bin 0 -> 566 bytes .../clang-tools-extra-10.0.0.src.tar.xz.sig | Bin 566 -> 0 bytes .../clang-tools-extra-11.0.0.src.tar.xz.sig | Bin 0 -> 566 bytes SPECS/clang.spec | 75 ++++++---- 10 files changed, 219 insertions(+), 43 deletions(-) create mode 100644 SOURCES/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch create mode 100644 SOURCES/0001-clang-Fix-spurious-test-failure.patch delete mode 100644 SOURCES/clang-10.0.0.src.tar.xz.sig create mode 100644 SOURCES/clang-11.0.0.src.tar.xz.sig delete mode 100644 SOURCES/clang-tools-extra-10.0.0.src.tar.xz.sig create mode 100644 SOURCES/clang-tools-extra-11.0.0.src.tar.xz.sig diff --git a/.clang.metadata b/.clang.metadata index 33bc102..a41b878 100644 --- a/.clang.metadata +++ b/.clang.metadata @@ -1,3 +1,3 @@ -cfaa4c4e89a45b604e6f3057f984d73365074727 SOURCES/clang-10.0.0.src.tar.xz -e41467d4e8c6afe917c9f9c44b1d6a95a85adadb SOURCES/clang-tools-extra-10.0.0.src.tar.xz +02c87f5e07f2a1c1e2dbb8ce8328f0106d70b10d SOURCES/clang-11.0.0.src.tar.xz +b77dc0494894b997c8f4012debbf0bf469462386 SOURCES/clang-tools-extra-11.0.0.src.tar.xz 32fa4b0193960f05064f2ab31b5a89c7cf48a0b9 SOURCES/hans-gpg-key.asc diff --git a/.gitignore b/.gitignore index 8c8f23b..5665b65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -SOURCES/clang-10.0.0.src.tar.xz -SOURCES/clang-tools-extra-10.0.0.src.tar.xz +SOURCES/clang-11.0.0.src.tar.xz +SOURCES/clang-tools-extra-11.0.0.src.tar.xz SOURCES/hans-gpg-key.asc diff --git a/SOURCES/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch b/SOURCES/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch new file mode 100644 index 0000000..0050b40 --- /dev/null +++ b/SOURCES/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch @@ -0,0 +1,132 @@ +From 67013ee5feecca0c1e1dd8a149b20779a9b6c12a Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Wed, 23 Sep 2020 12:47:30 +0000 +Subject: [PATCH] Driver: Prefer gcc toolchains with libgcc_s.so when not + static linking libgcc + +Fedora ships cross-compilers on all platforms, so a user could end up +with a gcc x86_64 cross-compiler installed on an x86_64 system. clang +maintains a list of supported triples for each target and when all +else is equal will prefer toolchains with triples that appear earlier +in the list. + +The cross-compiler triple on Fedora is x86_64-linux-gnu and this comes +before the Fedora system compiler's triple: x86_64-redhat-linux in +the triples list, so the cross compiler is always preferred. This +is a problem, because the cross compiler is missing libraries, like +libgcc_s.so, that clang expects to be there so linker invocations +will fail. + +This patch fixes this by checking for the existence of libgcc_s.so +when it is required and taking that into account when selecting a +toolchain. +--- + lib/Driver/ToolChains/Gnu.cpp | 16 ++++++++++++++-- + lib/Driver/ToolChains/Gnu.h | 4 +++- + .../usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o | 0 + .../usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o | 0 + .../lib/gcc/x86_64-redhat-linux/7/libgcc_s.so | 0 + test/Driver/linux-ld.c | 12 ++++++++++++ + 6 files changed, 29 insertions(+), 3 deletions(-) + create mode 100644 test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o + create mode 100644 test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o + create mode 100644 test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so + +diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp +index c8a7fce0..f28792b7 100644 +--- a/lib/Driver/ToolChains/Gnu.cpp ++++ b/lib/Driver/ToolChains/Gnu.cpp +@@ -2500,6 +2500,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + (TargetArch == llvm::Triple::x86 && + TargetTriple.getOS() != llvm::Triple::Solaris)}}; + ++ bool NeedLibgccShared = !Args.hasArg(options::OPT_static_libgcc) && ++ !Args.hasArg(options::OPT_static); + for (auto &Suffix : Suffixes) { + if (!Suffix.Active) + continue; +@@ -2517,8 +2519,17 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + continue; // Saw this path before; no need to look at it again. + if (CandidateVersion.isOlderThan(4, 1, 1)) + continue; +- if (CandidateVersion <= Version) +- continue; ++ ++ bool CandidateHasLibGccShared = false; ++ if (CandidateVersion <= Version) { ++ if (NeedLibgccShared && !HasLibGccShared) { ++ CandidateHasLibGccShared = ++ D.getVFS().exists(LI->path() + "/libgcc_s.so"); ++ ++ } ++ if (HasLibGccShared || !CandidateHasLibGccShared) ++ continue; ++ } + + if (!ScanGCCForMultilibs(TargetTriple, Args, LI->path(), + NeedsBiarchSuffix)) +@@ -2532,6 +2543,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + GCCInstallPath = (LibDir + "/" + LibSuffix + "/" + VersionText).str(); + GCCParentLibPath = (GCCInstallPath + "/../" + Suffix.ReversePath).str(); + IsValid = true; ++ HasLibGccShared = CandidateHasLibGccShared; + } + } + } +diff --git a/lib/Driver/ToolChains/Gnu.h b/lib/Driver/ToolChains/Gnu.h +index 52690ab4..2a4452d9 100644 +--- a/lib/Driver/ToolChains/Gnu.h ++++ b/lib/Driver/ToolChains/Gnu.h +@@ -190,6 +190,7 @@ public: + /// Driver, and has logic for fuzzing that where appropriate. + class GCCInstallationDetector { + bool IsValid; ++ bool HasLibGccShared; + llvm::Triple GCCTriple; + const Driver &D; + +@@ -213,7 +214,8 @@ public: + MultilibSet Multilibs; + + public: +- explicit GCCInstallationDetector(const Driver &D) : IsValid(false), D(D) {} ++ explicit GCCInstallationDetector(const Driver &D) ++ : IsValid(false), HasLibGccShared(false), D(D) {} + void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args, + ArrayRef ExtraTripleAliases = None); + +diff --git a/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o b/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o +new file mode 100644 +index 00000000..e69de29b +diff --git a/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o b/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o +new file mode 100644 +index 00000000..e69de29b +diff --git a/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so b/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so +new file mode 100644 +index 00000000..e69de29b +diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c +index ec539522..95725d5c 100644 +--- a/test/Driver/linux-ld.c ++++ b/test/Driver/linux-ld.c +@@ -784,6 +784,18 @@ + // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtend.o" + // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtn.o" + // ++// Check that clang does not select the cross compiler by default on Fedora 28. ++// ++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ ++// RUN: --target=x86_64-unknown-linux-gnu \ ++// RUN: --gcc-toolchain="" \ ++// RUN: --sysroot=%S/Inputs/fedora_28_tree \ ++// RUN: | FileCheck --check-prefix=CHECK-FEDORA-28-X86_64 %s ++// ++// CHECK-FEDORA-28-X86_64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" ++// CHECK-FEDORA-28-X86_64: "[[SYSROOT]]/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o" ++// CHECK-FEDORA-28-X86_64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-redhat-linux/7" ++// + // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ + // RUN: --target=arm-unknown-linux-gnueabi -rtlib=platform \ + // RUN: --gcc-toolchain="" \ +-- +2.25.2 + diff --git a/SOURCES/0001-clang-Don-t-install-static-libraries.patch b/SOURCES/0001-clang-Don-t-install-static-libraries.patch index 4bf7d35..8c80dd3 100644 --- a/SOURCES/0001-clang-Don-t-install-static-libraries.patch +++ b/SOURCES/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/SOURCES/0001-clang-Fix-spurious-test-failure.patch b/SOURCES/0001-clang-Fix-spurious-test-failure.patch new file mode 100644 index 0000000..07c45b6 --- /dev/null +++ b/SOURCES/0001-clang-Fix-spurious-test-failure.patch @@ -0,0 +1,25 @@ +From 5bfce60443b1c3f4066f506e47cbdc7c4263bb10 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 11 Aug 2020 18:32:08 -0700 +Subject: [PATCH] clang: Fix spurious test failure + +--- + clang/test/Driver/crash-report-modules.m | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/clang/test/Driver/crash-report-modules.m b/clang/test/Driver/crash-report-modules.m +index e6d03353379..9519adf6f4b 100644 +--- a/clang/test/Driver/crash-report-modules.m ++++ b/clang/test/Driver/crash-report-modules.m +@@ -19,7 +19,7 @@ + @import simple; + const int x = MODULE_MACRO; + +-// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script. ++// CHECK: PLEASE submit a bug report to {{.*}}and include the crash backtrace, preprocessed source, and associated run script. + // CHECK: Preprocessed source(s) and associated run script(s) are located at: + // CHECK-NEXT: note: diagnostic msg: {{.*}}.m + // CHECK-NEXT: note: diagnostic msg: {{.*}}.cache +-- +2.18.1 + diff --git a/SOURCES/clang-10.0.0.src.tar.xz.sig b/SOURCES/clang-10.0.0.src.tar.xz.sig deleted file mode 100644 index 1fd2d98bb7351838df0128f69a682dfaaa15d281..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SW*e79j+-$oYbTxkTfz)xuK`!vrogTF_ku0$zFikN^q^5D&uy zE;L%uUAHR_`v+9|tT;F^Hslad*FM3v;w6a{1<-<&37%j&RJWNFx)@S>V#vU#GYqDM zdSq$nJfSHOUX~Hgreyiez|)d$KkxK#mwS1~PqhsLBnJ%v(8~nKE)*Ws8yU=y09pA6 zN{OF6CzB34h$)uX>fqSrs3g08bw~OxTb5ToorBFFQb}&bGsxB%Ue6`ino6W8(kg*s zvFKvyWk8A~5<)!&d2y&uc2g5z2HC2-M?x=QS5D&uy zE;L%uT|l1@0G0O`q}nn_y+U3|ZItMJ%WeXThDi?r-W>}vDLey1D#era7WQ+R8$l)x zv$g{wv+RwjgCk9s;BD{OdW!_7cd@N%U#R{?P1RfriBv@=J(#?;mixL)ECqZ+v0!wa z|C44ZrgvF(PnH|Vv~OF@lV5>hSYS{!yYVV1re$)ACH)NZF_i$a_!zb0zbmB5;SO}r z8)*1@>6aKhgu)2~RghCPUVazlwQ%oXI%(iI3to_BCtyQCVDYQ z(#tqeWFHNdUxZdAcU>OJq@zGg&x_bcQmsqpS;Naf0F4CcjggN)nD@?Tv$&ViQS9M8r!F*GaQ+t`Nn!|{jpI$f zT95m+PAf0S)Nxhf9c?&AgyFpp$6rn~8W1|&z06m!o~-#M{GBZrT)HIEeo3hrdaF-3 zALD7vymAz5Wz*alpMOTLy9@S~6CsbJMk+2&49kv$R|+-5RIFKA%v>_Z2nd>m_Jl+s z{!nnsq*WYSDYQAUEoI9M><1=YZ?K1=4Yo-dPyfjJX3L=v3z!<;5CD6we@@oV=!T7( ELX_GDsQ>@~ literal 0 HcmV?d00001 diff --git a/SOURCES/clang-tools-extra-10.0.0.src.tar.xz.sig b/SOURCES/clang-tools-extra-10.0.0.src.tar.xz.sig deleted file mode 100644 index 70b6c07a63c76c09e4da9bdf12f0a4c2965ebc1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SW*e79j+-$oYbTxkTfz)xuK`!vrogTF_ku0$zFilK=_{5D&uy zE;L%uU9Er*{w59abCuM4sMwQN{5XVUm$%>!rdX9SN816qHOc#$P0PD|{8_vFG_*7- zp&asQauhiKcvj6Z(=2AHeCO~pLQvn+k$DQ|BCff@c!|(uyWXM5-QX8xYq%{8`~rk1 z99F>it?|-g|BSIhp#sj#H648~~qdp{&^{`CGK zrK!<^&!o?_!L%k2tZE(KE=*L%0RMfyFQeM@V~&w$!1U=&5o(uo;L^LE-Q z)ITk|%gL{f7WrHt2gkY;`V-x~tl}5SM==4H|8<8cUlOHy{{^#e&HftARz0fNQXygd zf4hFuv}UK%=0G3HK%-K*-`vsUQFY*^G=tWq_S@{DSY8E(UmOzQuV+9L3uLMCTV2)A zBc%~oT3w^T=%PeE|A0#>1&41Y-E*RH|I>I+f!AOR>R=iuNM&oEiA+NCtBqN2o|t(D Epe2tSSO5S3 diff --git a/SOURCES/clang-tools-extra-11.0.0.src.tar.xz.sig b/SOURCES/clang-tools-extra-11.0.0.src.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000..5ff2b0ab2ad7cce4a65158f86e5371a5099375fb GIT binary patch literal 566 zcmV-60?GY}0y6{v0SW*e79j+-$oYbTxkTfz)xuK`!vrogTF_ku0$+p^3;+rV5D&uy zE;L%uU6Py+{S*_EzZt+*6TkUA(sW#COPwU32LAT2Z*0y(`VClu7fN(=z{uYYOp?B$ zlGrjVafmfcxfulaZ9|=6DpdqFFue4Grmyy_hugqL%nXPFI~FB=l`2-)bBR3x1aXp7 znsdr&3;W&QT-9XPcDbSn7;F*}XC>)`955t(lf&nil>n|Ky?$60pdx?OUj&;{RAzov zMAR|Yqo9M{DIrpGCefR1!ZZ_r?AW~ObSi%<;;O~}p?O|apR@)E3}-f(buo*--o%A( z+~`Ig7zAhkm6zn;1A;Y*NOE;EAq|EbOa`nS^LnW`ggy>uHQO4@PhXXo;^YND;qUD; zj3(C2ND1wmaaX6R@YNn&j4{R{ZYuib)HxlBmBCsWR$}G?xKNTK3=R(ju%Qv^Y&8v< zV|2~rvNHCsk(9Uem_ot-`cLz-B``VM^s!}W(8r@gSR z7Io+$(A{BT9vU;zai!!y|23(K_6-4t(m?|WY-VDjD_qybgMKi??*gtFkojZ}nlL&G zXi~+_>x)fy1br^$!0X@(2Qa+Gd_P^b)cw_iL{kYG7vfQ(GW@=Qq|IY5=LvPRznWf@ zc!r4e6O+F6%kA@nz%JFO|9@aC$EQyoXyVbm&N{|4|KD94`Y(4Op