[Buildroot] [PATCH v2 1/2] package/exim: remove libnsl linking with Glibc.
Luca Ceresoli
luca at lucaceresoli.net
Wed May 16 19:48:18 UTC 2018
Hi Romain,
On 16/05/2018 17:12, Luca Ceresoli wrote:
> Hi Romain,
>
> On 04/05/2018 23:02, Romain Naour wrote:
>> 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.>
>> Note: Fedora 28 has switched to the new libnsl library that bring
>> IPV6 support. [2]
>
> ...and this triggered host toolchain issues such as:
>
> http://autobuild.buildroot.net/results/a362dfef9e5187931431000c54f03f841d17c847/
>
> The reason is that the host tools generates by exim (namely buildconfig)
> are built out of build-br/Makefile, which is assembled by concatenating
> together several makefiles including OS/Makefile-Linux. So the
> buildconfig tool will try to link against libnsl, but that's not needed.
>
> As a positive side effect, this patch fixes the above issue.
>
> Reviewed-by: Luca Ceresoli <luca at lucaceresoli.net>
>
As discussed, I suggest the following changes to the log message. Feel
free to improve them.
Subject:
+package/exim: remove libnsl linking with Glibc.
-package/exim: remove libnsl linking and fix native tools build
Remove from description:
Note: Fedora 28 has switched to the new libnsl library that bring
IPV6 support. [2]
Add to description:
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.
Bye,
--
Luca
More information about the buildroot
mailing list