Re: [PATCH 3/5] nedmalloc: allow compiling with MSys2's compiler

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

 



Johannes Schindelin <johannes.schindelin@xxxxxx> writes:

> With MSys2's GCC, `ReadWriteBarrier` is already defined, and FORCEINLINE
> unfortunately gets defined incorrectly.
>
> Let's work around both problems, using the MSys2-specific
> __MINGW64_VERSION_MAJOR constant to guard them.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
> ---

Thanks.  I actually do not think #undef _ReadWriteBarrier needs to
be inside any #ifdef, though.  It isn't like it is an error to
#undef that you did not #define before.

>  compat/nedmalloc/malloc.c.h | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/compat/nedmalloc/malloc.c.h b/compat/nedmalloc/malloc.c.h
> index f216a2a..18634e3 100644
> --- a/compat/nedmalloc/malloc.c.h
> +++ b/compat/nedmalloc/malloc.c.h
> @@ -720,6 +720,9 @@ struct mallinfo {
>    inlining are defined as macros, so these aren't used for them.
>  */
>  
> +#ifdef __MINGW64_VERSION_MAJOR
> +#undef FORCEINLINE
> +#endif
>  #ifndef FORCEINLINE
>    #if defined(__GNUC__)
>  #define FORCEINLINE __inline __attribute__ ((always_inline))
> @@ -1382,6 +1385,9 @@ LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);
>  
>    /*** Atomic operations ***/
>    #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
> +    #ifdef __MINGW64_VERSION_MAJOR
> +      #undef _ReadWriteBarrier
> +    #endif
>      #define _ReadWriteBarrier() __sync_synchronize()
>    #else
>      static __inline__ __attribute__((always_inline)) long __sync_lock_test_and_set(volatile long * const Target, const long Value)
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]