On Tue, Oct 20, 2026 at 5:22 AM Pierrick Bouvier <[email protected]> wrote: > > When linking multiple targets together, we usually have conflicts with helper > names. So far, it was solved using ad-hoc renaming, but multiple people > pointed it > would be better to have a general mechanism for it, so here it is. > > A previous series attempted that: > https://lore.kernel.org/qemu-devel/[email protected]/, > but it was relying on (binary) symbol renaming, which is not a portable > solution. > Instead, this series approaches the problem from source code directly. > It requires more change, but it's cleaner IMHO.
Hi Pierrick thanks, this is what I want, I was thinking of this way, just changed too much, so I am worried about so many changes. I have a bad feeling that my patch has so many magic macros, your way is decent. Series: Acked-by: Yonggang Luo <[email protected]> > > Series follows these steps: > > First, we make sure all helpers and definition are using HELPER() macro. A lot > of helpers were already defined this way, we just make sure it's exhaustive. > After that we don't have any 'helper_' left on any target code. This is a big > change touching the whole codebase, but it's a simple mechanical change. As > long > as it compiles and links, we know it's correct. > > Then, we introduce the prefix for target helpers. For this , we add a new > define > (from meson) that applies to all target related code. It could later be used > to > prefix other symbols also, that's why it's not named "TCG". > > Finally, we cleanup the previous manual helpers prefix that were added in > codebase. > > Pierrick Bouvier (26): > target/alpha: define and call helpers using HELPER macro > target/arm: define and call helpers using HELPER macro > target/avr: define and call helpers using HELPER macro > target/hppa: define and call helpers using HELPER macro > target/i386: define and call helpers using HELPER macro > target/loongarch: define and call helpers using HELPER macro > target/m68k: define and call helpers using HELPER macro > target/microblaze: define and call helpers using HELPER macro > target/mips: define and call helpers using HELPER macro > target/or1k: define and call helpers using HELPER macro > target/ppc: define and call helpers using HELPER macro > target/riscv: define and call helpers using HELPER macro > target/rx: define and call helpers using HELPER macro > target/s390x: define and call helpers using HELPER macro > target/sh4: define and call helpers using HELPER macro > target/sparc: define and call helpers using HELPER macro > target/tricore: define and call helpers using HELPER macro > tcg: introduce HELPER_INFO macro > tcg: prefix helpers with target base architecture > target/alpha: remove explicit target specific prefix > target/hexagon: remove explicit target specific prefix > target/hppa: remove explicit target specific prefix > target/microblaze: remove explicit target specific prefix > target/or1k: remove explicit target specific prefix > target/rx: remove explicit target specific prefix > target/tricore: remove explicit target specific prefix > > include/exec/helper-gen-common.h | 7 + > include/exec/helper-gen.h.inc | 48 +- > include/exec/helper-head.h.inc | 8 +- > include/exec/helper-info.c.inc | 16 +- > include/exec/helper-proto-common.h | 7 + > meson.build | 2 + > target/alpha/clk_helper.c | 2 +- > target/alpha/fpu_helper.c | 60 +-- > target/alpha/helper.c | 6 +- > target/alpha/helper.h | 2 +- > target/alpha/int_helper.c | 38 +- > target/alpha/sys_helper.c | 12 +- > target/alpha/translate.c | 4 +- > target/alpha/vax_helper.c | 42 +- > target/arm/tcg/helper-a64.c | 6 +- > target/arm/tcg/mve_helper.c | 28 +- > target/arm/tcg/psci.c | 2 +- > target/arm/tcg/sme_helper.c | 4 +- > target/arm/tcg/sve_helper.c | 141 ++--- > target/arm/tcg/tlb_helper.c | 2 +- > target/arm/tcg/vec_helper.c | 72 +-- > target/arm/tcg/vec_helper64.c | 64 +-- > target/arm/tcg/vec_internal.h | 5 +- > target/avr/helper.c | 12 +- > target/hexagon/gen_tcg.h | 2 +- > target/hexagon/gen_tcg_sys.h | 2 +- > target/hexagon/helper.h | 4 +- > target/hexagon/op_helper.c | 4 +- > target/hexagon/translate.c | 4 +- > target/hppa/fpu_helper.c | 2 +- > target/hppa/helper.h | 6 +- > target/hppa/op_helper.c | 4 +- > target/hppa/sys_helper.c | 10 +- > target/hppa/translate.c | 6 +- > target/i386/ops_sse.h | 401 +++++++------- > target/i386/tcg/bpt_helper.c | 6 +- > target/i386/tcg/cc_helper.c | 14 +- > target/i386/tcg/excp_helper.c | 8 +- > target/i386/tcg/fpu_helper.c | 182 +++---- > target/i386/tcg/int_helper.c | 34 +- > target/i386/tcg/mem_helper.c | 4 +- > target/i386/tcg/misc_helper.c | 16 +- > target/i386/tcg/mpx_helper.c | 12 +- > target/i386/tcg/seg_helper.c | 32 +- > target/i386/tcg/system/bpt_helper.c | 6 +- > target/i386/tcg/system/misc_helper.c | 32 +- > target/i386/tcg/system/seg_helper.c | 4 +- > target/i386/tcg/system/smm_helper.c | 12 +- > target/i386/tcg/system/svm_helper.c | 16 +- > target/i386/tcg/user/seg_helper.c | 4 +- > target/loongarch/tcg/csr_helper.c | 22 +- > target/loongarch/tcg/fpu_helper.c | 126 ++--- > target/loongarch/tcg/iocsr_helper.c | 16 +- > target/loongarch/tcg/op_helper.c | 18 +- > target/loongarch/tcg/tlb_helper.c | 26 +- > target/loongarch/tcg/vec_helper.c | 4 +- > target/m68k/op_helper.c | 2 +- > target/microblaze/helper.h | 10 +- > target/microblaze/op_helper.c | 46 +- > target/microblaze/translate.c | 10 +- > target/mips/tcg/dsp_helper.c | 187 +++---- > target/mips/tcg/exception.c | 8 +- > target/mips/tcg/fpu_helper.c | 291 +++++----- > target/mips/tcg/ldst_helper.c | 18 +- > target/mips/tcg/lmmi_helper.c | 98 ++-- > target/mips/tcg/msa_helper.c | 690 ++++++++++++------------ > target/mips/tcg/octeon_crypto.c | 100 ++-- > target/mips/tcg/op_helper.c | 34 +- > target/mips/tcg/system/cp0_helper.c | 276 +++++----- > target/mips/tcg/system/lcsr_helper.c | 8 +- > target/mips/tcg/system/special_helper.c | 12 +- > target/mips/tcg/system/tlb_helper.c | 14 +- > target/mips/tcg/vr54xx_helper.c | 30 +- > target/or1k/fpu_helper.c | 16 +- > target/or1k/helper.h | 2 +- > target/or1k/interrupt_helper.c | 2 +- > target/or1k/translate.c | 2 +- > target/ppc/dfp_helper.c | 52 +- > target/ppc/fpu_helper.c | 396 +++++++------- > target/ppc/int_helper.c | 292 +++++----- > target/ppc/internal.h | 7 +- > target/ppc/mem_helper.c | 28 +- > target/ppc/misc_helper.c | 56 +- > target/ppc/mmu-hash64.c | 18 +- > target/ppc/mmu_helper.c | 70 +-- > target/ppc/power8-pmu.c | 14 +- > target/ppc/tcg-excp_helper.c | 56 +- > target/ppc/timebase_helper.c | 54 +- > target/ppc/translate/vsx-impl.c.inc | 2 +- > target/riscv/tcg/debug.c | 2 +- > target/riscv/tcg/fpu_helper.c | 196 +++---- > target/riscv/tcg/op_helper.c | 74 +-- > target/rx/helper.h | 12 +- > target/rx/op_helper.c | 62 +-- > target/rx/translate.c | 14 +- > target/s390x/tcg/mem_helper.c | 2 +- > target/sh4/op_helper.c | 76 +-- > target/sparc/fop_helper.c | 106 ++-- > target/sparc/helper.c | 22 +- > target/sparc/int64_helper.c | 6 +- > target/sparc/ldst_helper.c | 14 +- > target/sparc/vis_helper.c | 94 ++-- > target/sparc/win_helper.c | 38 +- > target/tricore/fpu_helper.c | 32 +- > target/tricore/helper.h | 14 +- > target/tricore/op_helper.c | 220 ++++---- > target/tricore/translate.c | 14 +- > 107 files changed, 2789 insertions(+), 2739 deletions(-) > > -- > 2.43.0 > > -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo
