Message ID | 20200903083147.707-4-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Green the msys2 CI make | expand |
On 9/3/20 1:31 AM, Yonggang Luo wrote: > Rename function dup_const to dup_const_eval for avoid confliction with macro dup_const > > The link error on msys2 > > Linking target qemu-system-alpha.exe > C:/CI-Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libqemu-alpha-softmmu.fa.p/tcg_optimize.c.obj: in function `tcg_optimize': > E:\CI-Cor-Ready\xemu\qemu-build/../qemu.org/tcg/optimize.c:1106: undefined reference to `dup_const' > C:/CI-Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libqemu-alpha-softmmu.fa.p/tcg_tcg-op-vec.c.obj: in function `tcg_gen_dupi_vec': > E:\CI-Cor-Ready\xemu\qemu-build/../qemu.org/tcg/tcg-op-vec.c:283: undefined reference to `dup_const' > collect2.exe: error: ld returned 1 exit status > > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> > --- > include/tcg/tcg.h | 6 +++--- > tcg/tcg-op-gvec.c | 2 +- > 2 files changed, 4 insertions(+), 4 deletions(-) No, really, as I asked before: what symbol is present in tcg-op-gvec.c.obj without this patch? That you need this, to me says that you've got a broken compiler. This is bog-standard C. There is nothing windows-specific about it. r~
On Fri, Sep 4, 2020 at 1:20 AM Richard Henderson < richard.henderson@linaro.org> wrote: > On 9/3/20 1:31 AM, Yonggang Luo wrote: > > Rename function dup_const to dup_const_eval for avoid confliction with > macro dup_const > > > > The link error on msys2 > > > > Linking target qemu-system-alpha.exe > > > C:/CI-Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > libqemu-alpha-softmmu.fa.p/tcg_optimize.c.obj: in function `tcg_optimize': > > E:\CI-Cor-Ready\xemu\qemu-build/../qemu.org/tcg/optimize.c:1106: > undefined reference to `dup_const' > > > C:/CI-Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > libqemu-alpha-softmmu.fa.p/tcg_tcg-op-vec.c.obj: in function > `tcg_gen_dupi_vec': > > E:\CI-Cor-Ready\xemu\qemu-build/../qemu.org/tcg/tcg-op-vec.c:283: > undefined reference to `dup_const' > > collect2.exe: error: ld returned 1 exit status > > > > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> > > --- > > include/tcg/tcg.h | 6 +++--- > > tcg/tcg-op-gvec.c | 2 +- > > 2 files changed, 4 insertions(+), 4 deletions(-) > > No, really, as I asked before: what symbol is present in tcg-op-gvec.c.obj > without this patch? > The tcg-op-gvec.c.obj are missing now, maybe skip this patch first? Anyway have same name with function and macro is not that good > > That you need this, to me says that you've got a broken compiler. This is > bog-standard C. There is nothing windows-specific about it. > > > r~ >
On 9/3/20 2:19 PM, 罗勇刚(Yonggang Luo) wrote: > No, really, as I asked before: what symbol is present in tcg-op-gvec.c.obj > without this patch? > > The tcg-op-gvec.c.obj are missing now, maybe skip this patch first? Yes, please. > Anyway have same name with function and macro is not that good That is a valid point of view, but it is not a bug. The standard C library is full of symbols that are both macros and functions. r~
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 53ce94c2c5..7f6fe8454b 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -1251,15 +1251,15 @@ static inline int tcg_can_emit_vec_op(TCGOpcode o, TCGType t, unsigned ve) void tcg_expand_vec_op(TCGOpcode, TCGType, unsigned, TCGArg, ...); /* Replicate a constant C accoring to the log2 of the element size. */ -uint64_t dup_const(unsigned vece, uint64_t c); +uint64_t dup_const_eval(unsigned vece, uint64_t c); #define dup_const(VECE, C) \ (__builtin_constant_p(VECE) \ ? ( (VECE) == MO_8 ? 0x0101010101010101ull * (uint8_t)(C) \ : (VECE) == MO_16 ? 0x0001000100010001ull * (uint16_t)(C) \ : (VECE) == MO_32 ? 0x0000000100000001ull * (uint32_t)(C) \ - : dup_const(VECE, C)) \ - : dup_const(VECE, C)) + : dup_const_eval(VECE, C)) \ + : dup_const_eval(VECE, C)) /* diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c index 3707c0effb..cbb6cd04bc 100644 --- a/tcg/tcg-op-gvec.c +++ b/tcg/tcg-op-gvec.c @@ -359,7 +359,7 @@ static inline bool check_size_impl(uint32_t oprsz, uint32_t lnsz) static void expand_clr(uint32_t dofs, uint32_t maxsz); /* Duplicate C as per VECE. */ -uint64_t (dup_const)(unsigned vece, uint64_t c) +uint64_t dup_const_eval(unsigned vece, uint64_t c) { switch (vece) { case MO_8:
Rename function dup_const to dup_const_eval for avoid confliction with macro dup_const The link error on msys2 Linking target qemu-system-alpha.exe C:/CI-Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libqemu-alpha-softmmu.fa.p/tcg_optimize.c.obj: in function `tcg_optimize': E:\CI-Cor-Ready\xemu\qemu-build/../qemu.org/tcg/optimize.c:1106: undefined reference to `dup_const' C:/CI-Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libqemu-alpha-softmmu.fa.p/tcg_tcg-op-vec.c.obj: in function `tcg_gen_dupi_vec': E:\CI-Cor-Ready\xemu\qemu-build/../qemu.org/tcg/tcg-op-vec.c:283: undefined reference to `dup_const' collect2.exe: error: ld returned 1 exit status Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> --- include/tcg/tcg.h | 6 +++--- tcg/tcg-op-gvec.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)