See also: https://bugs.gentoo.org/706366 gcc-10 and above flipped a default from -fcommon to -fno-common: https://gcc.gnu.org/PR85678 Usually all it takes is to add a few 'extern' declarations and move definitions from header files to modules. I've port iverilog to gcc-10 accroding to this guide: https://wiki.gentoo.org/wiki/Gcc_10_porting_notes/fno_common To fix this, I analyzed the code, and found ``pli_trace`` has been defined at here: https://github.com/steveicarus/iverilog/blob/v10_3/libveriuser/priv.c#L24 So I changed ``FILE* pli_trace;`` to ``extern FILE* pli_trace;``. The var ``current_file`` only in ``cfparse_misc.h``, I changed it from ``char *current_file;`` to ``extern char *current_file;`` and declaring it in cflexor.lex And then it works. Signed-off-by: Huang Rui <vowstar@gmail.com> |
||
|---|---|---|
| .. | ||
| Makefile.in | ||
| cflexor.lex | ||
| cfparse.y | ||
| cfparse_misc.h | ||
| globals.h | ||
| iverilog.man.in | ||
| main.c | ||
| substit.c | ||