diff mbox

[1/2] s390: delete unneeded #include <linux/kconfig.h> from facilities_src.h

Message ID 1478403928-20799-1-git-send-email-yamada.masahiro@socionext.com
State New
Headers show

Commit Message

Masahiro Yamada Nov. 6, 2016, 3:45 a.m. UTC
The header facilities_src.h is only included from gen_facilities.c
and the tool is compiled with the following extra options:

    HOSTCFLAGS_gen_facilities.o += -Wall $(LINUXINCLUDE)

Please note $(LINUXINCLUDE) is expanded into build options including:

    -include $(srctree)/include/linux/kconfig.h

So, the Makefile always forces the tool to include kconfig.h, i.e.,
the #include <linux/kconfig.h> directive in the header is redundant.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 arch/s390/include/asm/facilities_src.h | 2 --
 1 file changed, 2 deletions(-)

-- 
1.9.1

Comments

Paul Bolle Nov. 7, 2016, 12:52 p.m. UTC | #1
On Sun, 2016-11-06 at 12:45 +0900, Masahiro Yamada wrote:
> The header facilities_src.h is only included from gen_facilities.c

> and the tool is compiled with the following extra options:

> 

>     HOSTCFLAGS_gen_facilities.o += -Wall $(LINUXINCLUDE)

> 

> Please note $(LINUXINCLUDE) is expanded into build options including:

> 

>     -include $(srctree)/include/linux/kconfig.h

> 

> So, the Makefile always forces the tool to include kconfig.h, i.e.,

> the #include <linux/kconfig.h> directive in the header is redundant.


As far as I can see the only kernel header that gen_facilities.c is actually
interested in is autoconf.h. (autoconf.h will be included via in kconfig.h.)
So it seems the odd $(LINUXINCLUDE) variable in that Makefile could be
replaced with something like:
    -include $(srctree)/include/generated/autoconf.h


Paul Bolle
Masahiro Yamada Nov. 8, 2016, 1:50 a.m. UTC | #2
Hi Paul,


2016-11-07 21:52 GMT+09:00 Paul Bolle <pebolle@tiscali.nl>:
> On Sun, 2016-11-06 at 12:45 +0900, Masahiro Yamada wrote:

>> The header facilities_src.h is only included from gen_facilities.c

>> and the tool is compiled with the following extra options:

>>

>>     HOSTCFLAGS_gen_facilities.o += -Wall $(LINUXINCLUDE)

>>

>> Please note $(LINUXINCLUDE) is expanded into build options including:

>>

>>     -include $(srctree)/include/linux/kconfig.h

>>

>> So, the Makefile always forces the tool to include kconfig.h, i.e.,

>> the #include <linux/kconfig.h> directive in the header is redundant.

>

> As far as I can see the only kernel header that gen_facilities.c is actually

> interested in is autoconf.h. (autoconf.h will be included via in kconfig.h.)

> So it seems the odd $(LINUXINCLUDE) variable in that Makefile could be

> replaced with something like:

>     -include $(srctree)/include/generated/autoconf.h



This would break O= build because autoconf.h is a generated file.

Rather, it should be
      -include $(objtree)/include/generated/autoconf.h



I thought of this at first, but I was not quite sure
if the file path include/generated/autoconf.h is a guaranteed interface.


Basically, now we are supposed to include autoconf.h via kconfig.h.

So, I thought $(LINUXINCLUDE) is a more stable interface
than specifying the exact path to autoconf.h

I doubt that nobody would try to change it, but it is just two my cents.

Anyway, arch/x86/boot/Makefile already
referenced the path to autoconf.h


So, if you want to change it, I will not oppose to it.



-- 
Best Regards
Masahiro Yamada
Paul Bolle Nov. 8, 2016, 9:16 a.m. UTC | #3
Hi Mashiro,

On Tue, 2016-11-08 at 10:50 +0900, Masahiro Yamada wrote:
> 2016-11-07 21:52 GMT+09:00 Paul Bolle <pebolle@tiscali.nl>:

> > So it seems the odd $(LINUXINCLUDE) variable in that Makefile could be

> > replaced with something like:

> >     -include $(srctree)/include/generated/autoconf.h

> 

> This would break O= build because autoconf.h is a generated file.

> 

> Rather, it should be

>       -include $(objtree)/include/generated/autoconf.h


Three cheers for weasel words like "something like"!

> I thought of this at first, but I was not quite sure

> if the file path include/generated/autoconf.h is a guaranteed interface.

> 

> Basically, now we are supposed to include autoconf.h via kconfig.h.


Yes, that seems to go back to commit 2a11c8ea20bf ("kconfig: Introduce
IS_ENABLED(), IS_BUILTIN() and IS_MODULE()"). And when the current approach to
the IS_*() macros was introduced - with that breathtaking hack that introduced
__is_defined() - this was no longer needed but was not changed again.

> So, I thought $(LINUXINCLUDE) is a more stable interface

> than specifying the exact path to autoconf.h

> 

> I doubt that nobody would try to change it, but it is just two my cents.


A bit of cruft accumulated around LINUXINCLUDE: a few dubious uses of it (and
I think this is one of those); typos (ie, LINUX_INCLUDE); the pointless
USERINCLUDE; things like that. It would be nice to remove that cruft. But it
needs to be done carefully.

> Anyway, arch/x86/boot/Makefile already

> referenced the path to autoconf.h

> 

> So, if you want to change it, I will not oppose to it.



Paul Bolle
diff mbox

Patch

diff --git a/arch/s390/include/asm/facilities_src.h b/arch/s390/include/asm/facilities_src.h
index 3b758f6..8b1a692 100644
--- a/arch/s390/include/asm/facilities_src.h
+++ b/arch/s390/include/asm/facilities_src.h
@@ -6,8 +6,6 @@ 
 #error "This file can only be included by gen_facilities.c"
 #endif
 
-#include <linux/kconfig.h>
-
 struct facility_def {
 	char *name;
 	int *bits;