summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2015-08-10kbuild: Allow arch Makefiles to override {cpp,ld,c}flagsMichal Marek1-4/+5
commit 61754c18752ffb78145671e94f053fb202fff041 upstream. Since commit a1c48bb1 (Makefile: Fix unrecognized cross-compiler command line options), the arch Makefile is included earlier by the main Makefile, preventing the arc architecture to set its -O3 compiler option. Since there might be more use cases for an arch Makefile to fine-tune the options, add support for ARCH_CPPFLAGS, ARCH_AFLAGS and ARCH_CFLAGS variables that are appended to the respective kbuild variables. The user still has the final say via the KCPPFLAGS, KAFLAGS and KCFLAGS variables. Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com> Signed-off-by: Michal Marek <mmarek@suse.com> [ luis: backported to 3.16: adjusted context ] Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-07-20Linux 3.16.7-ckt15Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-06-30Linux 3.16.7-ckt14Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-06-11Linux 3.16.7-ckt13Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-05-28kernel: use the gnu89 standard explicitlyKirill A. Shutemov1-2/+3
commit 51b97e354ba9fce1890cf38ecc754aa49677fc89 upstream. Sasha Levin reports: "gcc5 changes the default standard to c11, which makes kernel build unhappy Explicitly define the kernel standard to be gnu89 which should keep everything working exactly like it was before gcc5" There are multiple small issues with the new default, but the biggest issue seems to be that the old - and very useful - GNU extension to allow a cast in front of an initializer has gone away. Patch updated by Kirill: "I'm pretty sure all gcc versions you can build kernel with supports -std=gnu89. cc-option is redunrant. We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me" Note by Andrew Pinski: "Yes it was reported and both problems relating to this extension has been added to gnu99 and gnu11. Though there are other issues with the kernel dealing with extern inline have different semantics between gnu89 and gnu99/11" End result: we may be able to move up to a newer stdc model eventually, but right now the newer models have some annoying deficiencies, so the traditional "gnu89" model ends up being the preferred one. Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Singed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Philip Müller <philm@manjaro.org> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-05-28Linux 3.16.7-ckt12Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-05-12Linux 3.16.7-ckt11Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-04-27Linux 3.16.7-ckt10Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-03-30Linux 3.16.7-ckt9Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-03-11Linux 3.16.7-ckt8Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-02-24Linux 3.16.7-ckt7Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-02-10Linux 3.16.7-ckt6Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-02-02Linux 3.16.7-ckt5Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-01-16Linux 3.16.7-ckt4Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2014-12-19Linux 3.16.7-ckt3Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2014-12-01Linux 3.16.7-ckt2Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2014-11-14Linux 3.16.7-ckt1Luis Henriques1-1/+1
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2014-10-30Linux 3.16.7v3.16.7Greg Kroah-Hartman1-1/+1
2014-10-15Linux 3.16.6v3.16.6Greg Kroah-Hartman1-1/+1
2014-10-09Linux 3.16.5v3.16.5Greg Kroah-Hartman1-1/+1
2014-10-06Linux 3.16.4v3.16.4Greg Kroah-Hartman1-1/+1
2014-09-17Linux 3.16.3v3.16.3Greg Kroah-Hartman1-1/+1
2014-09-06Linux 3.16.2v3.16.2Greg Kroah-Hartman1-1/+1
2014-08-14Linux 3.16.1v3.16.1Greg Kroah-Hartman1-2/+2
2014-08-04Linux 3.16v3.16Linus Torvalds1-1/+1
2014-07-27Linux 3.16-rc7v3.16-rc7Linus Torvalds1-1/+1
2014-07-27Fix gcc-4.9.0 miscompilation of load_balance() in schedulerLinus Torvalds1-0/+2
Michel Dänzer and a couple of other people reported inexplicable random oopses in the scheduler, and the cause turns out to be gcc mis-compiling the load_balance() function when debugging is enabled. The gcc bug apparently goes back to gcc-4.5, but slight optimization changes means that it now showed up as a problem in 4.9.0 and 4.9.1. The instruction scheduling problem causes gcc to schedule a spill operation to before the stack frame has been created, which in turn can corrupt the spilled value if an interrupt comes in. There may be other effects of this bug too, but that's the code generation problem seen in Michel's case. This is fixed in current gcc HEAD, but the workaround as suggested by Markus Trippelsdorf is pretty simple: use -fno-var-tracking-assignments when compiling the kernel, which disables the gcc code that causes the problem. This can result in slightly worse debug information for variable accesses, but that is infinitely preferable to actual code generation problems. Doing this unconditionally (not just for CONFIG_DEBUG_INFO) also allows non-debug builds to verify that the debug build would be identical: we can do export GCC_COMPARE_DEBUG=1 to make gcc internally verify that the result of the build is independent of the "-g" flag (it will make the compiler build everything twice, toggling the debug flag, and compare the results). Without the "-fno-var-tracking-assignments" option, the build would fail (even with 4.8.3 that didn't show the actual stack frame bug) with a gcc compare failure. See also gcc bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801 Reported-by: Michel Dänzer <michel@daenzer.net> Suggested-by: Markus Trippelsdorf <markus@trippelsdorf.de> Cc: Jakub Jelinek <jakub@redhat.com> Cc: stable@kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-07-21Linux 3.16-rc6v3.16-rc6Linus Torvalds1-1/+1
2014-07-14Linux 3.16-rc5v3.16-rc5Linus Torvalds1-1/+1
2014-07-11Merge branch 'rc-fixes' of ↵Linus Torvalds1-48/+51
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kbuild fixes from Michal Marek: "Three more fixes for the relative build dir feature: - Shut up make -s again - Fix for rpm/deb/tar-pkg with O=<subdir> - Fix for CONFIG_EXTRA_FIRMWARE" * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: firmware: Create directories for external firmware kbuild: Fix packaging targets with relative $(srctree) kbuild: Do not print the build directory with make -s
2014-07-06Linux 3.16-rc4v3.16-rc4Linus Torvalds1-1/+1
2014-07-05kbuild: Fix packaging targets with relative $(srctree)Michal Marek1-1/+1
All other users of Makefile.build set $(obj) to the name of the subdirectory to build. Do the same for the packaging targets, otherwise the build fails if $(srctree) is a relative directory: $ make O=build tar-pkg make[1]: Entering directory `/home/mmarek/linux-2.6/build' CHK include/config/kernel.release ../scripts/Makefile.build:44: ../../scripts/package/Makefile: No such file or directory make[2]: *** No rule to make target `../../scripts/package/Makefile'. Stop. Fixes: 9da0763b ("kbuild: Use relative path when building in a subdir of the source tree") Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-07-04kbuild: Do not print the build directory with make -sMichal Marek1-47/+50
Commit c2e28dc9 (kbuild: Print the name of the build directory) prints the name of the build directory for O= builds, but we should not be doing this in make -s mode, so that commands like make -s O=<dir> kernelrelease can be used by scripts. This matches the behavior of make itself, where the -s option implies --no-print-directory. Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-07-04Merge branch 'rc-fixes' of ↵Linus Torvalds1-0/+3
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kbuild fix from Michal Marek: "There is one more fix for the relative paths series from -rc1: Print the path to the build directory at the start of the build, so that editors and IDEs can match the relative paths to source files" * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kbuild: Print the name of the build directory
2014-07-03kbuild: Print the name of the build directoryMichal Marek1-0/+3
With commit 9da0763b (kbuild: Use relative path when building in a subdir of the source tree), the compiler messages include relative paths. These are however relative to the build directory, not the directory where make was started. Print the "Entering directory ..." message once, so that IDEs/editors can find the source files. Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-06-30Linux 3.16-rc3v3.16-rc3Linus Torvalds1-1/+1
2014-06-22Linux 3.16-rc2v3.16-rc2Linus Torvalds1-1/+1
2014-06-16Linux 3.16-rc1v3.16-rc1Linus Torvalds1-2/+2
2014-06-13Merge branch 'kbuild' of ↵Linus Torvalds1-37/+52
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kbuild updates from Michal Marek: "Kbuild changes for v3.16-rc1: - cross-compilation fix so that cc-option is testing the right compiler - Fix for make defconfig all - Using relative paths to the object and source directory where possible, plus fixes for the fallout of the change - several cleanups in the Makefiles and scripts The powerpc fix is from today, because it was only discovered recently. The rest has been in linux-next for some time" * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: powerpc: Avoid circular dependency with zImage.% kbuild: create include/config directory in scripts/kconfig/Makefile kbuild: do not create include/linux directory Makefile: Fix unrecognized cross-compiler command line options kbuild: do not add "selinux" to subdir- twice um: Fix for relative objtree when generating x86 headers kbuild: Use relative path when building in a subdir of the source tree kbuild: Use relative path when building in the source tree kbuild: Use relative path for $(objtree) firmware: Use $(quote) in the Makefile firmware: Simplify directory creation kbuild: trivial - fix comment block indent kbuild: trivial - remove trailing spaces kbuild: support simultaneous "make %config" and "make all" kbuild: move extra gcc checks to scripts/Makefile.extrawarn
2014-06-10kbuild: create include/config directory in scripts/kconfig/MakefileMasahiro Yamada1-2/+0
The directory include/config is used only for silentoldconfig, localmodconfig, localyesconfig. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-06-10kbuild: do not create include/linux directoryMasahiro Yamada1-2/+2
There are no generated files under include/linux directory. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-06-10Makefile: Fix unrecognized cross-compiler command line optionsGeert Uytterhoeven1-4/+6
On architectures that setup CROSS_COMPILE in their arch/*/Makefile (arc, blackfin, m68k, mips, parisc, score, sh, tile, unicore32, xtensa), cc-option and cc-disable-warning may check against the wrong compiler, causing errors like cc1: error: unrecognized command line option "-Wno-maybe-uninitialized" if the host gcc supports a compiler option, while the cross compiler doesn't support that option. Move all logic using cc-option or cc-disable-warning below the inclusion of the arch's Makefile to fix this. Introduced by - commit e74fc973b6e531fef1fce8b101ffff05ecfb774c ("Turn off -Wmaybe-uninitialized when building with -Os"), - commit 61163efae02040f66a95c8ed17f4407951ba58fa ("kbuild: LLVMLinux: Add Kbuild support for building kernel with Clang"). As -Wno-maybe-uninitialized requires a quite recent gcc (gcc 4.6.3 on Ubuntu 12.04 LTS doesn't support it), this only showed up recently (gcc 4.8.2 on Ubuntu 14.04 LTS does support it). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-06-08Merge tag 'llvmlinux-for-v3.16' of ↵Linus Torvalds1-1/+1
git://git.linuxfoundation.org/llvmlinux/kernel Pull LLVM patches from Behan Webster: "Next set of patches to support compiling the kernel with clang. They've been soaking in linux-next since the last merge window. More still in the works for the next merge window..." * tag 'llvmlinux-for-v3.16' of git://git.linuxfoundation.org/llvmlinux/kernel: arm, unwind, LLVMLinux: Enable clang to be used for unwinding the stack ARM: LLVMLinux: Change "extern inline" to "static inline" in glue-cache.h all: LLVMLinux: Change DWARF flag to support gcc and clang net: netfilter: LLVMLinux: vlais-netfilter crypto: LLVMLinux: aligned-attribute.patch
2014-06-08Linux 3.15v3.15Linus Torvalds1-1/+1
2014-06-07all: LLVMLinux: Change DWARF flag to support gcc and clangBehan Webster1-1/+1
Both gcc (well, actually gnu as) and clang support the "-Wa,-gdwarf-2" option (though clang does not support "-Wa,--gdwarf-2"). Since these flags are equivalent in meaning, this patch uses the one which is better supported across compilers. Signed-off-by: Behan Webster <behanw@converseincode.com>
2014-06-02Linux 3.15-rc8v3.15-rc8Linus Torvalds1-1/+1
2014-05-26Linux 3.15-rc7v3.15-rc7Linus Torvalds1-1/+1
2014-05-22Linux 3.15-rc6v3.15-rc6Linus Torvalds1-1/+1
2014-05-15kbuild: Use relative path when building in a subdir of the source treeMichal Marek1-1/+11
When doing make O=<subdir>, use '..' to refer to the source tree. This allows for more readable compiler messages, and, more importantly, it sets the VPATH to '..', so filenames in WARN_ON() etc. will be shorter. Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
2014-05-15kbuild: Use relative path when building in the source treeMichal Marek1-2/+2
When not using O=, $(srctree) refers to the same directory as $(objtree), so we can set it to '.' as well. This makes the default include path more compact and results in more readable messages from the compiler. The only case where we need the absolute path is when creating the 'source' symlink in /lib/modules. Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Michal Marek <mmarek@suse.cz>