|
@@ -1,166 +0,0 @@
|
|
|
-From 88c0af910edd156075acf04d8497f541ed377d4b Mon Sep 17 00:00:00 2001
|
|
|
-From: Romain Naour <romain.naour@gmail.com>
|
|
|
-Date: Sun, 28 May 2017 00:25:11 +0200
|
|
|
-Subject: [PATCH] use pcap-config to fix static linking with libpcap
|
|
|
-
|
|
|
-When linking demo_mn_console statically with pcap, the CMake build
|
|
|
-system forget to link with other libraries linked with libpcap
|
|
|
-(-lnl-genl-3 -lnl-3 -ldbus-1 -pthread).
|
|
|
-
|
|
|
-[100%] Linking C executable demo_mn_console
|
|
|
-lib64/libpcap.a(pcap-linux.o): In function nl80211_init': pcap-linux.c:(.text+0x41e): undefined reference tonl_socket_alloc'
|
|
|
-
|
|
|
-To fix this, the build system could use pcap-config:
|
|
|
-pcap-config --libs --static
|
|
|
--L/path/to/sysroot/usr/lib -lpcap -L/path/to/sysroot/usr/lib/.libs
|
|
|
--lnl-genl-3 -lnl-3 -L/path/to/sysroot/usr/lib -ldbus-1 -pthread
|
|
|
-
|
|
|
-Fixes:
|
|
|
-http://autobuild.buildroot.net/results/f43/f437d09ac6c689c911e1885b95da33b692f2cb3c
|
|
|
-http://autobuild.buildroot.net/results/385/3859dc0f4de7e3284a96d5841f040f69f71842df
|
|
|
-https://github.com/OpenAutomationTechnologies/openPOWERLINK_V2/issues/187
|
|
|
-
|
|
|
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
|
|
----
|
|
|
- apps/demo_cn_console/linux.cmake | 20 ++++++++++++++++++++
|
|
|
- apps/demo_mn_console/linux.cmake | 20 ++++++++++++++++++++
|
|
|
- apps/demo_mn_qt/linux.cmake | 22 +++++++++++++++++++++-
|
|
|
- drivers/linux/drv_daemon_pcap/CMakeLists.txt | 22 +++++++++++++++++++++-
|
|
|
- 4 files changed, 82 insertions(+), 2 deletions(-)
|
|
|
-
|
|
|
-diff --git a/apps/demo_cn_console/linux.cmake b/apps/demo_cn_console/linux.cmake
|
|
|
-index 1c6f51c..7752917 100644
|
|
|
---- a/apps/demo_cn_console/linux.cmake
|
|
|
-+++ b/apps/demo_cn_console/linux.cmake
|
|
|
-@@ -46,8 +46,28 @@ SET (DEMO_ARCH_SOURCES
|
|
|
- ################################################################################
|
|
|
- # Set architecture specific libraries
|
|
|
-
|
|
|
-+IF (NOT CFG_COMPILE_SHARED_LIBRARY)
|
|
|
-+ SET(PCAP_CONFIG_OPTS --static)
|
|
|
-+ENDIF()
|
|
|
-+
|
|
|
- IF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
|
|
|
-+
|
|
|
-+find_program(PCAP_CONFIG NAMES pcap-config PATHS)
|
|
|
-+
|
|
|
-+if (PCAP_CONFIG)
|
|
|
-+ message (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
|
|
|
-+
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+
|
|
|
-+ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
|
|
|
-+else (PCAP_CONFIG)
|
|
|
-+ message (STATUS "pcap-config not found, using defaults...")
|
|
|
- SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
|
|
|
-+endif (PCAP_CONFIG)
|
|
|
-+
|
|
|
- ENDIF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
|
|
|
- SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
|
|
|
-
|
|
|
-diff --git a/apps/demo_mn_console/linux.cmake b/apps/demo_mn_console/linux.cmake
|
|
|
-index d24e4fc..5951dbf 100644
|
|
|
---- a/apps/demo_mn_console/linux.cmake
|
|
|
-+++ b/apps/demo_mn_console/linux.cmake
|
|
|
-@@ -46,8 +46,28 @@ SET (DEMO_ARCH_SOURCES
|
|
|
- ################################################################################
|
|
|
- # Set architecture specific libraries
|
|
|
-
|
|
|
-+IF (NOT CFG_COMPILE_SHARED_LIBRARY)
|
|
|
-+ SET(PCAP_CONFIG_OPTS --static)
|
|
|
-+ENDIF()
|
|
|
-+
|
|
|
- IF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
|
|
|
-+
|
|
|
-+find_program(PCAP_CONFIG NAMES pcap-config PATHS)
|
|
|
-+
|
|
|
-+if (PCAP_CONFIG)
|
|
|
-+ message (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
|
|
|
-+
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+
|
|
|
-+ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
|
|
|
-+else (PCAP_CONFIG)
|
|
|
-+ message (STATUS "pcap-config not found, using defaults...")
|
|
|
- SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
|
|
|
-+endif (PCAP_CONFIG)
|
|
|
-+
|
|
|
- ENDIF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
|
|
|
- SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
|
|
|
-
|
|
|
-diff --git a/apps/demo_mn_qt/linux.cmake b/apps/demo_mn_qt/linux.cmake
|
|
|
-index 6ed75ee..c69dbd9 100644
|
|
|
---- a/apps/demo_mn_qt/linux.cmake
|
|
|
-+++ b/apps/demo_mn_qt/linux.cmake
|
|
|
-@@ -37,8 +37,28 @@
|
|
|
- ################################################################################
|
|
|
- # Set architecture specific libraries
|
|
|
-
|
|
|
-+IF (NOT CFG_COMPILE_SHARED_LIBRARY)
|
|
|
-+ SET(PCAP_CONFIG_OPTS --static)
|
|
|
-+ENDIF()
|
|
|
-+
|
|
|
- IF(CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
|
|
|
-- SET(ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
|
|
|
-+
|
|
|
-+find_program(PCAP_CONFIG NAMES pcap-config PATHS)
|
|
|
-+
|
|
|
-+if (PCAP_CONFIG)
|
|
|
-+ message (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
|
|
|
-+
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+
|
|
|
-+ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
|
|
|
-+else (PCAP_CONFIG)
|
|
|
-+ message (STATUS "pcap-config not found, using defaults...")
|
|
|
-+ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
|
|
|
-+endif (PCAP_CONFIG)
|
|
|
-+
|
|
|
- ENDIF()
|
|
|
- SET(ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
|
|
|
-
|
|
|
-diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
|
|
|
-index ecceb4c..b362a34 100644
|
|
|
---- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt
|
|
|
-+++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
|
|
|
-@@ -140,7 +140,27 @@ INCLUDE_DIRECTORIES(
|
|
|
- ${CONTRIB_SOURCE_DIR}
|
|
|
- )
|
|
|
-
|
|
|
--SET (ARCH_LIBRARIES pcap pthread rt)
|
|
|
-+IF (NOT CFG_COMPILE_SHARED_LIBRARY)
|
|
|
-+ SET(PCAP_CONFIG_OPTS --static)
|
|
|
-+ENDIF()
|
|
|
-+
|
|
|
-+find_program(PCAP_CONFIG NAMES pcap-config PATHS)
|
|
|
-+
|
|
|
-+if (PCAP_CONFIG)
|
|
|
-+ message (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
|
|
|
-+
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+ execute_process (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
|
|
|
-+ OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
-+
|
|
|
-+ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
|
|
|
-+else (PCAP_CONFIG)
|
|
|
-+ message (STATUS "pcap-config not found, using defaults...")
|
|
|
-+ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
|
|
|
-+endif (PCAP_CONFIG)
|
|
|
-+
|
|
|
-+SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
|
|
|
-
|
|
|
- ADD_EXECUTABLE(${EXE_NAME} ${DRV_SOURCES})
|
|
|
- SET_PROPERTY(TARGET ${EXE_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
|
|
|
---
|
|
|
-2.9.4
|
|
|
-
|