libllvm3.2 3.2-2ubuntu3 upgrade (r600-snapshot.diff) breaks ABI, makes clang emit crashing code
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
llvm-3.2 (Ubuntu) |
Fix Released
|
Critical
|
Timo Aaltonen | ||
Raring |
Fix Released
|
Critical
|
Timo Aaltonen |
Bug Description
The libllvm3.2 3.2-2ubuntu2 → 3.2-2ubuntu3 upgrade, which added r600-snapshot.diff, has broken the ABI in such a way that clang now emits code that crashes at runtime!
$ cat catch.cc
struct E {};
int main()
{
try {
throw E();
} catch (E e) {
}
return 0;
}
$ clang++ catch.cc -o catch
$ ./catch
$ sudo aptitude upgrade libllvm3.2
…
Preparing to replace libllvm3.2:amd64 3.2-2ubuntu2 (using .../libllvm3.
…
$ clang++ catch.cc -o catch
$ ./catch
Segmentation fault (core dumped)
Comparing the generated LLVM source, the difference is that a call to llvm.eh.typeid.for has been replaced with a bogus call to llvm.eh.
ABI breaks need to be accompanied with a corresponding soname bump.
ProblemType: Bug
DistroRelease: Ubuntu 13.04
Package: libllvm3.2 3.2-2ubuntu3
ProcVersionSign
Uname: Linux 3.8.0-7-generic x86_64
NonfreeKernelMo
ApportVersion: 2.8-0ubuntu4
Architecture: amd64
Date: Fri Feb 22 02:41:38 2013
EcryptfsInUse: Yes
InstallationDate: Installed on 2010-12-05 (809 days ago)
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Alpha amd64 (20101202)
MarkForUpload: True
SourcePackage: llvm-3.2
UpgradeStatus: Upgraded to raring on 2012-11-15 (98 days ago)
Related branches
Changed in llvm-3.2 (Ubuntu): | |
importance: | Undecided → Critical |
milestone: | none → ubuntu-13.04-beta-1 |
Changed in llvm-3.2 (Ubuntu Raring): | |
assignee: | nobody → Timo Aaltonen (tjaalton) |
Status changed to 'Confirmed' because the bug affects multiple users.