mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Brian Gerst <bgerst@didntduck.org>
To: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: Linux Kernel List <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] Force build error on undefined symbols
Date: Sat, 10 Apr 2004 15:33:07 -0400	[thread overview]
Message-ID: <40784BF3.7080706@quark.didntduck.org> (raw)
In-Reply-To: <20040410131028.A4221@flint.arm.linux.org.uk>

Russell King wrote:
> Hi,
> 
> I've checked the date, and it isn't April Fools day.  I wish it was
> though.
> 
> It appears that all binutils versions for ARM which are capable of
> building 2.6 kernels which have been tested so far contain a serious
> bug - it is possible to successfully link an object and still have
> various symbols undefined.  Currently, these binutils have been
> tested on ARM (as cross-compilers and/or native) and found wanting:
> 
> GNU assembler 2.13.90.0.18 20030206
> GNU assembler 2.14 20030612
> GNU assembler 2.14.90 20031229
> GNU ld version 2.14.90.0.7 20031029 Debian GNU/Linux
> Assembleur GNU 2.15.90.0.1 20040303
> 
> So far, we have discovered two cases:
> 
> 1. When building a certain file, an undefined symbolic constant
>    (TI_USED_CP) ended up in the symbol table without a relocation,
>    and the value the assembler decided to use was '0'.  The effect
>    of this is that we ended up setting bits in thread_info->flags.
> 
>    This appears to be a binutils "as" error.
> 
> 2. When building the decompressor for ARM kernels, GCC appears to
>    inexplicably emit ".global" directives for symbols not defined
>    in the files being built, even though the symbols themselves are
>    not actually used.  I'm not sure whether this is a real bug;
>    binutils on x86 appears to accept and link such objects.
> 
> In both cases, the linker successfully created executable programs
> which ran.  In the first case, it is a silent error; the kernel had
> been linked, and able to run, but the program is not correct.
> 
> Obviously, the one true correct solution is to fix the toolchain and
> upgrade to the latest version.  However, since we have potentially
> multiple binutils versions spread across more than a year affected,
> I think we need to detect such errors as well.
> 
> Therefore, I propose the following patch to detect undefined symbols
> in the final image and force an error if this is the case.
> 
> Comments?

How about adding --no-undefined to LDFLAGS_vmlinux instead?

--
				Brian Gerst

  parent reply	other threads:[~2004-04-10 19:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-10 12:10 Russell King
2004-04-10 14:24 ` Sam Ravnborg
2004-04-10 14:35   ` Russell King
2004-04-10 17:28     ` Sam Ravnborg
2004-04-10 19:08       ` Russell King
2004-04-10 19:33 ` Brian Gerst [this message]
2004-04-10 20:19   ` Russell King

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=40784BF3.7080706@quark.didntduck.org \
    --to=bgerst@didntduck.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rmk+lkml@arm.linux.org.uk \
    /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

all inboxes | Powered by JetHome®