7aa0c329ed
[ci:skip-build]: already built successfully in CI
39 lines
1.5 KiB
Diff
39 lines
1.5 KiB
Diff
Based on https://lkml.org/lkml/2020/4/1/1206. In original patch, YYLOC declaration was removed.
|
|
However, using original patch, which removes yylloc declaration on 3.18.14 kernel version results in 'yylloc not declared' error.
|
|
See part of the original description below:
|
|
|
|
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",
|
|
|
|
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
|
|
index 3b41bfca636..9b9c29e6f31 100644
|
|
--- a/scripts/dtc/dtc-lexer.l
|
|
+++ b/scripts/dtc/dtc-lexer.l
|
|
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
|
|
#include "srcpos.h"
|
|
#include "dtc-parser.tab.h"
|
|
|
|
-YYLTYPE yylloc;
|
|
+extern YYLTYPE yylloc;
|
|
|
|
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
|
|
#define YY_USER_ACTION \
|
|
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
|
|
index 2d30f41778b..d0eb405cb81 100644
|
|
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
|
|
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
|
|
@@ -637,7 +637,7 @@ char *yytext;
|
|
#include "srcpos.h"
|
|
#include "dtc-parser.tab.h"
|
|
|
|
-YYLTYPE yylloc;
|
|
+extern YYLTYPE yylloc;
|
|
|
|
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
|
|
#define YY_USER_ACTION \
|