linux/arch
Masahiro Yamada 8a78756eb5 kbuild: create object directories simpler and faster
For the out-of-tree build, scripts/Makefile.build creates output
directories, but this operation is not efficient.

scripts/Makefile.lib calculates obj-dirs as follows:

  obj-dirs := $(dir $(multi-objs) $(obj-y))

Please notice $(sort ...) is not used here.  Usually the result is
as many "./" as objects here.

For a lot of duplicated paths, the following command is invoked.

  _dummy := $(foreach d,$(obj-dirs), $(shell [ -d $(d) ] || mkdir -p $(d)))

Then, the costly shell command is run over and over again.

I see many points for optimization:

[1] Use $(sort ...) to cut down duplicated paths before passing them
    to system call
[2] Use single $(shell ...) instead of repeating it with $(foreach ...)
    This will reduce forking.
[3] We can calculate obj-dirs more simply.  Most of objects are already
    accumulated in $(targets).  So, $(dir $(targets)) is fine and more
    comprehensive.

I also removed ugly code in arch/x86/entry/vdso/Makefile.  This is now
really unnecessary.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
2017-11-16 09:07:35 +09:00
..
alpha Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-09-11 18:34:47 -07:00
arc arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
arm arm/kbuild: replace {C, LD}FLAGS_MODULE with KBUILD_{C, LD}FLAGS_MODULE 2017-10-31 00:36:58 +09:00
arm64 arm64: fault: Route pte translation faults via do_translation_fault 2017-09-29 16:47:40 +01:00
blackfin Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-09-11 18:34:47 -07:00
c6x c6x/kbuild: replace CFLAGS_MODULE with KBUILD_CFLAGS_MODULE 2017-10-31 00:37:12 +09:00
cris MTD changes for 4.14: 2017-09-09 14:48:21 -07:00
frv arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
h8300 arch: define CPU_BIG_ENDIAN for all fixed big endian archs 2017-09-08 18:26:48 -07:00
hexagon hexagon/kbuild: replace CFLAGS_MODULE with KBUILD_CFLAGS_MODULE 2017-10-31 00:38:53 +09:00
ia64 Merge branch 'work.ipc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-09-14 17:37:26 -07:00
m32r arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
m68k Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2017-09-10 21:07:39 -07:00
metag arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
microblaze arch: change default endian for microblaze 2017-09-25 15:31:26 +02:00
mips pci-v4.14-fixes-2 2017-09-22 13:09:11 -10:00
mn10300 arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
nios2 nios2 update for v4.14-rc1 2017-09-15 12:47:21 -07:00
openrisc OpenRISC patches for 4.14 2017-09-13 11:52:18 -07:00
parisc parisc: Unbreak bootloader due to gcc-7 optimizations 2017-09-22 22:26:43 +02:00
powerpc Mixed bugfixes. Perhaps the most interesting one is a latent bug 2017-09-29 12:18:55 -07:00
s390 s390/topology: enable / disable topology dynamically 2017-09-20 13:47:55 +02:00
score Merge branch 'uaccess.strlen' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-07-06 22:07:44 -07:00
sh sh: select KBUILD_DEFCONFIG depending on ARCH 2017-11-13 22:58:18 +09:00
sparc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-09-11 18:34:47 -07:00
tile Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2017-09-22 13:02:54 -10:00
um um/time: Fixup namespace collision 2017-09-29 10:07:44 +02:00
unicore32 unicore32/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks 2017-08-03 16:29:34 -05:00
x86 kbuild: create object directories simpler and faster 2017-11-16 09:07:35 +09:00
xtensa arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
.gitignore
Kconfig - For the randstruct plugin, enable automatic randomization of structures 2017-09-07 20:30:19 -07:00