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: <20170621165832.GB52338@google.com>
Date:   Wed, 21 Jun 2017 09:58:32 -0700
From:   Matthias Kaehlcke <mka@...omium.org>
To:     Arnd Bergmann <arnd@...db.de>
Cc:     Masahiro Yamada <yamada.masahiro@...ionext.com>,
        Doug Anderson <dianders@...omium.org>,
        Michal Marek <mmarek@...e.com>,
        Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Grant Grundler <grundler@...omium.org>,
        Greg Hackmann <ghackmann@...gle.com>,
        Michael Davidson <md@...gle.com>,
        Nick Desaulniers <ndesaulniers@...gle.com>,
        Alexander Potapenko <glider@...gle.com>,
        Bernhard Rosenkränzer <bero@...aro.org>
Subject: Re: [PATCH 2/2] kbuild: clang: Disable the
 'duplicate-decl-specifier' warning

El Wed, Jun 21, 2017 at 12:11:55PM +0200 Arnd Bergmann ha dit:

> On Wed, Jun 21, 2017 at 11:11 AM, Masahiro Yamada
> <yamada.masahiro@...ionext.com> wrote:
> > 2017-05-24 17:21 GMT+09:00 Arnd Bergmann <arnd@...db.de>:
> >> On Wed, May 24, 2017 at 2:04 AM, Matthias Kaehlcke <mka@...omium.org> wrote:
> >>> El Wed, May 17, 2017 at 11:45:29AM -0700 Matthias Kaehlcke ha dit:
> >>>> El Wed, May 17, 2017 at 09:35:57AM +0200 Arnd Bergmann ha dit:
> >>>> > On Tue, May 16, 2017 at 11:41 PM, Doug Anderson <dianders@...omium.org> wrote:
> >>> It seems the duplicate-decl-specifier warning targets specifically C89:
> >>>
> >>> "The same type qualifier shall not appear more than once in the same
> >>> specifier list or qualifier list, either directly or via one or more
> >>> typedefs."
> >>>
> >>> C89 (6.5.3)
> >>>
> >>> gcc also raises a warning when '-pedantic' is specified and
> >>> -std=gnu89/c89 (or unspecified), but not with -std=gnu99/c99.
> >>>
> >>> This bug might help to shed more light on this:
> >>> https://bugs.llvm.org/show_bug.cgi?id=32985
> >>
> >> I also notice that neither compiler differentiates between a)
> >>
> >> typedef const int cint;
> >> const cint i;
> >>
> >> and b)
> >> const int i;
> >> const typeof(a) j;
> >>
> >> I would have expected a warning for a) but not b), but both 'clang --std=gnu89'
> >> and 'gcc --pedantic --std=gnu89' warn about both of b as well, and don't warn
> >> for newer standards.
> >>
> >>        Arnd
> >
> >
> >
> >
> > I think we agreed to apply 1/2.
> >
> > How about 2/2?
> >
> > I think we mostly discussed preferable behavior of -Wduplicate-decl-specifier,
> > but we did not come up with an idea to solve the problem for
> > already shipped clang versions.
> > (BTW, we have not defined the minimal supported version of clang yet.)

I think it will have to be a future version. There is still an issue
affecting at least llist_for_each_entry_safe(), where clang optimizes
away a check for check for a NULL pointer. For gcc this optimization
is switched off with -fno-delete-null-pointer-check, clang currently
does not have this flag or an equivalent.

For now a workaround like this is needed for newer kernels:

https://android-git.linaro.org/kernel/hikey-clang.git/commit/?h=android-hikey-linaro-4.9-clang&id=4f3c3c1e7b153e333603be74d786d79bb872e8ff

For arm64 at least one other clang fix is missing, to make
-mgeneral-regs-only consistent with gcc
(https://bugs.llvm.org/show_bug.cgi?id=30792)

> I see that container_of() has been modified in linux-next and no longer adds
> the 'const' keyword, do we actually still need the patch?

There is still (at least) the case of const arrays passed to
MODULE_DEVICE_TABLE.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ