Commit Graph

927 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
78fb9f4236 Linux 3.10.86 2015-08-10 12:22:47 -07:00
Greg Kroah-Hartman
b7c42895e7 Linux 3.10.85 2015-08-03 09:32:37 -07:00
Greg Kroah-Hartman
f1178e991a Linux 3.10.84 2015-07-10 10:40:38 -07:00
Greg Kroah-Hartman
c484654239 Linux 3.10.83 2015-07-03 19:48:19 -07:00
Greg Kroah-Hartman
b3d7844844 Linux 3.10.82 2015-06-29 12:08:45 -07:00
Greg Kroah-Hartman
28114597f8 Linux 3.10.81 2015-06-22 16:56:08 -07:00
Greg Kroah-Hartman
14a86b32c5 Linux 3.10.80 2015-06-05 23:20:14 -07:00
Kirill A. Shutemov
c7c867483e kernel: use the gnu89 standard explicitly
commit 51b97e354b 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-06-05 23:19:53 -07:00
Greg Kroah-Hartman
b5bac1f597 Linux 3.10.79 2015-05-17 09:51:39 -07:00
Greg Kroah-Hartman
c9cc129b69 Linux 3.10.78 2015-05-13 05:15:52 -07:00
Greg Kroah-Hartman
9182148a53 Linux 3.10.77 2015-05-06 21:56:44 +02:00
Greg Kroah-Hartman
89bf6007dd Linux 3.10.76 2015-04-29 10:34:22 +02:00
Greg Kroah-Hartman
9ccc5af34b Linux 3.10.75 2015-04-19 10:12:19 +02:00
Greg Kroah-Hartman
c9ef473a54 Linux 3.10.74 2015-04-13 14:02:33 +02:00
Greg Kroah-Hartman
73895725a9 Linux 3.10.73 2015-03-26 15:01:29 +01:00
Greg Kroah-Hartman
7f4e642460 Linux 3.10.72 2015-03-18 13:22:50 +01:00
Greg Kroah-Hartman
389fb5fb0b Linux 3.10.71 2015-03-06 14:42:00 -08:00
Greg Kroah-Hartman
ef16065a9e Linux 3.10.70 2015-02-26 17:49:14 -08:00
Greg Kroah-Hartman
5cfc71ce13 Linux 3.10.69 2015-02-11 14:48:30 +08:00
Greg Kroah-Hartman
87dc7c99c7 Linux 3.10.68 2015-02-06 06:52:56 -08:00
Greg Kroah-Hartman
4227cffc1f Linux 3.10.67 2015-01-29 17:42:36 -08:00
Greg Kroah-Hartman
5d53369ea5 Linux 3.10.66 2015-01-27 07:52:51 -08:00
Greg Kroah-Hartman
5054319d9f Linux 3.10.65 2015-01-16 07:00:00 -08:00
Greg Kroah-Hartman
46a490cc58 Linux 3.10.64 2015-01-08 09:58:30 -08:00
Greg Kroah-Hartman
a472efc759 Linux 3.10.63 2014-12-16 09:09:56 -08:00
Greg Kroah-Hartman
2f9ac85b35 Linux 3.10.62 2014-12-06 15:55:43 -08:00
Greg Kroah-Hartman
252f23ea59 Linux 3.10.61 2014-11-21 09:23:22 -08:00
Greg Kroah-Hartman
be70188832 Linux 3.10.60 2014-11-14 08:48:23 -08:00
Greg Kroah-Hartman
816b571ac0 Linux 3.10.59 2014-10-30 09:35:42 -07:00
Greg Kroah-Hartman
0b9c3a4653 Linux 3.10.58 2014-10-15 08:32:29 +02:00
Greg Kroah-Hartman
f41c15f2c9 Linux 3.10.57 2014-10-09 12:18:54 -07:00
Greg Kroah-Hartman
926719debf Linux 3.10.56 2014-10-05 14:54:30 -07:00
Greg Kroah-Hartman
339f8f37f0 Linux 3.10.55 2014-09-17 09:04:18 -07:00
Greg Kroah-Hartman
a8d97b1bd0 Linux 3.10.54 2014-09-05 16:32:00 -07:00
Greg Kroah-Hartman
7f363d2d04 Linux 3.10.53 2014-08-14 09:24:29 +08:00
Greg Kroah-Hartman
4d36ba13d3 Linux 3.10.52 2014-08-07 14:42:40 -07:00
Greg Kroah-Hartman
10a622493d Linux 3.10.51 2014-07-31 14:55:39 -07:00
Linus Torvalds
e1d8240bdd Fix gcc-4.9.0 miscompilation of load_balance() in scheduler
commit 2062afb4f8 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-31 12:53:51 -07:00
Greg Kroah-Hartman
92488f4c9f Linux 3.10.50 2014-07-28 08:00:59 -07:00
Greg Kroah-Hartman
d02dae430d Linux 3.10.49 2014-07-17 15:58:15 -07:00
Greg Kroah-Hartman
d93efdcd51 Linux 3.10.48 2014-07-09 11:14:10 -07:00
Greg Kroah-Hartman
75dca41375 Linux 3.10.47 2014-07-06 18:55:56 -07:00
Greg Kroah-Hartman
5e9a2a3622 Linux 3.10.46 2014-06-30 20:09:54 -07:00
Greg Kroah-Hartman
7ab9233c18 Linux 3.10.45 2014-06-26 15:13:14 -04:00
Greg Kroah-Hartman
73eabc6d79 Linux 3.10.44 2014-06-16 13:43:06 -07:00
Greg Kroah-Hartman
853771148c Linux 3.10.43 2014-06-11 12:12:04 -07:00
Greg Kroah-Hartman
c2f7eb8029 Linux 3.10.42 2014-06-07 13:48:31 -07:00
Greg Kroah-Hartman
72c0f41938 Linux 3.10.41 2014-05-31 12:41:04 -07:00
Greg Kroah-Hartman
be67db1090 Linux 3.10.40 2014-05-13 14:00:04 +02:00
Greg Kroah-Hartman
5d897eedc5 Linux 3.10.39 2014-05-06 07:56:24 -07:00