diff options
author | Jessica Clarke <jrtc27@FreeBSD.org> | 2021-05-28 18:07:17 +0000 |
---|---|---|
committer | Jessica Clarke <jrtc27@FreeBSD.org> | 2021-06-04 00:28:15 +0000 |
commit | 36da5710d3e4b3e3412ef7e4826506f9d64b0b35 (patch) | |
tree | 2bdbc92ff1cbdc6cb8d373bf2f27c44d097d2050 | |
parent | 92f49c769b4ef51163151c3991357a08941e232d (diff) | |
download | src-36da5710d3e4b3e3412ef7e4826506f9d64b0b35.tar.gz src-36da5710d3e4b3e3412ef7e4826506f9d64b0b35.zip |
aic7xxx: Fix re-building firmware with -fno-common
The generated C output for aicasm_scan.l defines yylineno already, so
references to it from other files should use an extern declaration.
The STAILQ_HEAD use in aicasm_symbol.h also provided an identifier,
causing it to both define the struct type and define a variable of that
struct type, causing any C file including the header to define the same
variable. This variable is not used (and confusingly clashes with a
field name just below) and was likely caused by confusion when switching
between defining fields using similar type macros and defining the type
itself.
Reviewed by: imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D30525
(cherry picked from commit 5e912f5fec025766521f535d1237330ede7f18e2)
-rw-r--r-- | sys/dev/aic7xxx/aicasm/aicasm_gram.y | 2 | ||||
-rw-r--r-- | sys/dev/aic7xxx/aicasm/aicasm_symbol.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aicasm/aicasm_gram.y b/sys/dev/aic7xxx/aicasm/aicasm_gram.y index c479c8fdf2db..d32793f4c12b 100644 --- a/sys/dev/aic7xxx/aicasm/aicasm_gram.y +++ b/sys/dev/aic7xxx/aicasm/aicasm_gram.y @@ -59,7 +59,7 @@ #include "aicasm_symbol.h" #include "aicasm_insformat.h" -int yylineno; +extern int yylineno; char *yyfilename; char stock_prefix[] = "aic_"; char *prefix = stock_prefix; diff --git a/sys/dev/aic7xxx/aicasm/aicasm_symbol.h b/sys/dev/aic7xxx/aicasm/aicasm_symbol.h index 616dfd28fdeb..a15fa12176d1 100644 --- a/sys/dev/aic7xxx/aicasm/aicasm_symbol.h +++ b/sys/dev/aic7xxx/aicasm/aicasm_symbol.h @@ -110,7 +110,7 @@ struct macro_arg { regex_t arg_regex; char *replacement_text; }; -STAILQ_HEAD(macro_arg_list, macro_arg) args; +STAILQ_HEAD(macro_arg_list, macro_arg); struct macro_info { struct macro_arg_list args; |