New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gcc10 cxx11 abi issue with CLING #32497
Comments
A new Issue was created by @dan131riley Dan Riley. @Dr15Jones, @dpiparo, @silviodonato, @smuzaffar, @makortel, @qliphy can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
assign core |
New categories assigned: core @Dr15Jones,@smuzaffar,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks |
Weird, I thought return values are not part of the ABI since they can be ignored. |
Adding @vgvassilev in case the "old" version of LLVM (5) used for |
After a chat with @zygoloid we believe it is a bug in gcc. If We should report this bug to gcc, if it was not reported. |
That's the godbolt link. The bug is present from gcc10 onward. Clang seems to agree with gcc9. |
@dan131riley Could you follow up with gcc (if you didn't yet)? In the meantime, the issue is worked round in #32528. |
@makortel yes I'll followup with a gcc bug report, probably tomorrow |
@dan131riley Given the (already merged) workaround #32528, is it still beneficial to keep this issue open or could we close it? |
We have a workaround and an open bug report with the gcc developers, so there's no need to keep this ticket open. |
+1 |
This issue is fully signed and ready to be closed. |
gcc devs agreed it’s a bug, fix and regression test are now on the gcc trunk. |
DataFormats/FWLite/test/triggernames_cint.C is failing in gcc10 IBs with the error
The problem appears to be a change in cxx11 ABI propagation in gcc10.
edm::TriggerNames::size()
is defined as:If I run 'nm -C' on the resulting library and look for the routine, I get
and CLING doesn't find it. If I change the definition to:
I get
and the test runs fine. If I do
it compiles ok but fails at link time with a linker undefined reference
So in gcc10,
std::vector<std::string>::size_type
andstd::vector<int>::size_type
are the same type to the compiler but have different ABI linkage, and CLING doesn't know about this.This appears to be new behavior in gcc10. but I haven't found it documented. It also seems weird to me, and may bite us in other ways.
The text was updated successfully, but these errors were encountered: