sim/igen: Fix linker error with -fno-common
authorSebastian Huber <sebastian.huber@embedded-brains.de>
Thu, 2 Jul 2020 16:10:49 +0000 (18:10 +0200)
committerSebastian Huber <sebastian.huber@embedded-brains.de>
Fri, 3 Jul 2020 19:03:47 +0000 (21:03 +0200)
commitc4df5bbeb87a445dbc84b9ed677b2c721e5051b5
treeed41eb7b0c7a0d1b17f98783bc78b27ac1c8f425
parentad8464f799a4c96c7ab8bdfec3f95846cf54f9b0
sim/igen: Fix linker error with -fno-common

GCC 10 enables -fno-common by default.  This resulted in multiple
definition linker errors since a global variable was declared and
defined in a header file:

  ld: libsim.a(idecode.o):sim/v850/idecode.h:71: multiple definition of
  `idecode_issue'; libsim.a(irun.o):sim/v850/idecode.h:71: first defined
  here

  ld: libsim.a(engine.o):sim/v850/idecode.h:71: multiple definition of
  `idecode_issue'; libsim.a(irun.o):sim/v850/idecode.h:71: first defined
  here

  ld: libsim.a(support.o):sim/v850/idecode.h:71: multiple definition of
  `idecode_issue'; libsim.a(irun.o):sim/v850/idecode.h:71: first defined
  here

  ld: libsim.a(semantics.o):sim/v850/idecode.h:71: multiple definition
  of `idecode_issue'; libsim.a(irun.o):sim/v850/idecode.h:71: first
  defined here

sim/igen

PR sim/26194

* lf.h (lf_get_file_type): Declare.
* lf.c (lf_get_file_type): Define.
* gen-idecode.c (print_idecode_issue_function_header): Use
lf_get_file_type() to issue an extern variable declaration in
case of header files.
sim/igen/ChangeLog
sim/igen/gen-idecode.c
sim/igen/lf.c
sim/igen/lf.h