From: ggn Date: Sun, 7 Jun 2020 16:24:13 +0000 (+0300) Subject: Fix gcc10/clang link errors by adding "extern" to exported variables and defining... X-Git-Tag: v2.1.0~30 X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=commitdiff_plain;h=e6faa71fc77a1b7ed35b9fec6274d9de44bd2e3f;hp=136a3405aabd377412472dd27e286fea60d80f44 Fix gcc10/clang link errors by adding "extern" to exported variables and defining a couple in headers (issue #162) --- diff --git a/dsp56k_amode.c b/dsp56k_amode.c index 347886f..7937b10 100644 --- a/dsp56k_amode.c +++ b/dsp56k_amode.c @@ -21,7 +21,7 @@ #include "mntab.h" // Address-mode information -int nmodes; // Number of addr'ing modes found +//int nmodes; // Number of addr'ing modes found int dsp_am0; // Addressing mode int dsp_a0reg; // Register TOKEN dsp_a0expr[EXPRSIZE]; // Expression @@ -62,6 +62,9 @@ uint64_t dspaaEXVAL; // Expression's value WORD dspaaEXATTR; // Expression's attribute SYM * dspaaESYM; // External symbol involved in expr +LONG dsp_a0perspace; // Peripheral space (X, Y - used in movep) +LONG dsp_a1perspace; // Peripheral space (X, Y - used in movep) + int dsp_k; // Multiplications sign static inline LONG checkea(const uint32_t termchar, const int strings); diff --git a/dsp56k_amode.h b/dsp56k_amode.h index 8b78d2d..d93f190 100644 --- a/dsp56k_amode.h +++ b/dsp56k_amode.h @@ -95,41 +95,41 @@ MNTABDSP { }; // Addressing mode variables, output of dsp_amode() -int dsp_am0; // Addressing mode -int dsp_a0reg; // Register -int dsp_am1; // Addressing mode -int dsp_a1reg; // Register -int dsp_am2; // Addressing mode -int dsp_a2reg; // Register -int dsp_am3; // Addressing mode -int dsp_a3reg; // Register - -TOKEN dsp_a0expr[EXPRSIZE]; // Expression -uint64_t dsp_a0exval; // Expression's value -WORD dsp_a0exattr; // Expression's attribute -SYM * dsp_a0esym; // External symbol involved in expr -LONG dsp_a0memspace; // Addressing mode's memory space (P, X, Y) -LONG dsp_a0perspace; // Peripheral space (X, Y - used in movep) -TOKEN dsp_a1expr[EXPRSIZE]; // Expression -uint64_t dsp_a1exval; // Expression's value -WORD dsp_a1exattr; // Expression's attribute -SYM * dsp_a1esym; // External symbol involved in expr -LONG dsp_a1memspace; // Addressing mode's memory space (P, X, Y) -LONG dsp_a1perspace; // Peripheral space (X, Y - used in movep) -TOKEN dsp_a2expr[EXPRSIZE]; // Expression -uint64_t dsp_a2exval; // Expression's value -WORD dsp_a2exattr; // Expression's attribute -SYM * dsp_a2esym; // External symbol involved in expr -TOKEN dsp_a3expr[EXPRSIZE]; // Expression -uint64_t dsp_a3exval; // Expression's value -WORD dsp_a3exattr; // Expression's attribute -SYM * dsp_a3esym; // External symbol involved in expr -int dsp_k; // Multiplications sign -TOKEN dspImmedEXPR[EXPRSIZE]; // Expression -uint64_t dspImmedEXVAL; // Expression's value -WORD dspImmedEXATTR; // Expression's attribute -SYM * dspImmedESYM; // External symbol involved in expr -int deposit_extra_ea; // Optional effective address extension +extern int dsp_am0; // Addressing mode +extern int dsp_a0reg; // Register +extern int dsp_am1; // Addressing mode +extern int dsp_a1reg; // Register +extern int dsp_am2; // Addressing mode +extern int dsp_a2reg; // Register +extern int dsp_am3; // Addressing mode +extern int dsp_a3reg; // Register + +extern TOKEN dsp_a0expr[EXPRSIZE]; // Expression +extern uint64_t dsp_a0exval; // Expression's value +extern WORD dsp_a0exattr; // Expression's attribute +extern SYM * dsp_a0esym; // External symbol involved in expr +extern LONG dsp_a0memspace; // Addressing mode's memory space (P, X, Y) +extern LONG dsp_a0perspace; // Peripheral space (X, Y - used in movep) +extern TOKEN dsp_a1expr[EXPRSIZE]; // Expression +extern uint64_t dsp_a1exval; // Expression's value +extern WORD dsp_a1exattr; // Expression's attribute +extern SYM * dsp_a1esym; // External symbol involved in expr +extern LONG dsp_a1memspace; // Addressing mode's memory space (P, X, Y) +extern LONG dsp_a1perspace; // Peripheral space (X, Y - used in movep) +extern TOKEN dsp_a2expr[EXPRSIZE]; // Expression +extern uint64_t dsp_a2exval; // Expression's value +extern WORD dsp_a2exattr; // Expression's attribute +extern SYM * dsp_a2esym; // External symbol involved in expr +extern TOKEN dsp_a3expr[EXPRSIZE]; // Expression +extern uint64_t dsp_a3exval; // Expression's value +extern WORD dsp_a3exattr; // Expression's attribute +extern SYM * dsp_a3esym; // External symbol involved in expr +extern int dsp_k; // Multiplications sign +extern TOKEN dspImmedEXPR[EXPRSIZE]; // Expression +extern uint64_t dspImmedEXVAL; // Expression's value +extern WORD dspImmedEXATTR; // Expression's attribute +extern SYM * dspImmedESYM; // External symbol involved in expr +extern int deposit_extra_ea; // Optional effective address extension // Extra ea deposit modes