Your message dated Sat, 24 Feb 2018 19:50:33 +0000
with message-id <[email protected]>
and subject line Bug#890401: fixed in llvm-toolchain-6.0 1:6.0~+rc3-1
has caused the Debian Bug report #890401,
regarding llvm-toolchain-4.0: Please include patch to fix code generation on
sparc64
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
890401: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890401
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: llvm-toolchain-4.0
Version: 1:4.0.1-10
Severity: normal
Tags: patch
User: [email protected]
Usertags: sparc64
Hello!
In order to get the Rust compiler work on sparc64, we need another
LLVM patch which is currently being upstreamed [1] which fixes the
code generation on sparc64.
Without the patch, LLVM generates invalid code that binutils stumbles
over and crashes with an internal error [2]. With the patch merged,
LLVM is working properly and allows a full native build of the Rust
compiler on sparc64 :).
Since Rust upstream is currently still on LLVM 4.0, even for Rust
1.24, it would be nice to have the patch merged for the 4.0 version
as well as the 6.0 version of the llvm-toolchain package. Although
we are going to convince upstream to backport the patch for 6.0.
Thanks,
Adrian
> [1] https://reviews.llvm.org/D43271
> [2] https://sourceware.org/bugzilla/show_bug.cgi?id=22832
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - [email protected]
`. `' Freie Universitaet Berlin - [email protected]
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Description: [Sparc] Include __tls_get_addr in symbol table for TLS calls to it
Global Dynamic and Local Dynamic call relocations only implicitly
reference __tls_get_addr, but it still needs to be in the symbol table
to be bound at link time otherwise it fails to link. For details, see
https://sourceware.org/bugzilla/show_bug.cgi?id=22832.
Author: James Clarke <[email protected]>
Last-Update: 2018-02-14
--- llvm-toolchain-4.0-4.0.1.orig/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
+++ llvm-toolchain-4.0-4.0.1/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
@@ -194,14 +194,30 @@ static void fixELFSymbolsInTLSFixupsImpl
void SparcMCExpr::fixELFSymbolsInTLSFixups(MCAssembler &Asm) const {
switch(getKind()) {
default: return;
+ case VK_Sparc_TLS_GD_CALL:
+ case VK_Sparc_TLS_LDM_CALL: {
+ // The corresponding relocations reference __tls_get_addr, as they call it,
+ // but this is only implicit; there is no connection in the ELF file
+ // between the relocation and the symbol, other than the specification for
+ // the semantics of the relocations. However, the symbol must be included
+ // in our symbol table despite the lack of references to it, since it needs
+ // to be bound during linking for these relocations. For details see
+ // https://sourceware.org/bugzilla/show_bug.cgi?id=22832.
+ MCSymbol *Symbol = Asm.getContext().getOrCreateSymbol("__tls_get_addr");
+ Asm.registerSymbol(*Symbol);
+ auto ELFSymbol = cast<MCSymbolELF>(Symbol);
+ if (!ELFSymbol->isBindingSet()) {
+ ELFSymbol->setBinding(ELF::STB_GLOBAL);
+ ELFSymbol->setExternal(true);
+ }
+ LLVM_FALLTHROUGH;
+ }
case VK_Sparc_TLS_GD_HI22:
case VK_Sparc_TLS_GD_LO10:
case VK_Sparc_TLS_GD_ADD:
- case VK_Sparc_TLS_GD_CALL:
case VK_Sparc_TLS_LDM_HI22:
case VK_Sparc_TLS_LDM_LO10:
case VK_Sparc_TLS_LDM_ADD:
- case VK_Sparc_TLS_LDM_CALL:
case VK_Sparc_TLS_LDO_HIX22:
case VK_Sparc_TLS_LDO_LOX10:
case VK_Sparc_TLS_LDO_ADD:
--- End Message ---
--- Begin Message ---
Source: llvm-toolchain-6.0
Source-Version: 1:6.0~+rc3-1
We believe that the bug you reported is fixed in the latest version of
llvm-toolchain-6.0, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Sylvestre Ledru <[email protected]> (supplier of updated llvm-toolchain-6.0
package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Sat, 24 Feb 2018 16:57:42 +0100
Source: llvm-toolchain-6.0
Binary: clang-6.0 clang-tools-6.0 clang-format-6.0 clang-tidy-6.0 clang-6.0-doc
libclang1-6.0 libclang1-6.0-dbg libclang-6.0-dev libclang-common-6.0-dev
libfuzzer-6.0-dev python-clang-6.0 clang-6.0-examples libllvm6.0 libllvm6.0-dbg
llvm-6.0 llvm-6.0-runtime llvm-6.0-dev llvm-6.0-tools llvm-6.0-doc
llvm-6.0-examples lld-6.0 liblld-6.0 liblld-6.0-dev lldb-6.0 liblldb-6.0
liblldb-6.0-dbg python-lldb-6.0 liblldb-6.0-dev
Architecture: source
Version: 1:6.0~+rc3-1
Distribution: unstable
Urgency: medium
Maintainer: LLVM Packaging Team <[email protected]>
Changed-By: Sylvestre Ledru <[email protected]>
Description:
clang-6.0 - C, C++ and Objective-C compiler
clang-6.0-doc - C, C++ and Objective-C compiler - Documentation
clang-6.0-examples - Clang examples
clang-format-6.0 - Tool to format C/C++/Obj-C code
clang-tidy-6.0 - clang-based C++ linter tool
clang-tools-6.0 - clang-based tools for C/C++ developments
libclang-6.0-dev - clang library - Development package
libclang-common-6.0-dev - clang library - Common development package
libclang1-6.0 - C interface to the clang library
libclang1-6.0-dbg - clang library (debug)
libfuzzer-6.0-dev - Library for coverage-guided fuzz testing
liblld-6.0 - LLVM-based linker, library
liblld-6.0-dev - LLVM-based linker, header files
liblldb-6.0 - Next generation, high-performance debugger, library
liblldb-6.0-dbg - Next generation, high-performance debugger, debugging
libraries
liblldb-6.0-dev - Next generation, high-performance debugger, header files
libllvm6.0 - Modular compiler and toolchain technologies, runtime library
libllvm6.0-dbg - Modular compiler and toolchain technologies, debugging
libraries
lld-6.0 - LLVM-based linker
lldb-6.0 - Next generation, high-performance debugger
llvm-6.0 - Modular compiler and toolchain technologies
llvm-6.0-dev - Modular compiler and toolchain technologies, libraries and
header
llvm-6.0-doc - Modular compiler and toolchain technologies, documentation
llvm-6.0-examples - Modular compiler and toolchain technologies, examples
llvm-6.0-runtime - Modular compiler and toolchain technologies, IR interpreter
llvm-6.0-tools - Modular compiler and toolchain technologies, tools
python-clang-6.0 - Clang Python Bindings
python-lldb-6.0 - Next generation, high-performance debugger, python lib
Closes: 890401
Changes:
llvm-toolchain-6.0 (1:6.0~+rc3-1) unstable; urgency=medium
.
* New snapshot release
* Move the VCS to git.
Many thanks to James Clarke for doing the conversion
.
[ John Paul Adrian Glaubitz ]
* Add proposed upstream patch by James Clarke to add the
missing __tls_get_addr symbol to the symbol table for
TLS calls on SPARC (Closes: #890401)
Checksums-Sha1:
27966eb9e535b2c0f041d69918bf43e4bf50ed2a 6953 llvm-toolchain-6.0_6.0~+rc3-1.dsc
e320e888d939b1a94693e7eabfdedd2f59c5407f 812562
llvm-toolchain-6.0_6.0~+rc3.orig-clang-tools-extra.tar.bz2
19cb0b5f2e7c823ebade8b219aafef74f3dd56ed 13249426
llvm-toolchain-6.0_6.0~+rc3.orig-clang.tar.bz2
7433fb4f49371b23e9238173bfba130eafee1115 2152441
llvm-toolchain-6.0_6.0~+rc3.orig-compiler-rt.tar.bz2
52536d7fc0a6db1cca5a13cef16e4326cb7d0a75 844861
llvm-toolchain-6.0_6.0~+rc3.orig-lld.tar.bz2
f044a782c6b585ac78a70dd7aad32bceb0f6924e 11223381
llvm-toolchain-6.0_6.0~+rc3.orig-lldb.tar.bz2
f086f0ca3b824a708f7c2c41c05de383514ef779 3277307
llvm-toolchain-6.0_6.0~+rc3.orig-polly.tar.bz2
cbadecf3559898a03c4db558db8643bf70e116d4 29873720
llvm-toolchain-6.0_6.0~+rc3.orig.tar.bz2
62b3ab37bc883c9bf5bbfa953c71886cf74004cc 66820
llvm-toolchain-6.0_6.0~+rc3-1.debian.tar.xz
1833b0709b1af7b2f59cbd4fc87c696f0cf5d3b4 20807
llvm-toolchain-6.0_6.0~+rc3-1_amd64.buildinfo
Checksums-Sha256:
cf9a605caa1cb078cfd0c463386b89cf228011b81d03278ee46a5a396d5bf21f 6953
llvm-toolchain-6.0_6.0~+rc3-1.dsc
c6a3f04bf6082878875eb29554b2a03cb364afb729b0f76378e7f8b9d2b056d1 812562
llvm-toolchain-6.0_6.0~+rc3.orig-clang-tools-extra.tar.bz2
b554b4dee4e8469e24e42499f9acf9cf469ea64eb90392ce3fae198855ff79e9 13249426
llvm-toolchain-6.0_6.0~+rc3.orig-clang.tar.bz2
370951a3de3e67f48d42e4a2175b0452b2be9d95cf4b7cb17c65b12d101386a4 2152441
llvm-toolchain-6.0_6.0~+rc3.orig-compiler-rt.tar.bz2
876c71a9a8bb889a893dc6cceeca3a21297726a5a214c74993fa4bce7086ebc3 844861
llvm-toolchain-6.0_6.0~+rc3.orig-lld.tar.bz2
69d667fe85cc7c212b36d722b249ba2a07617df199f48174011b8d8bc7b11004 11223381
llvm-toolchain-6.0_6.0~+rc3.orig-lldb.tar.bz2
b0f7e330231bda0e8922ae2a79d0bda5c2aa12f1730378c733dac9fd27a058f2 3277307
llvm-toolchain-6.0_6.0~+rc3.orig-polly.tar.bz2
fa431b7de229e7ffafa4e16cd77ec8f1008e8d49c60b6df066e3b54029387c7c 29873720
llvm-toolchain-6.0_6.0~+rc3.orig.tar.bz2
39a871df53ef2bd6c34a3e03f25fda8be6e3f951936128c126d535e094f50922 66820
llvm-toolchain-6.0_6.0~+rc3-1.debian.tar.xz
1fbb8790d2ca1dbb15f0ec99c115a829d4d94bdf7fd5b37ed597a659bc5d68a0 20807
llvm-toolchain-6.0_6.0~+rc3-1_amd64.buildinfo
Files:
32cdae25130aedf40dc6a7fe81d95724 6953 devel optional
llvm-toolchain-6.0_6.0~+rc3-1.dsc
0f992faa377e8e7fb753d621cafcbd33 812562 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig-clang-tools-extra.tar.bz2
0e1159da694db0dcac098ec4e7b3c267 13249426 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig-clang.tar.bz2
dcf1394288b93fb8fc1d7852c405714a 2152441 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig-compiler-rt.tar.bz2
f498624efba5096885848d3fcc0b2acc 844861 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig-lld.tar.bz2
7d9fb4d68834143f4ca86cb89ee30df3 11223381 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig-lldb.tar.bz2
9166f4ce3913b3c222c7ecb85805b0ed 3277307 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig-polly.tar.bz2
b968ab0ec294994d2dff297966336a74 29873720 devel optional
llvm-toolchain-6.0_6.0~+rc3.orig.tar.bz2
a7f73ced5bba1ce0a520d7c094508829 66820 devel optional
llvm-toolchain-6.0_6.0~+rc3-1.debian.tar.xz
95b947894b9a669e975e926eb6a594ad 20807 devel optional
llvm-toolchain-6.0_6.0~+rc3-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEtg21mU05vsTRqVzPfmUo2nUvG+EFAlqRvSkACgkQfmUo2nUv
G+FmIA//X/F4uyvZurN4r5E57+4A+pe9628/5vcP2paCGnZZ7JWO7e2PsVNPFXT0
Hfilk57Ddng2gPk9IXhrAzfNynvvRLfxfQ7pEdUkemswo2J7vR+4yGWW0QXLznux
EyuKDaXV4dFRNpYxmeqnOy+UTYoiQWF+aANr8X3DYlLC0fENqfCmjrbWBCU4jRpK
68SqltGZ7ZAtlm4hyQBJAyimkvopajDo6MVi0llYj4rRWUYpAV1YyDBEv4piXH4L
ebIdp9AWOgTuMafL8PN3pKUQkkfHPdaMtX5vWO/CQs9oqLrEEjmv/IrPqRY1vdce
H/Ige8tdb3x+xvIIJJ9wGyyyhcV10iFsEShjC5zTTGfXgRxrQz00C6/94KvOb0bf
CjdEhYp1ZdKRLUF2SGPKAMygaU973cFfMCk0HtMXpOA4u4k40d88z1tpEMeS42Xs
ni3AgEd2JhHuYImbTR1cYjZxIedddQZ+NmOsMGR2NbRVXvDSds6IF/A3DAuYkuXL
1hXAUAds1L9wDU3xgkCquTnItkZL4J8pTJcFySyRk5nSC0B3JyhAjx6ZuaR3AIJa
FxlQRqQ+/Yvo+GOUcjoLC58UeJ6aKFTCwTiogMKZvsXLuqHFU7I5LINTXNpauwSf
hwEKScSB4LjXqzfmvEFQHJ61vJilsk5KpmRfHPDZ5dSViFhkx+c=
=hrr1
-----END PGP SIGNATURE-----
--- End Message ---