lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b2055eab-4762-5fbf-8ea6-0956a0a2eb58@quicinc.com>
Date:   Wed, 1 Mar 2023 14:33:00 -0800
From:   John Moon <quic_johmoo@...cinc.com>
To:     Nick Desaulniers <ndesaulniers@...gle.com>
CC:     Masahiro Yamada <masahiroy@...nel.org>,
        Nathan Chancellor <nathan@...nel.org>,
        Nicolas Schier <nicolas@...sle.eu>,
        <linux-kbuild@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        <linux-arm-kernel@...ts.infradead.org>,
        <linux-arm-msm@...r.kernel.org>,
        "Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
        Randy Dunlap <rdunlap@...radead.org>,
        Arnd Bergmann <arnd@...db.de>,
        Bjorn Andersson <andersson@...nel.org>,
        Todd Kjos <tkjos@...gle.com>,
        Matthias Maennich <maennich@...gle.com>,
        Giuliano Procida <gprocida@...gle.com>,
        <kernel-team@...roid.com>, <libabigail@...rceware.org>,
        Jordan Crouse <jorcrous@...zon.com>,
        Trilok Soni <quic_tsoni@...cinc.com>,
        "Satya Durga Srinivasu Prabhala" <quic_satyap@...cinc.com>,
        Elliot Berman <quic_eberman@...cinc.com>
Subject: Re: [PATCH v2 0/2] Validating UAPI backwards compatibility

On 3/1/2023 11:24 AM, John Moon wrote:
> On 3/1/2023 10:03 AM, John Moon wrote:
>> On 3/1/2023 9:50 AM, Nick Desaulniers wrote:
>>> On Tue, Feb 28, 2023 at 11:54 PM John Moon <quic_johmoo@...cinc.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. :)
> 
> With some additional internal testing, we've found that clang does not 
> work with this script on Ubuntu 18.04, but does work on Ubuntu 20.04. 
> This is controlling for the clang version and different installation 
> sources. The same clang-15 binary run on an 18.04 host fails while 
> working on 20.04.
> 
> We'll investigate some more internally and potentially file a bug with 
> upstream clang.

With some additional help from Nick offline, we determined that the 
issue isn't with clang, but with libdw (from elfutils). You need at 
least libdw version 0.171 for the abidiff tool to work correctly with 
clang (in this particular case). Ubuntu 18.04 ships with version 0.170.

If there's any interest, it'd be fairly easy to add a check for this 
condition under the check_deps() function in the script.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ