[llvm-dev] ABI Breaking Checks
Mehdi AMINI via llvm-dev
llvm-dev at lists.llvm.org
Tue Nov 28 21:31:41 PST 2017
How can a "weak" definition be a "strong" one!? ;)
I think the reason for "weak" was to not duplicate it. A static would be
duplicated in every translation unit that includes the header right? I
don't know what it means in terms of extra number of relocation, etc.
Also the attribute used will prevent the linker from dead-stripping the
symbol in case of static linking and/or when using LTO.
2017-11-28 14:35 GMT-08:00 David Blaikie <dblaikie at gmail.com>:
> The abi-breaking.h seems to be incompatible with modules, owing to it
> having strong definitions in the header.
> I'm wondering if I can make it compatible by changing the:
> __attribute__((weak, visibility("hidden"))) variables to
> __attribute__((used)) static variables instead? It still seems to produce
> the desired link errors in my basic tests. Does that seem plausible to you?
> (modules have a special case for static variables in headers to support
> things like the iostreams initializer)
> Not sure why the modules buildbots don't see this but google's internal
> build system building with modules does...
> - Dave
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev