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]
Date:   Tue, 31 Mar 2020 02:53:23 -0700
From:   Nathan Chancellor <natechancellor@...il.com>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     linux-kernel@...r.kernel.org, stable@...r.kernel.org,
        Dirk Mueller <dmueller@...e.com>,
        David Gibson <david@...son.dropbear.id.au>,
        Rob Herring <robh@...nel.org>
Subject: Re: [PATCH 5.5 102/170] scripts/dtc: Remove redundant YYLOC global
 declaration

On Tue, Mar 31, 2020 at 10:58:36AM +0200, Greg Kroah-Hartman wrote:
> From: Dirk Mueller <dmueller@...e.com>
> 
> commit e33a814e772cdc36436c8c188d8c42d019fda639 upstream.
> 
> gcc 10 will default to -fno-common, which causes this error at link
> time:
> 
>   (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here
> 
> This is because both dtc-lexer as well as dtc-parser define the same
> global symbol yyloc. Before with -fcommon those were merged into one
> defintion. The proper solution would be to to mark this as "extern",
> however that leads to:
> 
>   dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls]
>    26 | extern YYLTYPE yylloc;
>       |                ^~~~~~
> In file included from dtc-lexer.l:24:
> dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here
>   127 | extern YYLTYPE yylloc;
>       |                ^~~~~~
> cc1: all warnings being treated as errors
> 
> which means the declaration is completely redundant and can just be
> dropped.
> 
> Signed-off-by: Dirk Mueller <dmueller@...e.com>
> Signed-off-by: David Gibson <david@...son.dropbear.id.au>
> [robh: cherry-pick from upstream]
> Cc: stable@...r.kernel.org
> Signed-off-by: Rob Herring <robh@...nel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> 
> ---
>  scripts/dtc/dtc-lexer.l |    1 -
>  1 file changed, 1 deletion(-)
> 
> --- a/scripts/dtc/dtc-lexer.l
> +++ b/scripts/dtc/dtc-lexer.l
> @@ -23,7 +23,6 @@ LINECOMMENT	"//".*\n
>  #include "srcpos.h"
>  #include "dtc-parser.tab.h"
>  
> -YYLTYPE yylloc;
>  extern bool treesource_error;
>  
>  /* CAUTION: this will stop working if we ever use yyless() or yyunput() */
> 
> 

Hi Greg,

Replying here simply because I am not subscribed to the stable-commits
mailing list and there does not appear to be an easy way to reply to one
of those emails through the existing archives because they are not as
nice as lore.kernel.org.

This patch is fine for the current releases in review but 4.4, 4.9, and
4.14 need to have the patch applied to scripts/dtc/dtc-lexer.lex.c_shipped
because prior to commit e039139be8c2 ("scripts/dtc: generate lexer and
parser during build instead of shipping"), that was the file that was
being built. Running the command below in the stable-queue repo works
for me and I have tested all of the patches to make sure they still
apply (albeit with some fuzz).

$ sed -i 's;scripts/dtc/dtc-lexer.l;scripts/dtc/dtc-lexer.lex.c_shipped;g' \
queue-{4.4,4.9,4.14}/scripts-dtc-remove-redundant-yyloc-global-declaration.patch

If you would prefer a set of patches, let me know.

Cheers,
Nathan

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ