summaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Collapse)Author
2019-07-28Linux 4.19.62v4.19.62Greg Kroah-Hartman
2019-07-26Linux 4.19.61v4.19.61Greg Kroah-Hartman
2019-07-21Linux 4.19.60v4.19.60Greg Kroah-Hartman
2019-07-14Linux 4.19.59v4.19.59Greg Kroah-Hartman
2019-07-10Linux 4.19.58v4.19.58Greg Kroah-Hartman
2019-07-03Linux 4.19.57v4.19.57Greg Kroah-Hartman
2019-06-25Linux 4.19.56v4.19.56Greg Kroah-Hartman
2019-06-25gcc-9: silence 'address-of-packed-member' warningLinus Torvalds
commit 6f303d60534c46aa1a239f29c321f95c83dda748 upstream. We already did this for clang, but now gcc has that warning too. Yes, yes, the address may be unaligned. And that's kind of the point. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-22Linux 4.19.55v4.19.55Greg Kroah-Hartman
2019-06-22Linux 4.19.54v4.19.54Greg Kroah-Hartman
2019-06-19Linux 4.19.53v4.19.53Greg Kroah-Hartman
2019-06-17Linux 4.19.52v4.19.52Greg Kroah-Hartman
2019-06-15Linux 4.19.51v4.19.51Greg Kroah-Hartman
2019-06-11Linux 4.19.50v4.19.50Greg Kroah-Hartman
2019-06-09Linux 4.19.49v4.19.49Greg Kroah-Hartman
2019-06-04Linux 4.19.48v4.19.48Greg Kroah-Hartman
2019-06-04jump_label: move 'asm goto' support test to KconfigMasahiro Yamada
commit e9666d10a5677a494260d60d1fa0b73cc7646eb3 upstream. Currently, CONFIG_JUMP_LABEL just means "I _want_ to use jump label". The jump label is controlled by HAVE_JUMP_LABEL, which is defined like this: #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) # define HAVE_JUMP_LABEL #endif We can improve this by testing 'asm goto' support in Kconfig, then make JUMP_LABEL depend on CC_HAS_ASM_GOTO. Ugly #ifdef HAVE_JUMP_LABEL will go away, and CONFIG_JUMP_LABEL will match to the real kernel capability. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc) Tested-by: Sedat Dilek <sedat.dilek@gmail.com> [nc: Fix trivial conflicts in 4.19 arch/xtensa/kernel/jump_label.c doesn't exist yet Ensured CC_HAVE_ASM_GOTO and HAVE_JUMP_LABEL were sufficiently eliminated] Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-31Linux 4.19.47v4.19.47Greg Kroah-Hartman
2019-05-25Linux 4.19.46v4.19.46Greg Kroah-Hartman
2019-05-22Linux 4.19.45v4.19.45Greg Kroah-Hartman
2019-05-22kbuild: turn auto.conf.cmd into a mandatory include fileMasahiro Yamada
commit d2f8ae0e4c5c754f1b2a7b8388d19a1a977e698a upstream. syncconfig is responsible for keeping auto.conf up-to-date, so if it fails for any reason, the build must be terminated immediately. However, since commit 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing"), Kbuild continues running even after syncconfig fails. You can confirm this by intentionally making syncconfig error out: # diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c # index 08ba146..307b9de 100644 # --- a/scripts/kconfig/confdata.c # +++ b/scripts/kconfig/confdata.c # @@ -1023,6 +1023,9 @@ int conf_write_autoconf(int overwrite) # FILE *out, *tristate, *out_h; # int i; # # + if (overwrite) # + return 1; # + # if (!overwrite && is_present(autoconf_name)) # return 0; Then, syncconfig fails, but Make would not stop: $ make -s mrproper allyesconfig defconfig $ make scripts/kconfig/conf --syncconfig Kconfig *** Error during sync of the configuration. make[2]: *** [scripts/kconfig/Makefile;69: syncconfig] Error 1 make[1]: *** [Makefile;557: syncconfig] Error 2 make: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf' make: Failed to remake makefile 'include/config/auto.conf'. SYSTBL arch/x86/include/generated/asm/syscalls_32.h SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h SYSTBL arch/x86/include/generated/asm/syscalls_64.h [ continue running ... ] The reason is in the behavior of a pattern rule with multi-targets. %/auto.conf %/auto.conf.cmd %/tristate.conf: $(KCONFIG_CONFIG) $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig GNU Make knows this rule is responsible for making all the three files simultaneously. As far as examined, auto.conf.cmd is the target in question when this rule is invoked. It is probably because auto.conf.cmd is included below the inclusion of auto.conf. The inclusion of auto.conf is mandatory, while that of auto.conf.cmd is optional. GNU Make does not care about the failure in the process of updating optional include files. I filed this issue (https://savannah.gnu.org/bugs/?56301) in case this behavior could be improved somehow in future releases of GNU Make. Anyway, it is quite easy to fix our Makefile. Given that auto.conf is already a mandatory include file, there is no reason to stick auto.conf.cmd optional. Make it mandatory as well. Cc: linux-stable <stable@vger.kernel.org> # 5.0+ Fixes: 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> [commented out diff above to keep patch happy - gregkh] Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-16Linux 4.19.44v4.19.44Greg Kroah-Hartman
2019-05-14Linux 4.19.43v4.19.43Greg Kroah-Hartman
2019-05-10Linux 4.19.42v4.19.42Greg Kroah-Hartman
2019-05-08Linux 4.19.41v4.19.41Greg Kroah-Hartman
2019-05-05Linux 4.19.40v4.19.40Greg Kroah-Hartman
2019-05-04Linux 4.19.39v4.19.39Greg Kroah-Hartman
2019-05-02Linux 4.19.38v4.19.38Greg Kroah-Hartman
2019-04-27Linux 4.19.37v4.19.37Greg Kroah-Hartman
2019-04-27Revert "kbuild: use -Oz instead of -Os when using clang"Matthias Kaehlcke
commit a75bb4eb9e565b9f5115e2e8c07377ce32cbe69a upstream. The clang option -Oz enables *aggressive* optimization for size, which doesn't necessarily result in smaller images, but can have negative impact on performance. Switch back to the less aggressive -Os. This reverts commit 6748cb3c299de1ffbe56733647b01dbcc398c419. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-04-20Linux 4.19.36v4.19.36Greg Kroah-Hartman
2019-04-17Linux 4.19.35v4.19.35Greg Kroah-Hartman
2019-04-17kbuild: clang: choose GCC_TOOLCHAIN_DIR not on LDNick Desaulniers
commit ad15006cc78459d059af56729c4d9bed7c7fd860 upstream. This causes an issue when trying to build with `make LD=ld.lld` if ld.lld and the rest of your cross tools aren't in the same directory (ex. /usr/local/bin) (as is the case for Android's build system), as the GCC_TOOLCHAIN_DIR then gets set based on `which $(LD)` which will point where LLVM tools are, not GCC/binutils tools are located. Instead, select the GCC_TOOLCHAIN_DIR based on another tool provided by binutils for which LLVM does not provide a substitute for, such as elfedit. Fixes: 785f11aa595b ("kbuild: Add better clang cross build support") Link: https://github.com/ClangBuiltLinux/linux/issues/341 Suggested-by: Nathan Chancellor <natechancellor@gmail.com> Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> Tested-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-04-05Linux 4.19.34v4.19.34Greg Kroah-Hartman
2019-04-05kbuild: invoke syncconfig if include/config/auto.conf.cmd is missingMasahiro Yamada
[ Upstream commit 9390dff66a52d1a60c6e517d8fa6cdbdffc83cb1 ] If include/config/auto.conf.cmd is lost for some reasons, it is not self-healing, so the top Makefile misses to run syncconfig. Move include/config/auto.conf.cmd to the target side. I used a pattern rule instead of a normal rule here although it is a bit gross. If the rule were written with a normal rule like this, include/config/auto.conf \ include/config/auto.conf.cmd \ include/config/tristate.conf: $(KCONFIG_CONFIG) $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig ... syncconfig would be executed per target. Using a pattern rule makes sure that syncconfig is executed just once because Make assumes the recipe will create all of the targets. Here is a quote from the GNU Make manual [1]: "Pattern rules may have more than one target. Unlike normal rules, this does not act as many different rules with the same prerequisites and recipe. If a pattern rule has multiple targets, make knows that the rule's recipe is responsible for making all of the targets. The recipe is executed only once to make all the targets. When searching for a pattern rule to match a target, the target patterns of a rule other than the one that matches the target in need of a rule are incidental: make worries only about giving a recipe and prerequisites to the file presently in question. However, when this file's recipe is run, the other targets are marked as having been updated themselves." [1]: https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-04-03Linux 4.19.33v4.19.33Greg Kroah-Hartman
2019-04-03objtool: Query pkg-config for libelf locationRolf Eike Beer
commit 056d28d135bca0b1d0908990338e00e9dadaf057 upstream. If it is not in the default location, compilation fails at several points. Signed-off-by: Rolf Eike Beer <eb@emlix.com> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/91a25e992566a7968fedc89ec80e7f4c83ad0548.1553622500.git.jpoimboe@redhat.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-27Linux 4.19.32v4.19.32Greg Kroah-Hartman
2019-03-23Linux 4.19.31v4.19.31Greg Kroah-Hartman
2019-03-19Linux 4.19.30v4.19.30Greg Kroah-Hartman
2019-03-13Linux 4.19.29v4.19.29Greg Kroah-Hartman
2019-03-10Linux 4.19.28v4.19.28Greg Kroah-Hartman
2019-03-05Linux 4.19.27v4.19.27Greg Kroah-Hartman
2019-02-27Linux 4.19.26v4.19.26Greg Kroah-Hartman
2019-02-23Linux 4.19.25v4.19.25Greg Kroah-Hartman
2019-02-20Linux 4.19.24v4.19.24Greg Kroah-Hartman
2019-02-15Linux 4.19.23v4.19.23Greg Kroah-Hartman
2019-02-15Linux 4.19.22v4.19.22Greg Kroah-Hartman
2019-02-12Linux 4.19.21v4.19.21Greg Kroah-Hartman
2019-02-06Linux 4.19.20v4.19.20Greg Kroah-Hartman