Hi folks,

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.

[1] http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html


[...]
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined gcc -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare
-Wpointer-arith -Wdeclaration-after-statement -Wformat-security
-Wswitch-enum -Wunused-parameter -Wstrict-aliasing -Wbad-function-cast
-Wcast-align -Wmissing-prototypes -Wmissing-field-initializers  -O2 -g
-pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -mcpu=power7
-mtune=power7  -Wl,-z,relro
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o tests/test-heap
tests/test-heap.o lib/libopenvswitch.a -lssl -lcrypto   -lpthread -lrt
-lm 
reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_store_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_fetch_add_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_fetch_sub_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_fetch_or_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_fetch_and_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_fetch_xor_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:86:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_store_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_fetch_add_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_fetch_sub_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_fetch_or_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_fetch_and_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_fetch_xor_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:87:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_store_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_fetch_add_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_fetch_sub_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_fetch_or_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_fetch_and_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_fetch_xor_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:90:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `gcc -Wstrict-prototypes -Wall -Wextra
-Wno-sign-compare -Wpointer-arith -Wdeclaration-after-statement
-Wformat-security -Wswitch-enum -Wunused-parameter -Wstrict-aliasing
-Wbad-function-cast -Wcast-align -Wmissing-prototypes
-Wmissing-field-initializers  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-m32 -mcpu=power7 -mtune=power7  -Wl,-z,relro
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o tests/test-hindex
tests/test-hindex.o lib/libopenvswitch.a -lssl -lcrypto   -lpthread -lrt
-lm 
gcc -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith
-Wdeclaration-after-statement -Wformat-security -Wswitch-enum
-Wunused-parameter -Wstrict-aliasing -Wbad-function-cast -Wcast-align
-Wmissing-prototypes -Wmissing-field-initializers  -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -mcpu=power7
-mtune=power7  -Wl,-z,relro
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o tests/test-hmap
tests/test-hmap.o lib/libopenvswitch.a -lssl -lcrypto   -lpthread -lrt
-lm 
__atomic_store_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_fetch_add_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_fetch_sub_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_fetch_or_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_fetch_and_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_fetch_xor_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:91:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_store_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_fetch_add_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_fetch_sub_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_fetch_or_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_fetch_and_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_fetch_xor_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:100:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_store_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_fetch_add_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_fetch_sub_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_fetch_or_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_fetch_and_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_fetch_xor_8'
/builddir/build/BUILD/openvswitch-2.0.0/tests/test-atomic.c:101:
undefined reference to `__atomic_load_8'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/test-atomic] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/builddir/build/BUILD/openvswitch-2.0.0'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/openvswitch-2.0.0'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.QDqaaa (%build)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.QDqaaa (%build)
Child returncode was: 1

fbl

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to