From: Sam Ravnborg <sam@ravnborg.org>
To: Keith Owens <kaos@sgi.com>
Cc: Dave Jones <davej@redhat.com>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: reference_discarded addition
Date: Sun, 8 Jan 2006 18:59:34 +0100 [thread overview]
Message-ID: <20060108175934.GA15445@mars.ravnborg.org> (raw)
In-Reply-To: <31103.1136685155@ocs3.ocs.com.au>
On Sun, Jan 08, 2006 at 12:52:35PM +1100, Keith Owens wrote:
> Dave Jones (on Fri, 6 Jan 2006 02:40:19 -0500) wrote:
> >Error: ./fs/quota_v2.o .opd refers to 0000000000000020 R_PPC64_ADDR64 .exit.text
> >
> >Been carrying this for some time in Red Hat trees.
> >
> >Signed-off-by: Dave Jones <davej@redhat.com>
> >
> >diff -urNp --exclude-from=/home/davej/.exclude linux-3022/scripts/reference_discarded.pl linux-10000/scripts/reference_discarded.pl
> >--- linux-3022/scripts/reference_discarded.pl
> >+++ linux-10000/scripts/reference_discarded.pl
> >@@ -88,6 +88,7 @@ foreach $object (keys(%object)) {
> > ($from !~ /\.text\.exit$/ &&
> > $from !~ /\.exit\.text$/ &&
> > $from !~ /\.data\.exit$/ &&
> >+ $from !~ /\.opd$/ &&
> > $from !~ /\.exit\.data$/ &&
> > $from !~ /\.altinstructions$/ &&
> > $from !~ /\.pdr$/ &&
>
> For our future {in}sanity, add a comment that this is the ppc .opd
> section, not the ia64 .opd section. ia64 .opd should not point to
> discarded sections.
>
> Any idea why ppc .opd points to discarded sections when ia64 does not?
> AFAICT no ia64 object has a useful .opd section, they are all empty or
> (sometimes) a dummy entry which is 1 byte long. ia64 .opd data is
> built at link time, not compile time.
>
> It is a pity that ppc is generating .opd entries at compile time. It
> makes it impossible to detect a real reference to a discarded function.
Thanks for the comments Keith.
I have applied the following:
diff-tree 442ce844e139c1e3c23e8b4df13468041ae35721 (from 50aa88e2877f1375ba79d1be7a0ff4aa563741c7)
Author: Dave Jones <davej@redhat.com>
Date: Fri Jan 6 02:40:19 2006 -0500
kbuild: reference_discarded addition
Error: ./fs/quota_v2.o .opd refers to 0000000000000020 R_PPC64_ADDR64 .exit.text
Been carrying this for some time in Red Hat trees.
Keith Ownes <kaos@sgi.com> commented:
For our future {in}sanity, add a comment that this is the ppc .opd
section, not the ia64 .opd section. ia64 .opd should not point to
discarded sections.
Any idea why ppc .opd points to discarded sections when ia64 does not?
AFAICT no ia64 object has a useful .opd section, they are all empty or
(sometimes) a dummy entry which is 1 byte long. ia64 .opd data is
built at link time, not compile time.
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/scripts/reference_discarded.pl b/scripts/reference_discarded.pl
index c2d5414..4ee6ab2 100644
--- a/scripts/reference_discarded.pl
+++ b/scripts/reference_discarded.pl
@@ -69,10 +69,15 @@ foreach $object (keys(%object)) {
}
}
# printf("ignoring %d conglomerate(s)\n", $ignore);
# printf("Scanning objects\n");
+
+# Keith Ownes <kaos@sgi.com> commented:
+# For our future {in}sanity, add a comment that this is the ppc .opd
+# section, not the ia64 .opd section.
+# ia64 .opd should not point to discarded sections.
$errorcount = 0;
foreach $object (keys(%object)) {
my $from;
open(OBJDUMP, "objdump -r $object|") || die "cannot objdump -r $object";
while (defined($line = <OBJDUMP>)) {
@@ -86,10 +91,11 @@ foreach $object (keys(%object)) {
$line =~ /\.exit\.data$/ ||
$line =~ /\.exitcall\.exit$/) &&
($from !~ /\.text\.exit$/ &&
$from !~ /\.exit\.text$/ &&
$from !~ /\.data\.exit$/ &&
+ $from !~ /\.opd$/ &&
$from !~ /\.exit\.data$/ &&
$from !~ /\.altinstructions$/ &&
$from !~ /\.pdr$/ &&
$from !~ /\.debug_.*$/ &&
$from !~ /\.exitcall\.exit$/ &&
prev parent reply other threads:[~2006-01-08 17:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-06 7:40 Dave Jones
2006-01-08 1:52 ` Keith Owens
2006-01-08 17:59 ` Sam Ravnborg [this message]
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=20060108175934.GA15445@mars.ravnborg.org \
--to=sam@ravnborg.org \
--cc=davej@redhat.com \
--cc=kaos@sgi.com \
--cc=linux-kernel@vger.kernel.org \
/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
Powered by JetHome