On 6/20/23 21:59, Stephen Rothwell wrote: > Hi all, > > Changes since 20230620: > on riscv 32-bit: WARNING: unmet direct dependencies detected for ERRATA_THEAD Depends on [n]: RISCV_ALTERNATIVE [=n] Selected by [y]: - ARCH_THEAD [=y] WARNING: unmet direct dependencies detected for ERRATA_THEAD Depends on [n]: RISCV_ALTERNATIVE [=n] Selected by [y]: - ARCH_THEAD [=y] WARNING: unmet direct dependencies detected for ERRATA_THEAD Depends on [n]: RISCV_ALTERNATIVE [=n] Selected by [y]: - ARCH_THEAD [=y] ../arch/riscv/errata/thead/errata.c: In function 'errata_probe_pbmt': ../arch/riscv/errata/thead/errata.c:29:22: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function) 29 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT || | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c:29:22: note: each undeclared identifier is reported only once for each function it appears in ../arch/riscv/errata/thead/errata.c:30:22: error: 'RISCV_ALTERNATIVES_MODULE' undeclared (first use in this function) 30 | stage == RISCV_ALTERNATIVES_MODULE) | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c: In function 'errata_probe_cmo': ../arch/riscv/errata/thead/errata.c:45:22: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function) 45 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c: In function 'errata_probe_pmu': ../arch/riscv/errata/thead/errata.c:63:22: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function) 63 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c: At top level: ../arch/riscv/errata/thead/errata.c:86:37: warning: 'struct alt_entry' declared inside parameter list will not be visible outside of this definition or declaration 86 | void thead_errata_patch_func(struct alt_entry *begin, struct alt_entry *end, | ^~~~~~~~~ ../arch/riscv/errata/thead/errata.c: In function 'thead_errata_patch_func': ../arch/riscv/errata/thead/errata.c:95:41: error: increment of pointer to an incomplete type 'struct alt_entry' 95 | for (alt = begin; alt < end; alt++) { | ^~ ../arch/riscv/errata/thead/errata.c:96:24: error: invalid use of undefined type 'struct alt_entry' 96 | if (alt->vendor_id != THEAD_VENDOR_ID) | ^~ ../arch/riscv/errata/thead/errata.c:98:24: error: invalid use of undefined type 'struct alt_entry' 98 | if (alt->patch_id >= ERRATA_THEAD_NUMBER) | ^~ ../arch/riscv/errata/thead/errata.c:101:33: error: invalid use of undefined type 'struct alt_entry' 101 | tmp = (1U << alt->patch_id); | ^~ ../arch/riscv/errata/thead/errata.c:103:34: error: implicit declaration of function 'ALT_OLD_PTR' [-Werror=implicit-function-declaration] 103 | oldptr = ALT_OLD_PTR(alt); | ^~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c:103:32: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 103 | oldptr = ALT_OLD_PTR(alt); | ^ ../arch/riscv/errata/thead/errata.c:104:34: error: implicit declaration of function 'ALT_ALT_PTR' [-Werror=implicit-function-declaration] 104 | altptr = ALT_ALT_PTR(alt); | ^~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c:104:32: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 104 | altptr = ALT_ALT_PTR(alt); | ^ ../arch/riscv/errata/thead/errata.c:107:38: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function) 107 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../arch/riscv/errata/thead/errata.c:108:59: error: invalid use of undefined type 'struct alt_entry' 108 | memcpy(oldptr, altptr, alt->alt_len); | ^~ ../arch/riscv/errata/thead/errata.c:111:70: error: invalid use of undefined type 'struct alt_entry' 111 | patch_text_nosync(oldptr, altptr, alt->alt_len); | ^~ cc1: some warnings being treated as errors -- ~Randy