[PATCH v2 0/2] Validating UAPI backwards compatibility

John Moon quic_johmoo at quicinc.com
Wed Mar 1 10:03:58 PST 2023


On 3/1/2023 9:50 AM, Nick Desaulniers wrote:
> On Tue, Feb 28, 2023 at 11:54 PM John Moon <quic_johmoo at quicinc.com> wrote:
>>
>> Currently, the script works with gcc. It generates output like this when
>> a backwards-incompatible change is made to a UAPI header:
>>
>>   !!! ABI differences detected in include/uapi/linux/acct.h (compared to
>>   file at HEAD^1) !!!
>>
>>       [C] 'struct acct' changed:
>>         type size changed from 512 to 544 (in bits)
>>         1 data member insertion:
>>           '__u32 new_val', at offset 512 (in bits) at acct.h:71:1
>>
>>   0/1 UAPI header file changes are backwards compatible
>>   UAPI header ABI check failed
>>
>> However, we have not had success with clang. It seems clang is more
>> aggressive in optimizing dead code away (no matter which options we
>> pass). Therefore, no ABI differences are found.
> 
> Hi John,
> Do you have the list of bugs you've filed upstream against clang wrt.
> information missing when using `-fno-eliminate-unused-debug-types`?
> 
> https://github.com/llvm/llvm-project/issues is the issue tracker.
> 
> Seeing a strong participant in both the Android and LLVM ecosystems
> supply scripts that lack clang support...raises eyebrows.

We have not filed a bug with upstream clang since we're not sure it's 
*not* and issue on our end. Giuliano Procida (CC'd) has tested the 
script with clang 13 and 14 and GCC 10, 11 and 12 and got the expected 
diff. If it's convenient for anyone testing this script to give it a 
whirl with clang and report back, it could help us determine if there's 
a real issue with clang support. :)



More information about the linux-arm-kernel mailing list