Re: [PATCH] lib/string: shrink lib/string.i via IWYU

Andrew Morton
2023-12-05T21:04:50Z

On Tue, 05 Dec 2023 20:58:53 +0000 tanzirh@google.com wrote:

> This diff uses an open source tool include-what-you-use (IWYU) to modify
> the include list changing indirect includes to direct includes.
> IWYU is implemented using the IWYUScripts github repository which is a tool that is
> currently undergoing development. These changes seek to improve build times.
>
> This change to lib/string.c resulted in a preprocessed size of
> lib/string.i from 26371 lines to 5232 lines (-80%).
>
> If there are any problems with the output of the tool please raise an
> issue on the github.
>
> Link: https://github.com/ClangBuiltLinux/IWYUScripts

Issue:

> --- a/lib/string.c
> +++ b/lib/string.c
> @@ -16,16 +16,16 @@
>
> #define __NO_FORTIFY
> #include <linux/types.h>
> +#include <asm/bitsperlong.h>

The preferred way to import bit-fiddling stuff is to include
<linux/bits.h>. Under the hood this may include asm/bitsperlong.h. Or
it may not, depending on Kconfig settings (particularly architecture).