GNU attribute output on errors

Carlos O'Donell carlos@redhat.com
Thu Jul 5 14:43:00 GMT 2018


On 07/04/2018 11:40 PM, Alan Modra wrote:
> On Wed, Jul 04, 2018 at 02:49:16PM -0400, Carlos O'Donell wrote:
>> My opinion is that you should never omit Tag_GNU_Power_ABI_FP.
>>
>> It has to be present to distinguish between:
>>
>> * Don't know? (Old toolchain, no tags).
>>
>> * Don't care (New toolchain, doesn't matter or both ABIs supported).
>>
>> The point is to be able to warn on the "Don't know" case so users can
>> legitimately see and know which objects need to be recompiled in order to
>> better diagnose ABI issues.
>>
>> Such old objects do exist, or they might be written in assembly, and just
>> need to be analyzed and have markup added.
> 
> No existing version of gcc always emits Tag_GNU_Power_ABI_FP.  There
> are other compilers to consider too.

I am sympathetic to other compilers.
 
> That is the cold hard reality that makes a linker warning on "don't
> know" impractical.
 
I don't suggest warning by default on the missing tag, but let me reiterate
again my position:

(1) gcc should always emit the tag.

(2) we should have the capability to warn if the tag is missing.

The goal here is for Fedora or RHEL to compile all of our objects with (1),
thus with everything having markup we can tell developers to turn on the
warning in (2) to get better float128 vs. doubledouble ABI warnings. We could
clean up the false positives as we find them by fixing up whatever is not
marked in the distro.

This will help catch linking with old objects that lack the markup, or new
objects compiled with compilers that don't markup, and should get double checked
by hand.

With the current system we silently link in old objects, or objects from other
compilers without error and fail at runtime. So when we get a failure like this
escalated from support, we literally have to manually inspect all objects from
all vendors. When what we would really like is to ask them to compile with a
special warning flag, and if anything shows up, tell them they need to review
this potentially incompatible "Don't know" objects.

Does that make my position clear?

The ideal here is that once markup is enabled it should always be on and available.

-- 
Cheers,
Carlos.



More information about the Binutils mailing list