[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: Detecting Compilation Errors in Busybox Configurations
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2012-04-20 12:58:11
Message-ID: CAK1hOcPG7e3aFFSyBk9j-Xx74g9o6G1ppoc+oTvSejauV+Ff7w () mail ! gmail ! com
[Download RAW message or body]

2012/4/19 Christian K=E4stner <christian.kaestner@uni-marburg.de>:
> Hi,
> In a research setting, I've been working on a tool TypeChef that can
> detect compilation errors over all compile-time configurations of a
> software. The tool is intended as a lint-like of tool that reports
> compilation errors and the configurations in occurs in. Essentially it
> predicts with which preprocessor flags the code will not compile.
>
> Among others, we have experimented with that tool on Busybox. In the
> current code base, we find the two following problems:
>
> * networking/httpd.c won't compile in configurations with CONFIG_HTTPD
> and CONFIG_FEATURE_HTTPD_BASIC_AUTH, without
> CONFIG_FEATURE_HTTPD_AUTH_MD5 and with CONFIG_PAM (struct pam_userinfo
> not defined)
>
> * shell/hush.c won't compile in configurations with CONFIG_HUSH and
> CONFIG_FEATURE_EDITING_SAVE_ON_EXIT but without CONFIG_HUSH_INTERACTIVE
> and without CONFIG_FEATURE_EDITING (field line_input_state unknown in
> globals)

Fixed both, and a few more on top of them. Thanks!

> My question is to what degree you as community are interested in such
> feedback? Unfortunately, we don't have the capacity to investigate and
> submit actual patches every time we could identify a problem. Would it
> be still helpful to send just (automatic) error reports, similar to the
> ones above?

Yes, it would be helpful.

> Finally, we were surprised that we found essentially no compile-time
> problems despite the large configuration space (we have found no
> compilation errors in released code). Do you have a process to prevent
> or detect those kinds of problems for releases, such as randomized testin=
g?

We have scripts/randomtest[.loop] which can be used to build
randomly-configured busybox and run testsuite on it.

I use it for pre-release testing.

-- =

vda
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic