summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2014-08-27kbuild: unconditionally clobber include/linux/version.h on distcleanPaul Gortmaker
As of v3.7, the UAPI changes relocated headers around such that the kernel version header lived in a new place. If a person is bisecting and if you go back to pre-UAPI days, you will create an include/linux/version.h -- then if you checkout a post-UAPI kernel, and even run "make distclean" it still won't delete that old version file. So you get a situation like this: $ grep -R LINUX_VERSION_CODE include/ include/generated/uapi/linux/version.h:#define LINUX_VERSION_CODE 200192 include/linux/version.h:#define LINUX_VERSION_CODE 132646 The value in that second line is representative of a v2.6.38 version. And it will be sourced/used, hence leading to strange behaviours, such as drivers/staging content (which typically hasn't been purged of version ifdefs) failing to build. Since it is a subtle mode of failure, lets always clobber the old file when doing a distclean. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Michal Marek <mmarek@suse.cz> [shawn.guo: cherry-pick commit 9c8cdb71644a from upstream] Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
2014-08-14Linux 3.10.53v3.10.53Greg Kroah-Hartman
2014-08-07Linux 3.10.52v3.10.52Greg Kroah-Hartman
2014-07-31Linux 3.10.51v3.10.51Greg Kroah-Hartman
2014-07-31Fix gcc-4.9.0 miscompilation of load_balance() in schedulerLinus Torvalds
commit 2062afb4f804afef61cbe62a30cac9a46e58e067 upstream. 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> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-28Linux 3.10.50v3.10.50Greg Kroah-Hartman
2014-07-17Linux 3.10.49v3.10.49Greg Kroah-Hartman
2014-07-09Linux 3.10.48v3.10.48Greg Kroah-Hartman
2014-07-06Linux 3.10.47v3.10.47Greg Kroah-Hartman
2014-06-30Linux 3.10.46v3.10.46Greg Kroah-Hartman
2014-06-26Linux 3.10.45v3.10.45Greg Kroah-Hartman
2014-06-16Linux 3.10.44v3.10.44Greg Kroah-Hartman
2014-06-11Linux 3.10.43v3.10.43Greg Kroah-Hartman
2014-06-07Linux 3.10.42v3.10.42Greg Kroah-Hartman
2014-05-31Linux 3.10.41v3.10.41Greg Kroah-Hartman
2014-05-13Linux 3.10.40v3.10.40Greg Kroah-Hartman
2014-05-06Linux 3.10.39v3.10.39Greg Kroah-Hartman
2014-04-26Linux 3.10.38v3.10.38Greg Kroah-Hartman
2014-04-14Linux 3.10.37v3.10.37Greg Kroah-Hartman
2014-04-03Linux 3.10.36v3.10.36Greg Kroah-Hartman
2014-03-31Linux 3.10.35v3.10.35Greg Kroah-Hartman
2014-03-23Linux 3.10.34v3.10.34Greg Kroah-Hartman
2014-03-06Linux 3.10.33v3.10.33Greg Kroah-Hartman
2014-02-22Linux 3.10.32v3.10.32Greg Kroah-Hartman
2014-02-20Linux 3.10.31v3.10.31Greg Kroah-Hartman
2014-02-13Linux 3.10.30v3.10.30Greg Kroah-Hartman
2014-02-06Linux 3.10.29v3.10.29Greg Kroah-Hartman
2014-01-25Linux 3.10.28v3.10.28Greg Kroah-Hartman
2014-01-15Linux 3.10.27v3.10.27Greg Kroah-Hartman
2014-01-09Linux 3.10.26v3.10.26Greg Kroah-Hartman
2013-12-20Linux 3.10.25v3.10.25Greg Kroah-Hartman
2013-12-11Linux 3.10.24v3.10.24Greg Kroah-Hartman
2013-12-08Linux 3.10.23v3.10.23Greg Kroah-Hartman
2013-12-04Linux 3.10.22v3.10.22Greg Kroah-Hartman
2013-11-29Linux 3.10.21v3.10.21Greg Kroah-Hartman
2013-11-20Linux 3.10.20v3.10.20Greg Kroah-Hartman
2013-11-13Linux 3.10.19v3.10.19Greg Kroah-Hartman
2013-11-04Linux 3.10.18v3.10.18Greg Kroah-Hartman
2013-10-18Linux 3.10.17v3.10.17Greg Kroah-Hartman
2013-10-13Linux 3.10.16v3.10.16Greg Kroah-Hartman
2013-10-05Linux 3.10.15v3.10.15Greg Kroah-Hartman
2013-10-01Linux 3.10.14v3.10.14Greg Kroah-Hartman
2013-09-26Linux 3.10.13v3.10.13Greg Kroah-Hartman
2013-09-14Linux 3.10.12v3.10.12Greg Kroah-Hartman
2013-09-07Linux 3.10.11v3.10.11Greg Kroah-Hartman
2013-08-29Linux 3.10.10v3.10.10Greg Kroah-Hartman
2013-08-20Linux 3.10.9v3.10.9Greg Kroah-Hartman
2013-08-20Linux 3.10.8v3.10.8Greg Kroah-Hartman
2013-08-14Linux 3.10.7v3.10.7Greg Kroah-Hartman
2013-08-11Linux 3.10.6v3.10.6Greg Kroah-Hartman