[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1029132: zeromq3: FTBFS on riscv64 (‘undefined’ was not declared in this scope)



Source: zeromq3
Version: 4.3.4-5
Severity: important
Tags: ftbfs patch upstream
Justification: fails to build from source (but built successfully in the past)
User: debian-riscv@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: i@hack3r.moe, debian-riscv@lists.debian.org

Dear maintainer,

zeromq3 failed on riscv64 due to missing `ZMQ_CACHELINE_SIZE` during
configuration on qemu-user. This is patched upstream. [1] Since some riscv64 buildd
machines are still using qemu-user, I've attached that patch so it can be
backported and fix FTBFS on riscv64.

If more help is needed, please let me know.

Cheers,
Eric

[1]: https://github.com/zeromq/libzmq/commit/48960c229388980fafa4528f9e7511fca972ff3b
>From 48960c229388980fafa4528f9e7511fca972ff3b Mon Sep 17 00:00:00 2001
From: Han Gao <gaohan@iscas.ac.cn>
Date: Tue, 10 Jan 2023 01:12:20 +0800
Subject: [PATCH] fix: fix build on qemu-user

In qemu-user, CACHELINE_SIZE probe is undefined

Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
---
 CMakeLists.txt      |  3 ++-
 RELICENSE/hangao.md | 13 +++++++++++++
 acinclude.m4        |  2 +-
 3 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100644 RELICENSE/hangao.md

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8672d6179..072a6507e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -481,7 +481,8 @@ execute_process(
   ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
 if(CACHELINE_SIZE STREQUAL ""
    OR CACHELINE_SIZE EQUAL 0
-   OR CACHELINE_SIZE EQUAL -1)
+   OR CACHELINE_SIZE EQUAL -1
+   OR CACHELINE_SIZE EQUAL "undefined")
   set(ZMQ_CACHELINE_SIZE 64)
 else()
   set(ZMQ_CACHELINE_SIZE ${CACHELINE_SIZE})
diff --git a/RELICENSE/hangao.md b/RELICENSE/hangao.md
new file mode 100644
index 000000000..de100bb59
--- /dev/null
+++ b/RELICENSE/hangao.md
@@ -0,0 +1,13 @@
+# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
+
+This is a statement by Han Gao that grants permission to relicense its copyrights in the libzmq C++
+library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other 
+Open Source Initiative approved license chosen by the current ZeroMQ 
+BDFL (Benevolent Dictator for Life).
+
+A portion of the commits made by the Github handle "Rabenda", with
+commit author "Han Gao <gaohan@iscas.ac.cn>" or "Han Gao <rabenda.cn@gmail.com>", are copyright of Han Gao .
+This document hereby grants the libzmq project team to relicense libzmq, 
+including all past, present and future contributions of the author listed above.
+
+Han Gao 2023/01/10
diff --git a/acinclude.m4 b/acinclude.m4
index ac55776e5..f27fc8e83 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1254,7 +1254,7 @@ AC_DEFUN([LIBZMQ_CHECK_CACHELINE], [{
     AC_CHECK_TOOL(libzmq_getconf, getconf)
     if ! test "x$libzmq_getconf" = "x"; then
         zmq_cacheline_size=$($libzmq_getconf LEVEL1_DCACHE_LINESIZE 2>/dev/null || echo 64)
-        if test "x$zmq_cacheline_size" = "x0" -o  "x$zmq_cacheline_size" = "x-1"; then
+        if test "x$zmq_cacheline_size" = "x0" -o  "x$zmq_cacheline_size" = "x-1" -o "x$zmq_cacheline_size" = "xundefined"; then
             # getconf on some architectures does not know the size, try to fallback to
             # the value the kernel knows on Linux
             zmq_cacheline_size=$(cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size 2>/dev/null || echo 64)

Reply to: