[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.

-- 
Mehdi


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...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171128/f685accd/attachment.html>


More information about the llvm-dev mailing list