Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    Ubuntu 22.04 编译报错 multiple definition of 'yylloc';

    V Series
    2
    3
    1962
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • WhycanService
      WhycanService LV 8 last edited by

      c257cad1-be4c-4faf-82ab-54fc4d957641-image.png

      1 Reply Last reply Reply Quote Share 0
      • WhycanService
        WhycanService LV 8 last edited by

        打入以下补丁解决

        From 11647f99b4de6bc460e106e876f72fc7af3e54a6 Mon Sep 17 00:00:00 2001
        From: Dirk Mueller <dmueller@suse.com>
        Date: Tue, 14 Jan 2020 18:53:41 +0100
        Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration
        
        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@suse.com>
        Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
        [robh: cherry-pick from upstream]
        Cc: stable@vger.kernel.org
        Signed-off-by: Rob Herring <robh@kernel.org>
        [nc: Also apply to dtc-lexer.lex.c_shipped due to a lack of
             e039139be8c2, where dtc-lexer.l started being used]
        Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        Change-Id: I7f299451e99aab09375883546e47505ec0937c26
        ---
         scripts/dtc/dtc-lexer.l             | 1 -
         scripts/dtc/dtc-lexer.lex.c_shipped | 1 -
         2 files changed, 2 deletions(-)
        
        diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
        index c600603044f3..cf7707be43aa 100644
        --- a/scripts/dtc/dtc-lexer.l
        +++ b/scripts/dtc/dtc-lexer.l
        @@ -38,7 +38,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() */
        diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
        index 2c862bc86ad0..e3663ce1af5d 100644
        --- a/scripts/dtc/dtc-lexer.lex.c_shipped
        +++ b/scripts/dtc/dtc-lexer.lex.c_shipped
        @@ -631,7 +631,6 @@ char *yytext;
         #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() */
        
        1 Reply Last reply Reply Quote Share 1
        • F
          fafa1123 LV 2 last edited by

          /root/tina-v853-open/kernel/linux-4.9/scripts/dtc
          找到文件 dtc-lexer.lex.c_shipped
          搜索YYLTYPE yylloc
          修订为 extern YYLTYPE yylloc

          问题就解决了

          1 Reply Last reply Reply Quote Share 0
          • 1 / 1
          • First post
            Last post

          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

          行为准则 | 用户协议 | 隐私权政策