diff mbox

[v5,1/3] busybox: disable nslookup applet

Message ID 1436890174-23236-1-git-send-email-guido@vanguardiasur.com.ar
State Changes Requested
Headers show

Commit Message

Guido Martínez July 14, 2015, 4:09 p.m. UTC
Some toolchains have no resolver support (res_* family), so they fail to
build this applet (which is the only user of those functions). Instead
of selectively disabling it on such limited toolchains, just drop it
from the default config, since (to the best of my knowledge) is not
widely used.

Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
---
 package/busybox/busybox.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni July 14, 2015, 4:31 p.m. UTC | #1
Dear Guido Martínez,

On Tue, 14 Jul 2015 13:09:32 -0300, Guido Martínez wrote:
> Some toolchains have no resolver support (res_* family), so they fail to
> build this applet (which is the only user of those functions). Instead
> of selectively disabling it on such limited toolchains, just drop it
> from the default config, since (to the best of my knowledge) is not
> widely used.
> 
> Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>

I know this solution was suggested to you instead of adding a new
toolchain option that tells us whether resolver support is available or
not.

However, the problem with the solution of changing the Busybox config
file is that it fixes Busybox only: there will possibly be plenty of
other packages using res_*(). And we will have no way to fix those
packages in a proper way, except possibly by making them 'depends
on !BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412'. But if other
OSELAS toolchains for other architectures also lack resolver support,
then we will have to add more and more of those exclusions.

Conclusion: I am wondering if your initial solution was not the right
one.

Thomas
Thomas Petazzoni July 14, 2015, 4:55 p.m. UTC | #2
Hello,

On Tue, 14 Jul 2015 18:31:26 +0200, Thomas Petazzoni wrote:

> I know this solution was suggested to you instead of adding a new
> toolchain option that tells us whether resolver support is available or
> not.
> 
> However, the problem with the solution of changing the Busybox config
> file is that it fixes Busybox only: there will possibly be plenty of
> other packages using res_*(). And we will have no way to fix those
> packages in a proper way, except possibly by making them 'depends
> on !BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412'. But if other
> OSELAS toolchains for other architectures also lack resolver support,
> then we will have to add more and more of those exclusions.
> 
> Conclusion: I am wondering if your initial solution was not the right
> one.

I did a comparison between the uClibc_config.h of the OSELAS Cortex-M3
toolchain and the uClibc_config.h of a uClibc toolchain built by
Buildroot, and there are quite a few differences in the configuration.

First and foremost, OSELAS is using uClibc 0.9.33.2 with almost no
patches. And in Buildroot, we had to add a lot of patches to uClibc to
make it properly support a number of packages (which is also why we've
switched to uClibc-ng as the default C library).

And then, the uClibc configuration itself is quite different: a number
of features that we enable by default in the Buildroot uClibc
configuration are not enabled in the OSELAS Cortex-M3 uClibc. So when
we will start adding the OSELAS Cortex-M3 toolchain in the
autobuilders, it will probably start showing a number of failures
caused by this uClibc version/configuration being quite different from
the usual Buildroot expectations.

So, we've got two possibilities here:

 1/ Just give up on the OSELAS toolchain, and focus on making Buildroot
    capable of building a Cortex-M3 toolchain.

 2/ Really add the toolchain anyway, but be prepared for some
    additional work to handle all those issues. Since the Cortex-M3 is
    noMMU, it means that a significant fraction of the packages are not
    available, so maybe it will be more reasonable that I expect. But I
    was in fact hoping to be able to add other OSELAS toolchains, even
    for MMU capable platforms. But if they have such uClibc
    configurations, we might be limited to using their glibc toolchains.

What do you think?

Thomas
Gustavo Zacarias July 14, 2015, 5:10 p.m. UTC | #3
On 14/07/15 13:55, Thomas Petazzoni wrote:

> I did a comparison between the uClibc_config.h of the OSELAS Cortex-M3
> toolchain and the uClibc_config.h of a uClibc toolchain built by
> Buildroot, and there are quite a few differences in the configuration.
>
> First and foremost, OSELAS is using uClibc 0.9.33.2 with almost no
> patches. And in Buildroot, we had to add a lot of patches to uClibc to
> make it properly support a number of packages (which is also why we've
> switched to uClibc-ng as the default C library).
>
> And then, the uClibc configuration itself is quite different: a number
> of features that we enable by default in the Buildroot uClibc
> configuration are not enabled in the OSELAS Cortex-M3 uClibc. So when
> we will start adding the OSELAS Cortex-M3 toolchain in the
> autobuilders, it will probably start showing a number of failures
> caused by this uClibc version/configuration being quite different from
> the usual Buildroot expectations.
>
> So, we've got two possibilities here:
>
>   1/ Just give up on the OSELAS toolchain, and focus on making Buildroot
>      capable of building a Cortex-M3 toolchain.
>
>   2/ Really add the toolchain anyway, but be prepared for some
>      additional work to handle all those issues. Since the Cortex-M3 is
>      noMMU, it means that a significant fraction of the packages are not
>      available, so maybe it will be more reasonable that I expect. But I
>      was in fact hoping to be able to add other OSELAS toolchains, even
>      for MMU capable platforms. But if they have such uClibc
>      configurations, we might be limited to using their glibc toolchains.
>
> What do you think?

As far as i remember as you say uclibc for M3 requires minimal patching.
IMHO option 1 would be best rather than the "black box" solution 
(besides a lack of options being problematic).
It would help Waldemar include any required patches upstream in 
uclibc-ng going forward.
Regards.
Guido Martínez July 15, 2015, 5:19 p.m. UTC | #4
Hi Thomas,

On Tue, Jul 14, 2015 at 06:55:14PM +0200, Thomas Petazzoni wrote:
> [...]
>
> I did a comparison between the uClibc_config.h of the OSELAS Cortex-M3
> toolchain and the uClibc_config.h of a uClibc toolchain built by
> Buildroot, and there are quite a few differences in the configuration.
> 
> First and foremost, OSELAS is using uClibc 0.9.33.2 with almost no
> patches. And in Buildroot, we had to add a lot of patches to uClibc to
> make it properly support a number of packages (which is also why we've
> switched to uClibc-ng as the default C library).
> 
> And then, the uClibc configuration itself is quite different: a number
> of features that we enable by default in the Buildroot uClibc
> configuration are not enabled in the OSELAS Cortex-M3 uClibc. So when
> we will start adding the OSELAS Cortex-M3 toolchain in the
> autobuilders, it will probably start showing a number of failures
> caused by this uClibc version/configuration being quite different from
> the usual Buildroot expectations.
> 
> So, we've got two possibilities here:
> 
>  1/ Just give up on the OSELAS toolchain, and focus on making Buildroot
>     capable of building a Cortex-M3 toolchain.
> 
>  2/ Really add the toolchain anyway, but be prepared for some
>     additional work to handle all those issues. Since the Cortex-M3 is
>     noMMU, it means that a significant fraction of the packages are not
>     available, so maybe it will be more reasonable that I expect. But I
>     was in fact hoping to be able to add other OSELAS toolchains, even
>     for MMU capable platforms. But if they have such uClibc
>     configurations, we might be limited to using their glibc toolchains.
> 
> What do you think?

I have no problem with option 1. In fact, I was going to try to do it
anyway even if the OSELAS toolchain got accepted. I'll start looking
into it in detail and report back. I haven't done anything similar in
the past so it might take me a while.

Thanks to all who reviewed the patches!
diff mbox

Patch

diff --git a/package/busybox/busybox.config b/package/busybox/busybox.config
index 8d1d80a..91c3006 100644
--- a/package/busybox/busybox.config
+++ b/package/busybox/busybox.config
@@ -838,7 +838,7 @@  CONFIG_IPRULE=y
 CONFIG_NETSTAT=y
 # CONFIG_FEATURE_NETSTAT_WIDE is not set
 # CONFIG_FEATURE_NETSTAT_PRG is not set
-CONFIG_NSLOOKUP=y
+# CONFIG_NSLOOKUP is not set
 # CONFIG_NTPD is not set
 # CONFIG_FEATURE_NTPD_SERVER is not set
 # CONFIG_FEATURE_NTPD_CONF is not set