0001-CMakesLists.txt-fix-static-build-with-pcap.patch 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. From 89ad9c143825b13d028c2f1713d55e83135d5c0f Mon Sep 17 00:00:00 2001
  2. From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  3. Date: Sat, 5 Sep 2020 15:38:33 +0200
  4. Subject: [PATCH] CMakesLists.txt: fix static build with pcap
  5. Use pkg-config to find the dependencies of pcap such as libnl otherwise
  6. a static-only build will fail on:
  7. [100%] Linking C executable ef
  8. /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /srv/storage/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libpcap.a(pcap-linux.o): in function `nl80211_init':
  9. pcap-linux.c:(.text+0x460): undefined reference to `nl_socket_alloc'
  10. /srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: pcap-linux.c:(.text+0x498): undefined reference to `genl_connect'
  11. Fixes:
  12. - http://autobuild.buildroot.org/results/99062bfc8c21c32bc835acae675aede7c9cf0c90
  13. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  14. [Upstream status: https://github.com/microchip-ung/easyframes/pull/2]
  15. ---
  16. CMakeLists.txt | 20 ++++++++++++++------
  17. 1 file changed, 14 insertions(+), 6 deletions(-)
  18. diff --git a/CMakeLists.txt b/CMakeLists.txt
  19. index a62a950..5be128c 100644
  20. --- a/CMakeLists.txt
  21. +++ b/CMakeLists.txt
  22. @@ -7,13 +7,21 @@ include_directories(src)
  23. set(_LIBPCAP "")
  24. -FIND_PATH(PCAP_INCLUDE_DIR NAMES pcap/pcap.h)
  25. -FIND_LIBRARY(PCAP_LIBRARY NAMES pcap)
  26. -
  27. -if (PCAP_LIBRARY)
  28. +find_package(PkgConfig)
  29. +pkg_check_modules(PCAP libpcap)
  30. +if (PCAP_FOUND)
  31. add_definitions(-DHAS_LIBPCAP)
  32. - include_directories(${PCAP_INCLUDE_DIR})
  33. - set(_LIBPCAP ${PCAP_LIBRARY})
  34. + include_directories(${PCAP_INCLUDE_DIRS})
  35. + set(_LIBPCAP ${PCAP_LIBRARIES})
  36. +else()
  37. + FIND_PATH(PCAP_INCLUDE_DIR NAMES pcap/pcap.h)
  38. + FIND_LIBRARY(PCAP_LIBRARY NAMES pcap)
  39. +
  40. + if (PCAP_LIBRARY)
  41. + add_definitions(-DHAS_LIBPCAP)
  42. + include_directories(${PCAP_INCLUDE_DIR})
  43. + set(_LIBPCAP ${PCAP_LIBRARY})
  44. + endif()
  45. endif()
  46. add_library(libef STATIC
  47. --
  48. 2.28.0