Bug 1435825 - [LLNL DT Bug] LLVM ABI incompatibility with GCC
Summary: [LLNL DT Bug] LLVM ABI incompatibility with GCC
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: DevTools
Classification: Red Hat
Component: clang
Version: llvm-toolset-7
Hardware: All
OS: Linux
unspecified
high
Target Milestone: rc
: 2019.4
Assignee: Tom Stellard
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1576505
TreeView+ depends on / blocked
 
Reported: 2017-03-24 22:28 UTC by Ben Woodard
Modified: 2022-07-19 04:51 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-07-19 04:51:33 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 51358 0 P3 NEW incorrect/missing location for function arg, -O0, without VTA 2021-01-05 16:43:35 UTC
GNU Compiler Collection 77379 0 P3 RESOLVED incorrect mangling for non-virtual adjustor thunk (missing abi tag) 2021-01-05 16:43:35 UTC
Red Hat Issue Tracker DTS-90 0 None None None 2022-06-30 23:18:48 UTC
Sourceware 13420 0 P2 RESOLVED prologue detection fails for function parameters in unoptimized (-g only, no -O) code 2021-01-05 16:43:35 UTC
Sourceware 19949 0 P1 NEW Compare locations of function arguments in libabigail 2021-01-05 16:43:35 UTC
Sourceware 21296 0 P2 NEW naive comparison of names of template instantiations leads to false postives 2021-01-05 16:43:35 UTC

Description Ben Woodard 2017-03-24 22:28:30 UTC
Description of problem:
LLNL has had so many problems with ABI compatibility between compilers that they have resorted to recompiling everything with every single compiler that they support. This leads to a huge amount of additional work for developers, packagers and the support team. 

This is a broad tracking bug to address those issues.

Comment 2 Ben Woodard 2017-03-24 22:30:31 UTC
For example we have:
https://bugs.llvm.org//show_bug.cgi?id=23034 which is probably a manifestation of https://bugs.llvm.org//show_bug.cgi?id=19668

When we were trying to look at that we found: https://sourceware.org/bugzilla/show_bug.cgi?id=21296 which is arguably 3 problems. We’ve already gotten the crash fixed. 

The deeper question is why didn’t libabigail pick it up the fact that clang doesn’t follow the correct the calling convention. Evidently calling convetion is one of those things which is assumed in DWARF and ELF and when a compiler doesn’t follow the calling convention, it is very hard to detect. We have a feature request for it:
https://sourceware.org/bugzilla/show_bug.cgi?id=19949 but it is something that is hard to do. One of the ideas is to use the location of parameters as enumerated in the DWARF to infer the calling convention by side effect. However, even GCC doesn’t quite get that right. 
https://sourceware.org/bugzilla/show_bug.cgi?id=13420 Shockingly the quality of the DWARF is better with -O >=2. That is something that you should make note of. In the mean time, we’re working on improving it. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51358


Note You need to log in before you can comment on or make changes to this bug.