mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 22:11:59 -09:00
package/mosquitto: fix build failure with recent glibc
Fix link-time build failures because glibc>=2.34 no longer ships libanl.so
as it has been consolidated into libc.
See the inner patch message for more details.
Fixes: https://autobuild.buildroot.org/results/16223cd838876abc9b6f941f7dc20d23afa32c3b/
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit a49354e46f)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
committed by
Thomas Perale
parent
d552f78c63
commit
6a3055eb04
@@ -0,0 +1,47 @@
|
|||||||
|
From 447a6aa8df882a67ca3df6f5e95be42e1463eaf0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Titouan Christophe <titouan.christophe@mind.be>
|
||||||
|
Date: Fri, 29 Aug 2025 19:47:34 +0200
|
||||||
|
Subject: [PATCH] Add configure-time check for -lanl
|
||||||
|
|
||||||
|
Since glibc 2.34, libanl features have been integrated directly into libc [1].
|
||||||
|
For backward compatibility, some toolchains still provide a shim for
|
||||||
|
libanl as a separate .so, but new toolchains (for example for new archs
|
||||||
|
like loongarch) do not provide it anymore.
|
||||||
|
|
||||||
|
In such a case, building mosquitto fails at link time with (see [2])
|
||||||
|
> cannot find -lanl: No such file or directory
|
||||||
|
|
||||||
|
To fix this problem while maintaining compatibility with older toolchains,
|
||||||
|
check if a simple program that uses libanl can be compiled without -lanl,
|
||||||
|
and only add the linker flag otherwise.
|
||||||
|
|
||||||
|
[1] https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html
|
||||||
|
[2] https://autobuild.buildroot.org/results/16223cd838876abc9b6f941f7dc20d23afa32c3b/build-end.log
|
||||||
|
|
||||||
|
Upstream: https://github.com/eclipse-mosquitto/mosquitto/pull/3358
|
||||||
|
|
||||||
|
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
|
||||||
|
---
|
||||||
|
config.mk | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/config.mk b/config.mk
|
||||||
|
index 34d5163f..cc7987c4 100644
|
||||||
|
--- a/config.mk
|
||||||
|
+++ b/config.mk
|
||||||
|
@@ -318,8 +318,11 @@ ifeq ($(WITH_EC),yes)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(WITH_ADNS),yes)
|
||||||
|
- BROKER_LDADD:=$(BROKER_LDADD) -lanl
|
||||||
|
BROKER_CPPFLAGS:=$(BROKER_CPPFLAGS) -DWITH_ADNS
|
||||||
|
+ NEED_LIBANL := $(shell printf '#include <stdlib.h>\n#include <netdb.h>\nint main(){return getaddrinfo_a(0, NULL, 0, NULL);}'| $(CC) -D_GNU_SOURCE -o /dev/null -x c - 2>/dev/null || echo YES)
|
||||||
|
+ ifeq ($(NEED_LIBANL),YES)
|
||||||
|
+ BROKER_LDADD:=$(BROKER_LDADD) -lanl
|
||||||
|
+ endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(WITH_CONTROL),yes)
|
||||||
|
--
|
||||||
|
2.50.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user