Locked Arm build failures on Qualcomm, ThunderX2, Mellanox Bluefield


 

Hi all,

I needed some understand what has changed in master recently. But I am
getting the following build error:

I thought it might be

https://gerrit.fd.io/r/#/c/18366/

But that got merged long time back when everything was working.
I am not able find whats causing the pthread_create failure though.


$ cat /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeError.log
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/ninja" "cmTC_c9741"
[1/2] Building C object CMakeFiles/cmTC_c9741.dir/CheckSymbolExists.c.o
[2/2] Linking C executable cmTC_c9741
FAILED: cmTC_c9741
: && /usr/lib/ccache/cc -Wno-address-of-packed-member -march=armv8-a+crc -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror CMakeFiles/cmTC_c9741.dir/CheckSymbolExists.c.o -o cmTC_c9741 && :
CMakeFiles/cmTC_c9741.dir/CheckSymbolExists.c.o: In function `main':
/home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8: undefined reference to `pthread_create'
/home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8: undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

File /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}

Performing C SOURCE FILE Test HAVE_GETCPU failed with the following output:
Change Dir: /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/ninja" "cmTC_67739"
[1/2] Building C object CMakeFiles/cmTC_67739.dir/src.c.o
FAILED: CMakeFiles/cmTC_67739.dir/src.c.o
/usr/lib/ccache/cc -Wno-address-of-packed-member -march=armv8-a+crc -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror -DHAVE_GETCPU -o CMakeFiles/cmTC_67739.dir/src.c.o -c src.c
src.c: In function ‘main’:
src.c:4:23: error: implicit declaration of function ‘getcpu’ [-Werror=implicit-function-declaration]
int main() { return getcpu (0, 0); }
^~~~~~
src.c: At top level:
cc1: error: unrecognized command line option ‘-Wno-address-of-packed-member’ [-Werror]
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.

Source file was:

#define _GNU_SOURCE
#include <sched.h>
int main() { return getcpu (0, 0); }

Determining if the function SSL_set_async_callback exists failed with the following output:
Change Dir: /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/ninja" "cmTC_65751"
[1/2] Building C object CMakeFiles/cmTC_65751.dir/CheckFunctionExists.c.o
[2/2] Linking C executable cmTC_65751
FAILED: cmTC_65751
: && /usr/lib/ccache/cc -Wno-address-of-packed-member -march=armv8-a+crc -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror -DCHECK_FUNCTION_EXISTS=SSL_set_async_callback CMakeFiles/cmTC_65751.dir/CheckFunctionExists.c.o -o cmTC_65751 /usr/lib/aarch64-linux-gnu/libssl.so /usr/lib/aarch64-linux-gnu/libcrypto.so && :
CMakeFiles/cmTC_65751.dir/CheckFunctionExists.c.o: In function `main':
/usr/share/cmake-3.10/Modules/CheckFunctionExists.c:17: undefined reference to `SSL_set_async_callback'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Thank you
Sirshak Das


 

Apologies the problem seems to be somewhere else altogether.
This is a temp fix in case someone runs into this issue.

$ git diff
diff --git a/src/plugins/dpdk/CMakeLists.txt b/src/plugins/dpdk/CMakeLists.txt
index 76b22a970..cfdd9bbc1 100644
--- a/src/plugins/dpdk/CMakeLists.txt
+++ b/src/plugins/dpdk/CMakeLists.txt
@@ -101,8 +101,8 @@ endif()
# Mellanox libraries
##############################################################################
if(DPDK_RTE_LIBRTE_MLX4_PMD OR DPDK_RTE_LIBRTE_MLX5_PMD)
- vpp_plugin_find_library(MNL_LIB "mnl")
- list(APPEND DPDK_LINK_LIBRARIES "${MNL_LIB}")
+ # vpp_plugin_find_library(MNL_LIB "mnl")
+ # list(APPEND DPDK_LINK_LIBRARIES "${MNL_LIB}")
if (DPDK_RTE_IBVERBS_LINK_DLOPEN)
message(STATUS "DPDK depends on libmnl (Mellanox PMD requirement)")
else()

$ sudo apt install libmnl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libmnl-dev is already the newest version (1.0.4-2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

I still dont know whats causing this problem, the CI does not detect
this failure as I am guessing its not built with this option on.

$ make DPDK_MLX5_PMD=y build-release

I will try to understand this, if anybody else understands whats going
please let me know.

Thank you
Sirshak Das

Sirshak Das writes:

Hi all,

I needed some understand what has changed in master recently. But I am
getting the following build error:

I thought it might be

https://gerrit.fd.io/r/#/c/18366/

But that got merged long time back when everything was working.
I am not able find whats causing the pthread_create failure though.


$ cat /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeError.log
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/ninja" "cmTC_c9741"
[1/2] Building C object CMakeFiles/cmTC_c9741.dir/CheckSymbolExists.c.o
[2/2] Linking C executable cmTC_c9741
FAILED: cmTC_c9741
: && /usr/lib/ccache/cc -Wno-address-of-packed-member -march=armv8-a+crc -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror CMakeFiles/cmTC_c9741.dir/CheckSymbolExists.c.o -o cmTC_c9741 && :
CMakeFiles/cmTC_c9741.dir/CheckSymbolExists.c.o: In function `main':
/home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8: undefined reference to `pthread_create'
/home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8: undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

File /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}

Performing C SOURCE FILE Test HAVE_GETCPU failed with the following output:
Change Dir: /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/ninja" "cmTC_67739"
[1/2] Building C object CMakeFiles/cmTC_67739.dir/src.c.o
FAILED: CMakeFiles/cmTC_67739.dir/src.c.o
/usr/lib/ccache/cc -Wno-address-of-packed-member -march=armv8-a+crc -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror -DHAVE_GETCPU -o CMakeFiles/cmTC_67739.dir/src.c.o -c src.c
src.c: In function ‘main’:
src.c:4:23: error: implicit declaration of function ‘getcpu’ [-Werror=implicit-function-declaration]
int main() { return getcpu (0, 0); }
^~~~~~
src.c: At top level:
cc1: error: unrecognized command line option ‘-Wno-address-of-packed-member’ [-Werror]
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.

Source file was:

#define _GNU_SOURCE
#include <sched.h>
int main() { return getcpu (0, 0); }

Determining if the function SSL_set_async_callback exists failed with the following output:
Change Dir: /home/sirdas/code/commitb/vpp/build-root/build-vpp-native/vpp/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/ninja" "cmTC_65751"
[1/2] Building C object CMakeFiles/cmTC_65751.dir/CheckFunctionExists.c.o
[2/2] Linking C executable cmTC_65751
FAILED: cmTC_65751
: && /usr/lib/ccache/cc -Wno-address-of-packed-member -march=armv8-a+crc -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror -DCHECK_FUNCTION_EXISTS=SSL_set_async_callback CMakeFiles/cmTC_65751.dir/CheckFunctionExists.c.o -o cmTC_65751 /usr/lib/aarch64-linux-gnu/libssl.so /usr/lib/aarch64-linux-gnu/libcrypto.so && :
CMakeFiles/cmTC_65751.dir/CheckFunctionExists.c.o: In function `main':
/usr/share/cmake-3.10/Modules/CheckFunctionExists.c:17: undefined reference to `SSL_set_async_callback'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Thank you
Sirshak Das