Message ID | 20171128104817.15073-1-casantos@datacom.ind.br |
---|---|
State | Superseded |
Headers | show |
Series | mtools: do not link to libbsd | expand |
Hi Carlos, On Tue, Nov 28, 2017 at 08:48:17AM -0200, Carlos Santos wrote: > mtools is unneccessarily linked to libbsd if this library is found by > the configuration script. The same may happen to host-mtools if some > libbsd-devel package is installed on the host machine. Prevent this by > forcing configure to ignore the existence o libbsd. > > I stumbled on this when I built host-mtools and removed libbsd-devel to > upgrade to Fedora 27, due to Bug 1504831*. The previously built > host/bin/mtools started to fail due to the missing libbsd.x.y.so > > * https://bugzilla.redhat.com/show_bug.cgi?id=1504831 This is a valid reason to remove the host-mtools dependency on libbsd ... > Signed-off-by: Carlos Santos <casantos@datacom.ind.br> > --- > package/mtools/mtools.mk | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/package/mtools/mtools.mk b/package/mtools/mtools.mk > index 5db548fad9..1a6218831e 100644 > --- a/package/mtools/mtools.mk > +++ b/package/mtools/mtools.mk > @@ -13,9 +13,13 @@ MTOOLS_CONF_OPTS = --without-x > # info documentation not needed > MTOOLS_CONF_ENV = \ > ac_cv_func_setpgrp_void=yes \ > + ac_cv_lib_bsd_gethostbyname=no \ > + ac_cv_lib_bsd_main=no \ ... but why no add an optional dependency on libbds for the target mtools package? In case we build target libbsd anyway, having mtools use libbsd would presumably reduce the binary size of mtools somewhat, isn't it? > ac_cv_path_INSTALL_INFO= > > HOST_MTOOLS_CONF_ENV = \ > + ac_cv_lib_bsd_gethostbyname=no \ > + ac_cv_lib_bsd_main=no \ > ac_cv_path_INSTALL_INFO= > > # link with iconv if enabled baruch
> From: "Baruch Siach" <baruch@tkos.co.il> > To: "Carlos Santos" <casantos@datacom.ind.br> > Cc: buildroot@buildroot.org > Sent: Tuesday, November 28, 2017 10:03:27 AM > Subject: Re: [Buildroot] [PATCH] mtools: do not link to libbsd > Hi Carlos, > [...] >> diff --git a/package/mtools/mtools.mk b/package/mtools/mtools.mk >> index 5db548fad9..1a6218831e 100644 >> --- a/package/mtools/mtools.mk >> +++ b/package/mtools/mtools.mk >> @@ -13,9 +13,13 @@ MTOOLS_CONF_OPTS = --without-x >> # info documentation not needed >> MTOOLS_CONF_ENV = \ >> ac_cv_func_setpgrp_void=yes \ >> + ac_cv_lib_bsd_gethostbyname=no \ >> + ac_cv_lib_bsd_main=no \ > > ... but why no add an optional dependency on libbds for the target mtools > package? In case we build target libbsd anyway, having mtools use libbsd would > presumably reduce the binary size of mtools somewhat, isn't it? From the configure script: # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. On Buildroot gethostbyname is provided by glibc/uClibc/musl.
Hi Carlos, On Tue, Nov 28, 2017 at 10:36:02AM -0200, Carlos Santos wrote: > > From: "Baruch Siach" <baruch@tkos.co.il> > > To: "Carlos Santos" <casantos@datacom.ind.br> > > Cc: buildroot@buildroot.org > > Sent: Tuesday, November 28, 2017 10:03:27 AM > > Subject: Re: [Buildroot] [PATCH] mtools: do not link to libbsd > > [...] > >> diff --git a/package/mtools/mtools.mk b/package/mtools/mtools.mk > >> index 5db548fad9..1a6218831e 100644 > >> --- a/package/mtools/mtools.mk > >> +++ b/package/mtools/mtools.mk > >> @@ -13,9 +13,13 @@ MTOOLS_CONF_OPTS = --without-x > >> # info documentation not needed > >> MTOOLS_CONF_ENV = \ > >> ac_cv_func_setpgrp_void=yes \ > >> + ac_cv_lib_bsd_gethostbyname=no \ > >> + ac_cv_lib_bsd_main=no \ > > > > ... but why no add an optional dependency on libbds for the target mtools > > package? In case we build target libbsd anyway, having mtools use libbsd would > > presumably reduce the binary size of mtools somewhat, isn't it? > > From the configure script: > > # The functions gethostbyname, getservbyname, and inet_addr are > # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. > > On Buildroot gethostbyname is provided by glibc/uClibc/musl. So if I understand correctly, mtools unnecessarily adds libbsd in a DT_NEEDED filed of its dynamic section, but it does not actually use anything from libbsd under Linux. Is that correct? If so, please add this explanation in the commit log. baruch
diff --git a/package/mtools/mtools.mk b/package/mtools/mtools.mk index 5db548fad9..1a6218831e 100644 --- a/package/mtools/mtools.mk +++ b/package/mtools/mtools.mk @@ -13,9 +13,13 @@ MTOOLS_CONF_OPTS = --without-x # info documentation not needed MTOOLS_CONF_ENV = \ ac_cv_func_setpgrp_void=yes \ + ac_cv_lib_bsd_gethostbyname=no \ + ac_cv_lib_bsd_main=no \ ac_cv_path_INSTALL_INFO= HOST_MTOOLS_CONF_ENV = \ + ac_cv_lib_bsd_gethostbyname=no \ + ac_cv_lib_bsd_main=no \ ac_cv_path_INSTALL_INFO= # link with iconv if enabled
mtools is unneccessarily linked to libbsd if this library is found by the configuration script. The same may happen to host-mtools if some libbsd-devel package is installed on the host machine. Prevent this by forcing configure to ignore the existence o libbsd. I stumbled on this when I built host-mtools and removed libbsd-devel to upgrade to Fedora 27, due to Bug 1504831*. The previously built host/bin/mtools started to fail due to the missing libbsd.x.y.so * https://bugzilla.redhat.com/show_bug.cgi?id=1504831 Signed-off-by: Carlos Santos <casantos@datacom.ind.br> --- package/mtools/mtools.mk | 4 ++++ 1 file changed, 4 insertions(+)