RE: Linux 2.6.38-rc1 doesn't boot

From: Lu, Hongjiu
Date: Wed Jan 19 2011 - 22:32:15 EST


>
> On Wed, 2011-01-19 at 17:09 +0800, Ingo Molnar wrote:
> > * H. Peter Anvin <h.peter.anvin@xxxxxxxxx> wrote:
> >
> > > On 01/19/2011 12:12 AM, Shaohua Li wrote:
> > > > On Wed, 2011-01-19 at 15:49 +0800, Markus Trippelsdorf wrote:
> > > >> On 2011.01.19 at 08:39 +0100, Markus Trippelsdorf wrote:
> > > >>> On 2011.01.18 at 15:54 -0800, Linus Torvalds wrote:
> > > >>>>
> > > >>>> And as usual, report any regressions to the lists and the
> appropriate
> > > >>>> authorities.
> > > >>>
> > > >>> Unfortunately 2.6.38-rc1 doesn't even boot on my machine
> (amd64).
> > > >>> This is caused by 86b1e8dd83cbb0f:
> > > >>> x86: Make relocatable kernel work with new binutils
> > > >>>
> > > >>> Reverting the commit solves the problem.
> > > >>
> > > >> I'm running the latest binutils:
> > > >> GNU ld (Linux/GNU Binutils) 2.21.51.0.5.20110104
> > > > Hmm, reproduce it here with binutils-2.21.51.0.6-20110118
> > > > but not with GNU ld (GNU Binutils for Ubuntu) 2.20.51-
> system.20100908
> > > > I got this in system.map: ffffffff03514880 D jiffies_64, which
> looks
> > > > wrong.
> > > > looks binutils changed something again.
> > > > Have no idea, CC Lu Hongjiu.
> > > >
> > >
> > > Either way... the whole jiffies vs jiffies_64 thing is kind of
> > > ridiculous. We should be able to do it in a completely
> > > architecture-generic way by either making it a union(!) (with
> "jiffies"
> > > and "jiffies_64" presumably would be #defines, or we do a global
> replace
> > > across the tree), moving the variable declaration itself to a .S
> file
> > > (which would only have data components and therefore would be
> > > arch-generic) or doing something like the attached (untested since
> it is
> > > 1 am here) patch.
> > >
> > > This should let us get rid of the hacks in *all* the architectures,
> not
> > > just x86.
> >
> > Ok - until it's resolved i'll queue up a revert - a known build
> failure is preferred
> > to a boot regression.
> it's not a build failure, without it, my i386 kernel can't boot
> actually.

Kernel build script should check known broken linkers
and refuse to use it.


H.J.
N‹§²æìr¸›yúèšØb²X¬¶ÇvØ^–)Þ{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü}©ž²ÆzÚ&j:+v‰¨¾«‘êçzZ+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹®w¥¢¸?™¨è­Ú&¢)ßf”ù^jÇy§m…á@A«a¶Úÿ 0¶ìh®å’i