From: Romain Naour <romain.naour@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 1/2] package/exim: remove libnsl linking and fix native tools build
Date: Thu, 17 May 2018 09:21:39 +0200 [thread overview]
Message-ID: <20180517072140.6432-1-romain.naour@gmail.com> (raw)
glibc now considers its built-in libnsl as being obsolete, and requires
passing --enable-obsolete-libnsl to have it built and installed. libnsl
is now provided as a separate project [1], but it isn't packaged yet in
Buildroot.
In preparation for dropping --enable-obsolete-libnsl from the glibc
package, this commit ensures that exim doesn't use libnsl. It was
already the case for uclibc and musl toolchains, so this commit simply
extends that to make sure libnsl is also not used with glibc toolchains.
Only Exim's nis.so and nisplus.so lookup modules require libnsl,
but they are not build by default. So we can safely remove -lnsl
from the Makefile-Linux. If someone want these modules, a new libnsl
package must be added first to provide nsl library.
This also fixes the following build error on recent distributions where
libnsl is not installed (e.g. Fedora 28 which has switched to the new
libnsl library that brings IPV6 support. [2]):
/bin/sh ../scripts/Configure-os.c
/usr/bin/gcc buildconfig.c
/usr/bin/ld: cannot find -lnsl
collect2: error: ld returned 1 exit status
This happens while exim builds a host tool named buildconfig. The build
is done in build-br/Makefile, which in turn is assembled by
concatenating together several makefiles, including OS/Makefile-Linux.
So the buildconfig tool will be built with the same $(LIBS) as the
target executables, including -lnsl. Removing -lnsl also fixes building
buildconfig since it does not need libnsl.
Fixes:
http://autobuild.buildroot.net/results/a362dfef9e5187931431000c54f03f841d17c847
[1] https://github.com/thkukuk/libnsl.git
[2] https://fedoraproject.org/wiki/Changes/NISIPv6
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>
Cc: Baruch Siach <baruch@tkos.co.il>
---
v3: Also comment the buildconfig build issue on the host with Fedora 28 (Luca)
Add a comment about this issue in exim.mk
---
package/exim/exim.mk | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/package/exim/exim.mk b/package/exim/exim.mk
index 37eab501a4..f258ac2753 100644
--- a/package/exim/exim.mk
+++ b/package/exim/exim.mk
@@ -72,13 +72,17 @@ define EXIM_USE_DEFAULT_CONFIG_FILE_OPENSSL
endef
endif
-# only glibc provides libnsl, remove -lnsl for all other toolchains
+# Only Exim's nis.so and nisplus.so lookup modules require libnsl,
+# but they are not build by default.
+# libnsl has been deprecated from Glibc and no other libc provide it.
+# There is no libnsl package in Buildroot yet.
+# Remove -lnsl for all toolchains.
# http://bugs.exim.org/show_bug.cgi?id=1564
-ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),)
+# This also fixes a host build issue on recent distributions where
+# libnsl is not installed by default.
define EXIM_REMOVE_LIBNSL_FROM_MAKEFILE
$(SED) 's/-lnsl//g' $(@D)/OS/Makefile-Linux
endef
-endif
# musl does not provide struct ip_options nor struct ip_opts (but it is
# available with both glibc and uClibc)
--
2.14.3
next reply other threads:[~2018-05-17 7:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-17 7:21 Romain Naour [this message]
2018-05-17 7:21 ` [Buildroot] [PATCH v3 2/2] Revert "glibc: install the obsolete libnsl" Romain Naour
2018-05-17 7:26 ` [Buildroot] [PATCH v3 1/2] package/exim: remove libnsl linking and fix native tools build Baruch Siach
2018-05-19 19:01 ` Romain Naour
2018-05-17 20:19 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180517072140.6432-1-romain.naour@gmail.com \
--to=romain.naour@gmail.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox