lldpd: fix autoreconf failure

The lldpd sources ship a modified local AX_LIB_READLINE M4 macro which
conflicts with the official macro shipped by autoconf-archive.

Due to the official macro having the same name and a higher serial
number, autoconf will prefer including that one instead of the local
copy, preventing the substitution of @READLINE_LIBS@ in Makefile.in
templates, ultimately leading to the following build failure when
linking lldpcli:

    ...-gcc: error: READLINE_LIBS@: No such file or directory

Avoid this problem by renaming the locally shipped macro to not clash
with the official implementation anymore.

Ref: https://github.com/lldpd/lldpd/pull/423
Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
Tested-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2020-12-09 11:53:04 +01:00
parent a58826c34f
commit dd5b3b58d8

View File

@ -0,0 +1,61 @@
From 23509dc05b24a28fb46022800e0e271ae0118de2 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Wed, 9 Dec 2020 12:04:04 +0100
Subject: [PATCH] build: prevent conflict with official AX_LIB_READLINE macro
On systems where the official AX_LIB_READLINE (ax_lib_readline.m4) is
present in a globally shared autoconf include directory, auto(re)conf
will prefer including that offical version over the local variant due
to the offical macro having a higher serial number.
As a consequence, @READLINE_LIBS@ will not be substituted in *.in files,
eventually failing the compilation with errors similar to:
gcc: error: READLINE_LIBS@: No such file or directory
Avoid this problem by renaming the incompatible local macro to
AX_LIB_READLINE_LLDPD which is sufficient to prevent any clashes.
We encountered this problem on OpenWrt which uses GNU autoconf-archive
to provide commonly used M4 macros through a global include directory,
which happens to ship AX_LIB_READLINE as well.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
configure.ac | 2 +-
m4/ax_lib_readline.m4 | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
--- a/configure.ac
+++ b/configure.ac
@@ -273,7 +273,7 @@ AC_ARG_WITH([readline],
[],
[with_readline=auto])
if test x"$with_readline" != x"no"; then
- AX_LIB_READLINE
+ AX_LIB_READLINE_LLDPD
if test x"$with_readline" != x"check" -a x"$with_readline" != x"auto"; then
if test x"$ax_cv_lib_readline" = x"no"; then
AC_MSG_FAILURE([*** no readline support found])
--- a/m4/ax_lib_readline.m4
+++ b/m4/ax_lib_readline.m4
@@ -4,7 +4,7 @@
#
# SYNOPSIS
#
-# AX_LIB_READLINE
+# AX_LIB_READLINE_LLDPD
#
# DESCRIPTION
#
@@ -66,8 +66,8 @@
#serial 6
-AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE])
-AC_DEFUN([AX_LIB_READLINE], [
+AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE_LLDPD])
+AC_DEFUN([AX_LIB_READLINE_LLDPD], [
AC_CACHE_CHECK([for a readline compatible library],
ax_cv_lib_readline, [
_save_LIBS="$LIBS"