linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Ingo Molnar <mingo@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-next@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: linux-next: build failure after merge of the final tree
Date: Thu, 24 May 2012 07:06:03 -0700	[thread overview]
Message-ID: <4FBE404B.2020702@zytor.com> (raw)
In-Reply-To: <20120524171604.0d98284f3affc643e9714470@canb.auug.org.au>

[-- Attachment #1: Type: text/plain, Size: 2048 bytes --]

On 05/24/2012 12:16 AM, Stephen Rothwell wrote:
> 
> OK, clearly something is wrong :-( There could well be a problem with my
> toolchain.
> 

Apparently so... this is troublesome because it means that we have
silently built broken kernels not just with ld 2.22.52.0.x but with
older lds as well.

What originally made the ld problems surface was actually checking that
we didn't run into any absolute symbols we didn't know about, which
previously was supposed to be done by developers manually, i.e. never
done.  This is extremely serious because it means that a kernel compiled
with CONFIG_RELOCATABLE doesn't actually relocate.

The workaround -- and it is a workaround -- is to take these symbols as
they appear and add them to the [S_REL] whitelist in
arch/x86/tools/relocs.c.  This is the same workaround as existed before,
the only difference is that we are now enforcing it.

A patch for this particular subcase is attached and I will commit it to
tip:x86/urgent.

> $ i386-linux-ld --version
> GNU ld (GNU Binutils) 2.21
> Copyright 2010 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License version 3 or (at your option) a later version.
> This program has absolutely no warranty.

> Invalid absolute R_386_32 relocation: jiffies
> make[3]: *** [arch/x86/boot/compressed/vmlinux.relocs] Error 1
> make[3]: *** Waiting for unfinished jobs....
> make[2]: *** [arch/x86/boot/compressed/vmlinux] Error 2
> make[1]: *** [bzImage] Error 2
> make: *** [sub-make] Error 2

jiffies is yet another symbol created by the linker script.  This one in
particular is created outside any section, so it isn't all that strange
that some versions of the linker created it absolute.  Again, such a
kernel would have malfunctioned if relocated.

The really disturbing part of this one is that it shows that these
problems covers multiple GNU ld versions.

	-hpa


-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


[-- Attachment #2: 0001-x86-relocs-Add-jiffies-and-jiffies_64-to-the-relativ.patch --]
[-- Type: text/x-patch, Size: 1371 bytes --]

>From a8040166e638e3d5d982e339e20d1569641ce404 Mon Sep 17 00:00:00 2001
From: "H. Peter Anvin" <hpa@zytor.com>
Date: Thu, 24 May 2012 07:01:38 -0700
Subject: [PATCH] x86, relocs: Add jiffies and jiffies_64 to the relative
 whitelist

The symbol jiffies is created in the linker script as an alias to
jiffies_64.  Unfortunately this is done outside any section, and
apparently GNU ld 2.21 doesn't carry the section with it, so we end up
with an absolute symbol and therefore a broken kernel.

Add jiffies and jiffies_64 to the whitelist.

The most disturbing bit with this discovery is that it shows that we
have had multiple linker bugs in this area crossing multiple
generations, and have been silently building bad kernels for some time.

Link: http://lkml.kernel.org/r/20120524171604.0d98284f3affc643e9714470@canb.auug.org.au
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/tools/relocs.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index b8f7c65..b685296 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -71,6 +71,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
 	"__(start|stop)_notes|"
 	"__end_rodata|"
 	"__initramfs_start|"
+	"(jiffies|jiffies_64)|"
 	"_end)$"
 };
 
-- 
1.7.6.5


  parent reply	other threads:[~2012-05-24 14:06 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-21  8:54 linux-next: build failure after merge of the final tree Stephen Rothwell
2012-05-21  9:12 ` Ingo Molnar
2012-05-21  9:15   ` Stephen Rothwell
2012-05-22  8:25   ` Stephen Rothwell
2012-05-23 15:35     ` Ingo Molnar
2012-05-24  7:16       ` Stephen Rothwell
2012-05-24  7:22         ` Ingo Molnar
2012-05-24 14:06         ` H. Peter Anvin [this message]
2012-05-24 16:09         ` [tip:x86/urgent] x86, relocs: Add jiffies and jiffies_64 to the relative whitelist tip-bot for H. Peter Anvin
  -- strict thread matches above, loose matches on Subject: below --
2014-05-28  9:46 linux-next: build failure after merge of the final tree Stephen Rothwell
2014-05-28  9:57 ` Paul Bolle
2014-05-28 10:14   ` Paul Bolle
2014-05-28 20:21     ` Paul Bolle
2014-05-28 20:42       ` Greg KH
2014-05-28 20:48         ` Paul Bolle
2014-05-28 21:15           ` Greg KH
2014-05-28 10:24   ` Stephen Rothwell
2014-04-07  4:52 Stephen Rothwell
2014-04-07 18:26 ` Andrew Morton
2014-04-07 21:51   ` Stephen Rothwell
2014-01-30  3:55 Stephen Rothwell
2014-01-06  9:28 Stephen Rothwell
2014-01-06 23:12 ` Benjamin Herrenschmidt
2013-12-17  5:59 Stephen Rothwell
2013-12-17  8:26 ` Heiko Stübner
2013-12-16  5:47 Stephen Rothwell
2013-12-16  7:08 ` Krzysztof Kozlowski
2013-12-16 11:45   ` Mark Brown
2013-12-16 12:13     ` Krzysztof Kozlowski
2013-12-16 12:33       ` Mark Brown
2013-12-16 13:29         ` Stephen Rothwell
2013-11-18  3:19 Stephen Rothwell
2013-11-18  8:49 ` Kirill A. Shutemov
2013-11-18 23:09   ` David Miller
2013-11-18  3:01 Stephen Rothwell
2013-11-04  6:52 Stephen Rothwell
2013-11-04 17:06 ` Mark Brown
2013-10-29  9:16 Stephen Rothwell
2013-10-29 13:11 ` Linus Walleij
2013-10-29 13:20   ` Linus Walleij
2013-09-27  8:32 Stephen Rothwell
2013-09-27 14:40 ` Chris Ball
2013-08-20  7:20 Stephen Rothwell
2013-08-20 16:07 ` Dwight Engen
2013-08-20 19:28   ` Ben Myers
2013-08-21  0:22     ` Stephen Rothwell
2013-08-21 15:54       ` Ben Myers
2013-08-20 20:46   ` Arnd Bergmann
2013-08-21  5:08     ` Dwight Engen
2013-08-21  6:30       ` Jeremy Kerr
2013-08-21 15:56         ` Ben Myers
2013-03-12  4:30 Stephen Rothwell
2013-03-12  9:31 ` Daniel Hellstrom
2013-03-12 11:57   ` Stephen Rothwell
2013-03-12 16:13     ` Dmitry Torokhov
2013-03-13 11:20       ` Daniel Hellstrom
2013-02-06  7:30 Stephen Rothwell
2013-02-06  7:42 ` Stephen Rothwell
2013-02-06 17:52   ` Greg Kroah-Hartman
2013-02-06 18:40     ` David Miller
2012-10-16  3:50 Stephen Rothwell
2012-10-16  4:21 ` Al Viro
2012-07-31  5:14 Stephen Rothwell
2012-07-19  7:08 Stephen Rothwell
2012-07-19 13:53 ` Javier Muñoz
2012-07-05  8:33 Stephen Rothwell
2012-07-05  9:43 ` Alan Modra
2012-07-06  0:21   ` Stephen Rothwell
2012-07-06  0:57     ` Alan Modra
2012-07-06  3:01       ` Stephen Rothwell
2012-07-06  6:08         ` Alan Modra
2012-05-22  8:20 Stephen Rothwell
2012-05-22 19:05 ` David Miller
2012-05-23  2:08   ` Stephen Rothwell
2012-02-27  7:06 Stephen Rothwell
2012-02-27 21:17 ` Greg KH
2012-02-27 21:24   ` Alan Cox
2012-02-27  7:05 Stephen Rothwell
2012-02-27  6:37 Stephen Rothwell
2012-02-27  9:19 ` Benjamin Herrenschmidt
2012-02-27 23:30   ` Benjamin Herrenschmidt
2012-01-20  7:21 Stephen Rothwell
2012-01-20  9:08 ` Deepthi Dharwar
2012-01-20  7:11 Stephen Rothwell
2012-01-20  7:34 ` Andrew Morton
2012-01-20  8:21   ` Sebastian Andrzej Siewior
2012-01-05  8:04 Stephen Rothwell
2012-01-06  0:04 ` Andrew Morton
2012-01-09  5:59   ` Stephen Rothwell
2012-01-09  6:20     ` Stephen Rothwell
2012-01-09 15:42       ` Greg KH
2012-01-09 15:54         ` Steven Rostedt
2012-01-09 16:27           ` Stephen Rothwell
2012-01-09 16:26         ` Stephen Rothwell
2012-01-09 21:35     ` David Miller
2012-01-09 21:41       ` Steven Rostedt
2011-12-17  4:22 Stephen Rothwell
2011-12-17  4:27 ` Stephen Rothwell
2011-09-30  1:38 Stephen Rothwell
2011-09-30  2:49 ` Yoshihiro Shimoda
2011-09-30  1:23 Stephen Rothwell
2011-09-30  1:12 Stephen Rothwell
2011-09-30  2:40 ` Paul Gortmaker
2011-09-30  3:05   ` Stephen Rothwell
2011-09-30  3:22     ` Paul Gortmaker
2011-09-30  1:05 Stephen Rothwell
2011-09-30  7:57 ` Heiko Carstens
2011-09-28  9:56 Stephen Rothwell
2011-09-28 12:02 ` huang ying
2011-08-23  5:48 Stephen Rothwell
2011-08-23 14:32 ` Randy Dunlap
2011-07-18  9:35 Stephen Rothwell
2011-07-18  9:30 Stephen Rothwell
2011-07-18 17:58 ` David Miller
2011-07-18 20:52   ` Sam Ravnborg
2011-05-27  5:11 Stephen Rothwell
2011-05-27 14:47 ` Mike Frysinger
2011-05-23  4:56 Stephen Rothwell
2011-05-23  5:17 ` Artem Bityutskiy
2011-05-20  6:32 Stephen Rothwell
2011-05-20  6:27 Stephen Rothwell
2011-05-20  6:23 Stephen Rothwell
2011-05-20  6:18 Stephen Rothwell
2011-05-24  2:06 ` Mike Frysinger
2011-05-24  2:51   ` Greg KH
2011-05-24  3:59     ` Stephen Rothwell
2011-05-24 12:48       ` Greg KH
2011-05-24 21:52         ` Stephen Rothwell
2011-05-24  4:01   ` Linus Torvalds
2011-05-24  4:10     ` Mike Frysinger
2011-05-24 17:10       ` Mike Frysinger
2011-05-24 17:29         ` Linus Torvalds
2011-05-25  9:24         ` Felipe Balbi
2011-05-25 12:13           ` Mike Frysinger
2011-05-20  6:12 Stephen Rothwell
2011-05-20 15:24 ` Linus Torvalds
2011-05-20 16:16   ` Thomas Gleixner
2011-05-20 16:29     ` Linus Torvalds
2011-03-28  3:44 Stephen Rothwell
2011-03-24  3:30 Stephen Rothwell
2011-03-24  4:13 ` Andrew Morton
2011-03-24 19:55   ` Tony Luck
2011-01-31  6:26 Stephen Rothwell
2011-01-15  2:10 Stephen Rothwell
2011-01-15  4:27 ` Andrea Arcangeli
2010-11-29  2:07 Stephen Rothwell
2010-11-09  4:03 Stephen Rothwell
2010-09-16  5:15 Stephen Rothwell
2010-09-16  5:47 ` Takashi Iwai
2010-08-11  3:38 Stephen Rothwell
2010-08-11  5:23 ` Andrew Morton
2010-08-11  7:38   ` Stephen Rothwell
2010-07-27  7:00 Stephen Rothwell
2010-07-16  7:11 Stephen Rothwell
2010-07-16 18:39 ` Yinghai Lu
2010-07-16 20:58   ` Russell King
2010-07-16 23:07     ` Stephen Rothwell
2010-06-23 16:19 Stephen Rothwell
2010-06-24  0:36 ` Stephen Rothwell
2010-06-24  9:00   ` Catalin Marinas
2010-06-24  9:09     ` Russell King
2010-06-24 10:18     ` Phil Carmody
2010-05-25  4:10 Stephen Rothwell
2010-05-25  4:58 ` David Miller
2010-05-25  5:14   ` Herbert Xu
2010-05-25  6:56     ` David Miller
2010-05-14  5:53 Stephen Rothwell
2010-05-14 15:03 ` Don Zickus
2010-05-15  7:37   ` Ingo Molnar
2010-05-15 20:28     ` Frederic Weisbecker
2010-05-14 15:11 ` Don Zickus
2010-04-27  5:49 Stephen Rothwell
2010-04-28  9:41 ` Alexander Graf
2010-04-28  9:48   ` Avi Kivity
2010-04-28 15:21 ` Marcelo Tosatti
2010-04-08  5:35 Stephen Rothwell
2010-04-08  6:25 ` David Miller
2010-04-08 14:15   ` John Linn
2010-04-08 22:59     ` Stephen Rothwell
2010-04-08 23:01       ` John Linn
     [not found] <20100318160220.b7eaded6.sfr@canb.auug.org.au>
2010-03-18  6:21 ` David Miller
     [not found] <20100301203453.938e4136.sfr@canb.auug.org.au>
2010-03-01  9:42 ` Jens Axboe
2010-03-01 10:07   ` Stephen Rothwell
2010-03-01  9:40 Stephen Rothwell
2010-03-01  9:38 Stephen Rothwell
2010-03-02 20:47 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FBE404B.2020702@zytor.com \
    --to=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=sfr@canb.auug.org.au \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).