[ovs-dev] openvswitch 2.0.0 build breaks on PPC

Flavio Leitner fbl at redhat.com
Tue Oct 29 17:15:58 UTC 2013


On Tue, Oct 29, 2013 at 08:37:58AM -0700, Ben Pfaff wrote:
> On Tue, Oct 29, 2013 at 10:51:02AM -0200, Flavio Leitner wrote:
> > While updating the packages to 2.0.0 I found that the build fails on
> > PPC.
> > 
> > I am not an expert on PPC arch, but I think it doesn't support atomic
> > operations of 8 bytes (64bit) on 32bit system, then there is no GCC
> > built-in[1] for those cases which breaks the build.
> 
> I only see build failures in the test-atomic program.  That's a good
> sign that we only use these 8-byte atomic operations in the test
> program, not in real code.  Are there other build failures?  (Does "make
> vswitchd/ovs-vswitchd" succeed?)

I've applied the patch below commenting out the problematic ones
in test-atomic to work around and I was able to build the rpms.
So, yeah, that's the only issue as far as I can see.

fbl

--- openvswitch-2.0.0/tests/test-atomic.c	2013-10-15 19:12:35.000000000 -0300
+++ openvswitch-2.0.0.ppc/tests/test-atomic.c	2013-10-29 14:55:15.441727470 -0200
@@ -83,12 +83,16 @@ main(void)
     TEST_ATOMIC_TYPE(atomic_uint, unsigned int);
     TEST_ATOMIC_TYPE(atomic_long, long int);
     TEST_ATOMIC_TYPE(atomic_ulong, unsigned long int);
+#if 0
     TEST_ATOMIC_TYPE(atomic_llong, long long int);
     TEST_ATOMIC_TYPE(atomic_ullong, unsigned long long int);
+#endif
     TEST_ATOMIC_TYPE(atomic_size_t, size_t);
     TEST_ATOMIC_TYPE(atomic_ptrdiff_t, ptrdiff_t);
+#if 0
     TEST_ATOMIC_TYPE(atomic_intmax_t, intmax_t);
     TEST_ATOMIC_TYPE(atomic_uintmax_t, uintmax_t);
+#endif
     TEST_ATOMIC_TYPE(atomic_intptr_t, intptr_t);
     TEST_ATOMIC_TYPE(atomic_uintptr_t, uintptr_t);
     TEST_ATOMIC_TYPE(atomic_uint8_t, uint8_t);
@@ -97,8 +101,10 @@ main(void)
     TEST_ATOMIC_TYPE(atomic_int16_t, int16_t);
     TEST_ATOMIC_TYPE(atomic_uint32_t, uint32_t);
     TEST_ATOMIC_TYPE(atomic_int32_t, int32_t);
+#if 0
     TEST_ATOMIC_TYPE(atomic_uint64_t, uint64_t);
     TEST_ATOMIC_TYPE(atomic_int64_t, int64_t);
+#endif
 
     test_atomic_flag();
 




More information about the dev mailing list