From 64acc25ee6443348205e12a7beb68655ac6f110e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 18 May 2021 02:44:13 -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.1.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.1.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 | 74 ++++++---- 10 files changed, 217 insertions(+), 44 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.1.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.1.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 ea84b60..a41b878 100644 --- a/.clang.metadata +++ b/.clang.metadata @@ -1,3 +1,3 @@ -0e61e92b22a620fe7f833fa8b2a56f2db96f7335 SOURCES/clang-10.0.1.src.tar.xz -26c996da082677aca1016bcf2141dbff01dc7300 SOURCES/clang-tools-extra-10.0.1.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 a673a19..5665b65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -SOURCES/clang-10.0.1.src.tar.xz -SOURCES/clang-tools-extra-10.0.1.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.1.src.tar.xz.sig b/SOURCES/clang-10.0.1.src.tar.xz.sig deleted file mode 100644 index 26c50da8a26481b02d7c1ea3bf1f4bbd6d32bd68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SEvc79j*jP9iaCzek0rjBbvi$CRmtL7j>P0$&%0iU0};5TeJF zsfIzFifI)O{vmr@jiWzlL%v?<5{E*xURo3vOwws*phlA*9A4Apf8rw1rRQc3v8ga$ ziFjl{iAe%v1Uf!?WK%8BMN-fX5U;EgHyZb#wVd}Y_o^;*@F!2(D#gw)D)rtq@shoZ zV?edhLIFz3mvm?aC4u2SJX6(1;se@qd1TvV$?*QegFEJabI#W#3=VBE20*rwjEijh z9MY?{LFcFAlSWLGlpvGCv*Zox9-ZIr;U**ZF5UFa)%MUZe>X0M{-gF^ai7LM`{J zN)~P_q*CVxD{&7M7;f`}3(GKd<|K&Gz%$ODtN8(ZB|U5SslpU@NL%P2pyf|dYz6TVEj;W{P+Pb4{704}OCvmm91vKgJ;*N{rU Et=7v4{{R30 diff --git a/SOURCES/clang-11.0.0.src.tar.xz.sig b/SOURCES/clang-11.0.0.src.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000..b5378e033864e1a5b053df63fabbd11e33eebd66 GIT binary patch literal 566 zcmV-60?GY}0y6{v0SW*e79j+-$oYbTxkTfz)xuK`!vrogTF_ku0$+p^2>=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.1.src.tar.xz.sig b/SOURCES/clang-tools-extra-10.0.1.src.tar.xz.sig deleted file mode 100644 index dc5cf4b48aec9fbcf32090eeeffd6a1767c73612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SEvc79j*jP9iaCzek0rjBbvi$CRmtL7j>P0$&%0kpKz_5TeJF zsfIzFiZgEy`U4n1rJ5^K_6H^)sv6%I>Bh}b9XR7we|-yE&xqP#P;i7?S%8d#G#_e3 ziBAIvwiiFUfKzxVD??X>g^`^*dfNv+-kXrHTIdUj*hx`m ziiF@zL9|SbU{nolR;s6iW!NLX4YeoXSQ9K{aK|`Yq`khtQ)cUj;27{R;L-}g3NgoFO(4J- zs-oEUlpEloFK7$vMyVDv$|bqDY2{`8r~H}3ut}3m%SW*G%8J6ksFA_3$qhO9Y%|40 z2jAejgVk~@HO0lY4Xz3!aTnuj1BHn0v3E%(sVGC7p;)i8U^eMZ#wZoXa2?&1b=rE$ zi-w)GmyB_6Pr6OmNa71Y(l^7h-{*rTcr|yiRUyi~5Zksx_a_yW6Q9k|cNR`f%g{dR z;7Gm4tbr`yyU?>ZK#kb5cP0}C?2I7fK%O|)B@t+2GF16{K2dZdxvYGKUiKkJJ5e|r zbL!6%7-An$UF>A9MBPRx+d#WY-c!FI;*(BnL>>|C$chVBQ*{oyAjg$TZSzuNR^|FX E!f$2@t^fc4 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