[ovs-dev] [PATCH 1/2] hash: Add hash_add64().

Jarno Rajahalme jrajahalme at nicira.com
Mon Jan 5 22:12:03 UTC 2015


Thanks for noticing this, should have tried a 32-bit build myself…

  Jarno

On Dec 29, 2014, at 2:19 PM, Ben Pfaff <blp at nicira.com> wrote:

> On Mon, Dec 29, 2014 at 02:12:14PM -0800, Ben Pfaff wrote:
>> On Wed, Dec 17, 2014 at 10:30:41AM -0800, Jarno Rajahalme wrote:
>>> Add support for adding 64-bit words to hashes.  This will be used by
>>> subsequent patches.
>>> 
>>> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
>> 
>> Other than that philosophical issue:
>> Acked-by: Ben Pfaff <blp at nicira.com>
> 
> Oh, also this patch breaks the 32-bit build.  Clang:
> 
>    ../ofproto/tunnel.c:479:5: error: bit-field 'build_assert_failed' has negative
>          width (-1)
>        BUILD_ASSERT_DECL(sizeof *match % sizeof(uint64_t) == 0);
>        ^
>    ../lib/util.h:55:42: note: expanded from macro 'BUILD_ASSERT_DECL'
>            extern int (*build_assert(void))[BUILD_ASSERT__(EXPR)]
>                                             ^
>    ../lib/util.h:48:38: note: expanded from macro 'BUILD_ASSERT__'
>            sizeof(struct { unsigned int build_assert_failed : (EXPR) ? 1 : -1; })
>                                         ^
>    ../ofproto/tunnel.c:479:5: error: conflicting types for 'build_assert'
>    ../lib/util.h:55:22: note: expanded from macro 'BUILD_ASSERT_DECL'
>            extern int (*build_assert(void))[BUILD_ASSERT__(EXPR)]
>                         ^
>    ../ofproto/ofproto-dpif.h:221:1: note: previous declaration is here
>    BUILD_ASSERT_DECL(N_TABLES >= 2 && N_TABLES <= 255);
>    ^
>    ../lib/util.h:55:22: note: expanded from macro 'BUILD_ASSERT_DECL'
>            extern int (*build_assert(void))[BUILD_ASSERT__(EXPR)]
>                         ^
>    2 errors generated.
>    make[2]: *** [ofproto/ofproto_libofproto_la-tunnel.lo] Error 1
> 
> or GCC:
> 
> ../ofproto/tunnel.c: In function 'tnl_hash':
> ../ofproto/tunnel.c:479:5: error: negative width in bit-field 'build_assert_failed'




More information about the dev mailing list