Follow up to the discussion on the last version bump.
zmq does not (try to) detect these features when cross compiling,
so we must assist.
Output of prepare stage contains this now:

    checking whether EFD_CLOEXEC is supported... (cached) yes
    …
    checking whether SOCK_CLOEXEC is supported... (cached) yes
    checking whether O_CLOEXEC is supported... (cached) yes
    checking whether SO_BINDTODEVICE is supported... (cached) yes
    checking whether SO_KEEPALIVE is supported... (cached) yes
    checking whether TCP_KEEPCNT is supported... (cached) yes
    checking whether TCP_KEEPIDLE is supported... (cached) yes
    checking whether TCP_KEEPINTVL is supported... (cached) yes
    checking whether TCP_KEEPALIVE is supported... not during cross-compile
    checking whether SO_PRIORITY is supported... (cached) yes
    checking whether getrandom is supported... (cached) yes

Link: 
https://lore.ptxdist.org/ptxdist/20220708151537.gk20...@pengutronix.de/T/#m9b6e02442a30b09d25fe98258051ebd34ee4f94b
Signed-off-by: Alexander Dahl <a...@thorsis.com>
---

Notes:
    v3:
      - Added s-o-b
    
    v2:
      - also enable getrandom(2)
      - reorganize comments to reflect glibc follows kernel,
        so years are not swapped

 rules/libzmq.make | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/rules/libzmq.make b/rules/libzmq.make
index d221ef6ac..94a5f84d8 100644
--- a/rules/libzmq.make
+++ b/rules/libzmq.make
@@ -34,6 +34,30 @@ LIBZMQ_CONF_ENV              := \
        $(CROSS_ENV) \
        ac_cv_lib_sodium_sodium_init=no
 
+# Assume these are always available:
+# - O_CLOEXEC          (2007, kernel 2.6.23, glibc 2.7)
+# - EFD_CLOEXEC                (2008, kernel 2.6.27, glibc 2.9)
+# - SOCK_CLOEXEC       (2008, kernel 2.6.27, glibc 2.9)
+# - SO_BINDTODEVICE    (2009, kernel 2.6.31)
+# - SO_KEEPALIVE       (2009, kernel 2.6.31, glibc 1.x)
+# - SO_PRIORITY                (2009, kernel 2.6.31)
+# - TCP_KEEPCNT                (pre 2005/2013, pre kernel 2.6.12, glibc 2.18)
+# - TCP_KEEPIDLE       (pre 2005/2013, pre kernel 2.6.12, glibc 2.18)
+# - TCP_KEEPINTVL      (pre 2005/2013, pre kernel 2.6.12, glibc 2.18)
+# - getrandom          (2014/2017, kernel 3.17, glibc 2.25)
+# Note: TCP_KEEPALIVE is not available in glibc/kernel.
+LIBZMQ_CONF_ENV                += \
+       libzmq_cv_o_cloexec=yes \
+       libzmq_cv_efd_cloexec=yes \
+       libzmq_cv_sock_cloexec=yes \
+       libzmq_cv_so_bindtodevice=yes \
+       libzmq_cv_so_keepalive=yes \
+       libzmq_cv_so_priority=yes \
+       libzmq_cv_tcp_keepcnt=yes \
+       libzmq_cv_tcp_keepidle=yes \
+       libzmq_cv_tcp_keepintvl=yes \
+       libzmq_cv_getrandom=yes
+
 #
 # autoconf
 #

base-commit: 20275946c697076ca6f696276117daf08ca6f4d1
-- 
2.30.2


Reply via email to