diff mbox series

[v4,03/12] tcg: Fixes dup_const link error

Message ID 20200903083147.707-4-luoyonggang@gmail.com (mailing list archive)
State New, archived
Headers show
Series Green the msys2 CI make | expand

Commit Message

Yonggang Luo Sept. 3, 2020, 8:31 a.m. UTC
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(-)

Comments

Richard Henderson Sept. 3, 2020, 5:20 p.m. UTC | #1
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~
Yonggang Luo Sept. 3, 2020, 9:19 p.m. UTC | #2
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~
>
Richard Henderson Sept. 3, 2020, 11:29 p.m. UTC | #3
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 mbox series

Patch

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: