Merge remote-tracking branch 'origin/10' into 11

This commit is contained in:
Sylvestre Ledru 2020-09-02 13:57:51 +02:00
commit b4b92d6edb
4 changed files with 171 additions and 1 deletions

55
debian/changelog vendored
View File

@ -190,6 +190,61 @@ llvm-toolchain-snapshot (1:11~++20200123111717+04fd2041561-1~exp1) experimental;
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 23 Jan 2020 14:52:30 +0100
llvm-toolchain-10 (1:10.0.1-6) unstable; urgency=medium
* Add debian/* to the copyright file. Uses the same license
as LLVM
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Sep 2020 13:55:46 +0200
llvm-toolchain-10 (1:10.0.1-5) unstable; urgency=medium
[ John Paul Adrian Glaubitz ]
* Use dh-exec to exclude lib/libPolly*.a on powerpc and
powerpcspe from libclang-common-X.Y-dev.install.in
[ Gianfranco Costamagna ]
* autopkgtests: ignore binfmts enable command return value.
-- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 31 Aug 2020 12:28:24 +0200
llvm-toolchain-10 (1:10.0.1-4) unstable; urgency=medium
* Fix testsuite by ignoring binfmts test
(can't be enabled on autopkgtests)
-- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 28 Aug 2020 21:54:05 +0200
llvm-toolchain-10 (1:10.0.1-3) unstable; urgency=medium
* Fix testsuite by enabling binfmts support before using it
(the default is disabled)
-- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 27 Aug 2020 12:42:20 +0200
llvm-toolchain-10 (1:10.0.1-2) unstable; urgency=medium
[ Samuel Thibault ]
* patches/hurd/hurd-cxx-paths.diff: Refresh, some of the factorization was
backported from 11 to 10.
[ Gianfranco Costamagna ]
* debian/patches/mips-force-nomadd4.patch: Apply and rebase patch to disable
nomadd4 on mips* (Closes: #964989)
- thanks Yunqiang Su <wzssyqa@gmail.com> for the patch
[ Steve Langasek ]
* Drop ocaml support on i386, which pulls in a series of packages which
is not reasonable to support.
-- Gianfranco Costamagna <locutusofborg@debian.org> Sun, 23 Aug 2020 22:57:55 +0200
llvm-toolchain-10 (1:10.0.1-1) unstable; urgency=medium
* New release
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 21 Jul 2020 18:29:06 +0200
llvm-toolchain-10 (1:10.0.1~+rc4-1) unstable; urgency=medium
* New RC release (of course, I was wrong)

22
debian/copyright vendored
View File

@ -24,6 +24,28 @@ License: APACHE-2-LLVM-EXCEPTIONS
the License, but only in their entirety and only with respect to the Combined
Software.
Files: debian/*
Copyright: 2003-2020 Sylvestre Ledru and others
License: APACHE-2-LLVM-EXCEPTIONS
On Debian systems the full text of the Apache Software License 2.0 can be
found in the `/usr/share/common-licenses/Apache-2.0' file.
.
---- LLVM Exceptions to the Apache 2.0 License ----
.
As an exception, if, as a result of your compiling your source code, portions
of this Software are embedded into an Object form of such source code, you
may redistribute such embedded portions in such Object form without complying
with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
.
In addition, if you combine or link compiled forms of this Software with
software that is licensed under the GPLv2 ("Combined Software") and if a
court of competent jurisdiction determines that the patent provision (Section
3), the indemnity provision (Section 9) or other Section of the License
conflicts with the conditions of the GPLv2, you may retroactively and
prospectively choose to deem waived or otherwise exclude such Section(s) of
the License, but only in their entirety and only with respect to the Combined
Software.
Files: compiler-rt/lib/BlocksRuntime/*
lldb/tools/debugserver/source/MacOSX/stack_logging.h
Copyright: 2008-2010 Apple, Inc.

92
debian/patches/mips-force-nomadd4.patch vendored Normal file
View File

@ -0,0 +1,92 @@
The MIPS port aims to support the Loongson 3 family of CPUs in addition
of the other MIPS CPUs. On the Loongson 3 family the MADD4 instructions
are fused, while they are not fused on the other MIPS CPUs. In order to
support both, we have to disabled those instructions.
For that, the patch below basically corresponds to the --with-madd4=no
used on the GCC side.
Index: llvm-toolchain-10-10.0.1~+rc4/clang/lib/Basic/Targets/Mips.h
===================================================================
--- llvm-toolchain-10-10.0.1~+rc4.orig/clang/lib/Basic/Targets/Mips.h
+++ llvm-toolchain-10-10.0.1~+rc4/clang/lib/Basic/Targets/Mips.h
@@ -332,6 +332,8 @@
HasMSA = true;
else if (Feature == "+nomadd4")
DisableMadd4 = true;
+ else if (Feature == "-nomadd4")
+ DisableMadd4 = false;
else if (Feature == "+fp64")
FPMode = FP64;
else if (Feature == "-fp64")
Index: llvm-toolchain-10-10.0.1~+rc4/llvm/lib/Target/Mips/MipsSubtarget.cpp
===================================================================
--- llvm-toolchain-10-10.0.1~+rc4.orig/llvm/lib/Target/Mips/MipsSubtarget.cpp
+++ llvm-toolchain-10-10.0.1~+rc4/llvm/lib/Target/Mips/MipsSubtarget.cpp
@@ -79,7 +79,7 @@
InMips16Mode(false), InMips16HardFloat(Mips16HardFloat),
InMicroMipsMode(false), HasDSP(false), HasDSPR2(false), HasDSPR3(false),
AllowMixed16_32(Mixed16_32 | Mips_Os16), Os16(Mips_Os16), HasMSA(false),
- UseTCCInDIV(false), HasSym32(false), HasEVA(false), DisableMadd4(false),
+ UseTCCInDIV(false), HasSym32(false), HasEVA(false), DisableMadd4(true),
HasMT(false), HasCRC(false), HasVirt(false), HasGINV(false),
UseIndirectJumpsHazard(false), StackAlignOverride(StackAlignOverride),
TM(TM), TargetTriple(TT), TSInfo(),
@@ -91,6 +91,9 @@
if (MipsArchVersion == MipsDefault)
MipsArchVersion = Mips32;
+ if (hasMips32r6() || hasMips64r6())
+ DisableMadd4 = false;
+
// Don't even attempt to generate code for MIPS-I and MIPS-V. They have not
// been tested and currently exist for the integrated assembler only.
if (MipsArchVersion == Mips1)
@@ -238,6 +241,7 @@
MipsSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS,
const TargetMachine &TM) {
std::string CPUName = MIPS_MC::selectMipsCPU(TM.getTargetTriple(), CPU);
+ SubtargetFeatures Features(FS);
// Parse features string.
ParseSubtargetFeatures(CPUName, FS);
@@ -260,6 +264,13 @@
report_fatal_error("64-bit code requested on a subtarget that doesn't "
"support it!");
+ for (const std::string &Feature : Features.getFeatures()) {
+ if (Feature == "+nomadd4")
+ DisableMadd4 = true;
+ else if (Feature == "-nomadd4")
+ DisableMadd4 = false;
+ }
+
return *this;
}
Index: llvm-toolchain-10-10.0.1~+rc4/llvm/lib/Target/Mips/Mips.td
===================================================================
--- llvm-toolchain-10-10.0.1~+rc4.orig/llvm/lib/Target/Mips/Mips.td
+++ llvm-toolchain-10-10.0.1~+rc4/llvm/lib/Target/Mips/Mips.td
@@ -205,7 +205,7 @@
"UseTCCInDIV", "false",
"Force the assembler to use trapping">;
-def FeatureMadd4
+def FeatureNoMadd4
: SubtargetFeature<"nomadd4", "DisableMadd4", "true",
"Disable 4-operand madd.fmt and related instructions">;
Index: llvm-toolchain-10-10.0.1~+rc4/llvm/lib/Target/Mips/MipsInstrInfo.td
===================================================================
--- llvm-toolchain-10-10.0.1~+rc4.orig/llvm/lib/Target/Mips/MipsInstrInfo.td
+++ llvm-toolchain-10-10.0.1~+rc4/llvm/lib/Target/Mips/MipsInstrInfo.td
@@ -242,7 +242,7 @@
def HasMSA : Predicate<"Subtarget->hasMSA()">,
AssemblerPredicate<"FeatureMSA">;
def HasMadd4 : Predicate<"!Subtarget->disableMadd4()">,
- AssemblerPredicate<"!FeatureMadd4">;
+ AssemblerPredicate<"!FeatureNoMadd4">;
def HasMT : Predicate<"Subtarget->hasMT()">,
AssemblerPredicate<"FeatureMT">;
def UseIndirectJumpsHazard : Predicate<"Subtarget->useIndirectJumpsHazard()">,

View File

@ -294,7 +294,8 @@ fi
clang-$VERSION -O3 -emit-llvm foo.c -c -o foo.bc
chmod +x foo.bc
# only run if the binfmt is installed correctly
if /usr/sbin/update-binfmts --display llvm-$VERSION-runtime.binfmt &> /dev/null; then
/usr/sbin/update-binfmts --display llvm-$VERSION-runtime.binfmt &> foo.log || true
if grep -q "interpreter = /usr/bin/lli-" foo.log; then
/usr/sbin/update-binfmts --enable llvm-$VERSION-runtime.binfmt || true
if ! ./foo.bc|grep -q "lli foo"; then
echo "executing ./foo.bc failed"