qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 3/7] softfloat: Convert `*_default_nan' varia


From: Maciej W. Rozycki
Subject: Re: [Qemu-devel] [PATCH v2 3/7] softfloat: Convert `*_default_nan' variables into inline functions
Date: Fri, 30 Jan 2015 16:02:58 +0000 (GMT)
User-agent: Alpine 2.11 (LFD 23 2013-08-11)

On Fri, 30 Jan 2015, Leon Alrae wrote:

> > @@ -760,6 +760,6 @@ static inline int float128_is_any_nan(fl
> >  
> > /*----------------------------------------------------------------------------
> >  | The pattern for a default generated quadruple-precision NaN.
> >  
> > *----------------------------------------------------------------------------*/
> > -extern const float128 float128_default_nan;
> > +__inline__ float128 float128_default_nan(void);
> >  
> 
> Unfortunately clang complains about it and eventually it won't link:
> 
>   CC    aarch64-softmmu/target-arm/helper-a64.o
> In file included from /qemu/target-arm/helper-a64.c:20:
> In file included from /qemu/target-arm/cpu.h:37:
> In file included from /qemu/include/qemu-common.h:120:
> In file included from /qemu/include/qemu/bswap.h:8:
> /qemu/include/fpu/softfloat.h:485:20: warning: inline function
> 'float32_default_nan' is not defined [-Wundefined-inline]
> __inline__ float32 float32_default_nan(void);
>                    ^
> /qemu/target-arm/helper-a64.c:345:19: note: used here
>             nan = float32_default_nan();
>                   ^
> In file included from /qemu/target-arm/helper-a64.c:20:
> In file included from /qemu/target-arm/cpu.h:37:
> In file included from /qemu/include/qemu-common.h:120:
> In file included from /qemu/include/qemu/bswap.h:8:
> /qemu/include/fpu/softfloat.h:597:20: warning: inline function
> 'float64_default_nan' is not defined [-Wundefined-inline]
> __inline__ float64 float64_default_nan(void);
>                    ^
> /qemu/target-arm/helper-a64.c:374:19: note: used here
>             nan = float64_default_nan();
>                   ^
> 2 warnings generated.
>   CC    aarch64-softmmu/target-arm/gdbstub64.o
>   CC    aarch64-softmmu/target-arm/crypto_helper.o
>   GEN   trace/generated-helpers.c
>   CC    aarch64-softmmu/trace/generated-helpers.o
>   LINK  aarch64-softmmu/qemu-system-aarch64
> fpu/softfloat.o: In function `commonNaNToFloat64':
> /qemu/fpu/softfloat-specialize.h:796: undefined reference to
> `float64_default_nan'
> /qemu/fpu/softfloat-specialize.h:805: undefined reference to
> `float64_default_nan'
> fpu/softfloat.o: In function `commonNaNToFloatx80':
> /qemu/fpu/softfloat-specialize.h:1007: undefined reference to
> `floatx80_default_nan'
> /qemu/fpu/softfloat-specialize.h:1014: undefined reference to
> `floatx80_default_nan'

 Hmm, so perhaps my idea for a later improvement:

>  Eventually we might want to move the new inline functions into a
> separate header to be included from softfloat.h instead of softfloat.c,
> but let's make changes one step at a time.

will actually have to be made right away.  I suspect GCC is more liberal 
here due to its convoluted extern/static/inline semantics history.  
Sigh...

  Maciej



reply via email to

[Prev in Thread] Current Thread [Next in Thread]