mbox series

[GIT,PULL] More Kbuild updates for v5.4-rc1

Message ID CAK7LNAT-D68xMFrE-D_F-2y+iZt45+8iLF9dmTyO8YwUX-bTqA@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] More Kbuild updates for v5.4-rc1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git

Message

Masahiro Yamada Sept. 28, 2019, 6:40 p.m. UTC
Hi Linus,

Please pull some more updates for v5.4-rc1

Thanks.



The following changes since commit 351c8a09b00b5c51c8f58b016fffe51f87e2d820:

  Merge branch 'i2c/for-5.4' of
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux (2019-09-24
16:48:02 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
tags/kbuild-v5.4-2

for you to fetch changes up to 69305e9506cc5513862421ae31111f27de1f28a5:

  namespace: fix namespace.pl script to support relative paths
(2019-09-29 03:07:44 +0900)

----------------------------------------------------------------
Kbuild updates for v5.4 (2nd)

 - remove unneeded asm headers for hexagon and ia64

 - remove unneeded ar-option and KBUILD_ARFLAGS

 - remove long-deprecated SUBDIRS

 - fix false-positive "static EXPORT_SYMBOL" modpost warnings for UML

 - detect missing include guard by header compile-test

 - stop using wildcard patterns for in-kernel header test

 - fix scripts/namespace.pl to handle relative ${objtree}, ${srctree}

 - misc Makefile fixes and cleanups

----------------------------------------------------------------
Alex Gaynor (1):
      Corrected formatting of header in kbuild module docs

Jacob Keller (1):
      namespace: fix namespace.pl script to support relative paths

Masahiro Yamada (15):
      hexagon: remove asm/bitsperlong.h
      ia64: remove unneeded uapi asm-generic wrappers
      integrity: remove unneeded, broken attempt to add -fshort-wchar
      integrity: remove pointless subdir-$(CONFIG_...)
      video/logo: remove unneeded *.o pattern from clean-files
      video/logo: do not generate unneeded logo C files
      video/logo: simplify cmd_logo
      video/logo: move pnmtologo tool to drivers/video/logo/ from scripts/
      kconfig: split util.c out of parser.y
      kbuild: remove ar-option and KBUILD_ARFLAGS
      kbuild: remove SUBDIRS support
      modpost: fix static EXPORT_SYMBOL warnings for UML build
      kbuild: update compile-test header list for v5.4-rc1
      kbuild: detect missing header include guard
      kbuild: stop using wildcard patterns for in-kernel header test

 Documentation/kbuild/makefiles.rst          |    5 -
 Documentation/kbuild/modules.rst            |    3 +-
 Makefile                                    |   24 +-
 arch/hexagon/include/uapi/asm/bitsperlong.h |   27 -
 arch/ia64/include/uapi/asm/errno.h          |    2 -
 arch/ia64/include/uapi/asm/ioctl.h          |    2 -
 arch/ia64/include/uapi/asm/ioctls.h         |    7 -
 arch/powerpc/boot/Makefile                  |    2 +-
 drivers/video/logo/.gitignore               |    1 +
 drivers/video/logo/Makefile                 |   36 +-
 {scripts => drivers/video/logo}/pnmtologo.c |    0
 include/Kbuild                              | 1205 +---------------------
 include/acpi/Kbuild                         |   18 +
 include/clocksource/Kbuild                  |    8 +
 include/crypto/Kbuild                       |   63 ++
 include/drm/Kbuild                          |   89 ++
 include/keys/Kbuild                         |   10 +
 include/kvm/Kbuild                          |    5 +
 include/linux/Kbuild                        | 1175 +++++++++++++++++++++
 include/linux/byteorder/Kbuild              |    4 +
 include/linux/ceph/Kbuild                   |   19 +
 include/linux/i3c/Kbuild                    |    5 +
 include/linux/iio/Kbuild                    |   22 +
 include/linux/mfd/Kbuild                    |  154 +++
 include/linux/mmc/Kbuild                    |   14 +
 include/linux/mtd/Kbuild                    |   31 +
 include/linux/pinctrl/Kbuild                |   10 +
 include/linux/platform_data/Kbuild          |  148 +++
 include/linux/regulator/Kbuild              |   26 +
 include/linux/sched/Kbuild                  |   28 +
 include/linux/spi/Kbuild                    |   18 +
 include/linux/sunrpc/Kbuild                 |   28 +
 include/linux/usb/Kbuild                    |   41 +
 include/math-emu/Kbuild                     |    6 +
 include/media/Kbuild                        |  100 ++
 include/misc/Kbuild                         |    5 +
 include/net/Kbuild                          |  239 +++++
 include/pcmcia/Kbuild                       |    6 +
 include/ras/Kbuild                          |    3 +
 include/rdma/Kbuild                         |   38 +
 include/scsi/Kbuild                         |   19 +
 include/soc/Kbuild                          |   26 +
 include/sound/Kbuild                        |   93 ++
 include/target/Kbuild                       |    6 +
 include/trace/Kbuild                        |   85 ++
 include/vdso/Kbuild                         |    4 +
 include/video/Kbuild                        |   32 +
 include/xen/Kbuild                          |    9 +
 scripts/.gitignore                          |    1 -
 scripts/Kbuild.include                      |    5 -
 scripts/Makefile                            |    2 -
 scripts/Makefile.build                      |    5 +-
 scripts/Makefile.lib                        |    2 +-
 scripts/kconfig/Makefile                    |    2 +-
 scripts/kconfig/parser.y                    |    1 -
 scripts/mod/modpost.c                       |   13 +-
 scripts/namespace.pl                        |   13 +-
 security/integrity/Makefile                 |    3 -
 usr/include/Makefile                        |   12 +-
 59 files changed, 2646 insertions(+), 1314 deletions(-)
 delete mode 100644 arch/hexagon/include/uapi/asm/bitsperlong.h
 delete mode 100644 arch/ia64/include/uapi/asm/errno.h
 delete mode 100644 arch/ia64/include/uapi/asm/ioctl.h
 delete mode 100644 arch/ia64/include/uapi/asm/ioctls.h
 rename {scripts => drivers/video/logo}/pnmtologo.c (100%)
 create mode 100644 include/acpi/Kbuild
 create mode 100644 include/clocksource/Kbuild
 create mode 100644 include/crypto/Kbuild
 create mode 100644 include/drm/Kbuild
 create mode 100644 include/keys/Kbuild
 create mode 100644 include/kvm/Kbuild
 create mode 100644 include/linux/Kbuild
 create mode 100644 include/linux/byteorder/Kbuild
 create mode 100644 include/linux/ceph/Kbuild
 create mode 100644 include/linux/i3c/Kbuild
 create mode 100644 include/linux/iio/Kbuild
 create mode 100644 include/linux/mfd/Kbuild
 create mode 100644 include/linux/mmc/Kbuild
 create mode 100644 include/linux/mtd/Kbuild
 create mode 100644 include/linux/pinctrl/Kbuild
 create mode 100644 include/linux/platform_data/Kbuild
 create mode 100644 include/linux/regulator/Kbuild
 create mode 100644 include/linux/sched/Kbuild
 create mode 100644 include/linux/spi/Kbuild
 create mode 100644 include/linux/sunrpc/Kbuild
 create mode 100644 include/linux/usb/Kbuild
 create mode 100644 include/math-emu/Kbuild
 create mode 100644 include/media/Kbuild
 create mode 100644 include/misc/Kbuild
 create mode 100644 include/net/Kbuild
 create mode 100644 include/pcmcia/Kbuild
 create mode 100644 include/ras/Kbuild
 create mode 100644 include/rdma/Kbuild
 create mode 100644 include/scsi/Kbuild
 create mode 100644 include/soc/Kbuild
 create mode 100644 include/sound/Kbuild
 create mode 100644 include/target/Kbuild
 create mode 100644 include/trace/Kbuild
 create mode 100644 include/vdso/Kbuild
 create mode 100644 include/video/Kbuild
 create mode 100644 include/xen/Kbuild

Comments

Linus Torvalds Sept. 29, 2019, 2:56 a.m. UTC | #1
On Sat, Sep 28, 2019 at 11:41 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> Please pull some more updates for v5.4-rc1

I pulled this, but I'm not sure if I'm going to keep it.

There's thousands of lines of changes because of the header-test-y
thing, and I'm honestly considering just getting rid of that thing
entirely.

It has no actual upside that I can tell, and it's extremely annoying.
It pollutes the tree with hundreds of *.h.s files, which messes up
filename completion, and just generally is ugly and annoying.

So I've unpulled for now, and I'm not sure I want to pull more noise
for this mis-feature.

                Linus
Masahiro Yamada Sept. 29, 2019, 3:59 a.m. UTC | #2
Hi Linus,

On Sun, Sep 29, 2019 at 11:57 AM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Sat, Sep 28, 2019 at 11:41 AM Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
> >
> > Please pull some more updates for v5.4-rc1
>
> I pulled this, but I'm not sure if I'm going to keep it.
>
> There's thousands of lines of changes because of the header-test-y
> thing, and I'm honestly considering just getting rid of that thing
> entirely.
>
> It has no actual upside that I can tell, and it's extremely annoying.
> It pollutes the tree with hundreds of *.h.s files, which messes up
> filename completion, and just generally is ugly and annoying.
>
> So I've unpulled for now, and I'm not sure I want to pull more noise
> for this mis-feature.
>
>                 Linus




The concept of header test is to make sure every header
is self-contained, so that headers can be included in
  either
#include <linux/foo.h>
#include <linux/bar.h>
  or
#include <linux/bar.h>
#include <linux/foo.h>


Of course, you can argue that it is addressing hypothetical issues
"what if the include directives are arranged in this order?",
that nobody has been hit before.

If this test is just annoying, shall we remove
the 'header-test-y' syntax and include/Kbuild entirely?

But, at least, I want to continue compile-testing
uapi headers that are exported to user-space.

This is useful to detect a broken uapi header
that is never be able to be compiled in user-space.

For example,
https://lkml.org/lkml/2019/6/19/104


So, I'd like to keep usr/include/Makefile
at least.
Linus Torvalds Sept. 29, 2019, 4:59 p.m. UTC | #3
On Sat, Sep 28, 2019 at 9:00 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> The concept of header test is to make sure every header
> is self-contained,

Yes, I realize. But at the same time the filenames it creates are very
annoying and clutter up the tree, and I'm not sure we really want that
in the first place.

The thing _I_ would want is actually a lot less includes, and a lot
more streamlined, just for better build times. I sometimes get a small
pull, and wonder why the *whole* tree recompiles, and realize that
it's due to some really obscure header file that just gets included
"in case".

So I'd like us to be stricter about header files another way entirely,
and I'm not sure that header files should need to be completely
independent.

> Of course, you can argue that it is addressing hypothetical issues
> "what if the include directives are arranged in this order?",
> that nobody has been hit before.

Well, I think people hit it all the time but just add the right header
file when some build fails.

In a perfect world, we'd have something that understands what symbols
get declared in each header file, and what symbols each header file
needs, and have a SAT solver for this that actually also understands
about different configurations and architectures. And actually
minimize the headers, and have a tool that warns when you have
unnecessary ones - or are lacking some.

Yeah, it's probably too complex to be worth the pain, but it would be lovely.

> But, at least, I want to continue compile-testing
> uapi headers that are exported to user-space.

I think the uapi headers have a much stronger case for being
self-sufficient, but even there I'd really prefer some other model
than "*.h.s".

We have the dot-files for dependencies and for tracking the command
that was used to generate them, I'd much rather have that. At least
then we wouldn't uglify the directory structure.

Yea, I realize that some people "solve" that problem by just not
building in the source-tree at all, but I find that annoying too.

               Linus