linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Bogus objdump output from kernel object files?
@ 2006-02-14  9:54 Chuck Ebbert
  2006-02-14 20:53 ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Chuck Ebbert @ 2006-02-14  9:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Roland McGrath, Ulrich Drepper, linux-kernel

On Sun, 12 Feb 2006 at 01:40:46 -0800, Andrew Morton wrote:

> btw, is something up with `make foo.lst'?  It hasn't worked for me for
some
> time.
> 
> bix:/usr/src/25> make mm/vmscan.lst
>   MKLST   mm/vmscan.lst

Just doing 'objdump -d -r -l -j .text mm/vmscan.o' gives:

mm/vmscan.o:     file format elf32-i386

Disassembly of section .text:

00000000 <shrink_slab>:
kswapd_init():
^^^^^^^^^^^^^^
This is actually at offset 0 in .init.text

mm/vmscan.c:176
       0:       55                      push   %ebp
shrink_slab():
^^^^^^^^^^^^^^
OK, back to the right location.

       1:       89 e5                   mov    %esp,%ebp
       3:       57                      push   %edi
kswapd_init():
mm/vmscan.c:1801
^^^^^^^^^^^^^^^^
Now back to kswapd_init() again?!?!

       4:       56                      push   %esi
       5:       89 c6                   mov    %eax,%esi
include/asm/processor.h:710
       7:       53                      push   %ebx
       8:       83 ec 24                sub    $0x24,%esp
mm/vmscan.c:180
^^^^^^^^^^^^^^^

       b:       85 c0                   test   %eax,%eax
include/asm/processor.h:710
       d:       b8 20 00 00 00          mov    $0x20,%eax
mm/vmscan.c:176
      12:       89 55 e4                mov    %edx,0xffffffe4(%ebp)
mm/vmscan.c:180
      15:       0f 44 f0                cmove  %eax,%esi
include/asm/rwsem.h:126
      18:       a1 0c 00 00 00          mov    0xc,%eax
                        19: R_386_32    .data
      1d:       89 c2                   mov    %eax,%edx
      1f:       83 c2 01                add    $0x1,%edx
mm/vmscan.c:1803
^^^^^^^^^^^^^^^^

      22:       7e 09                   jle    2d <shrink_slab+0x2d>
      24:       0f b1 15 0c 00 00 00    cmpxchg %edx,0xc
                        27: R_386_32    .data
      2b:       75 f0                   jne    1d <shrink_slab+0x1d>
mm/vmscan.c:183
      2d:       85 c0                   test   %eax,%eax
      2f:       c7 45 e8 01 00 00 00    movl   $0x1,0xffffffe8(%ebp)
      36:       0f 88 2c 01 00 00       js     168 <shrink_slab+0x168>


So it is confused somehow.  This is with debug info generated by gcc 4.0.2
from
Fedora Core 4 (Red Hat 4.0.2-8) and locally-compiled objdump 2.16.1 (there
seems to be no binutils update for FC4 available.)
-- 
Chuck
"Equations are the Devil's sentences."  --Stephen Colbert

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bogus objdump output from kernel object files?
  2006-02-14  9:54 Bogus objdump output from kernel object files? Chuck Ebbert
@ 2006-02-14 20:53 ` Andrew Morton
  2006-02-25 19:03   ` Sam Ravnborg
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2006-02-14 20:53 UTC (permalink / raw)
  To: Chuck Ebbert; +Cc: roland, drepper, linux-kernel

Chuck Ebbert <76306.1226@compuserve.com> wrote:
>
> On Sun, 12 Feb 2006 at 01:40:46 -0800, Andrew Morton wrote:
> 
>  > btw, is something up with `make foo.lst'?  It hasn't worked for me for
>  some
>  > time.
>  > 
>  > bix:/usr/src/25> make mm/vmscan.lst
>  >   MKLST   mm/vmscan.lst
> 
>  Just doing 'objdump -d -r -l -j .text mm/vmscan.o' gives:
> 
>  mm/vmscan.o:     file format elf32-i386
> 
>  Disassembly of section .text:
> 
>  00000000 <shrink_slab>:
>  kswapd_init():
>  ^^^^^^^^^^^^^^
>  This is actually at offset 0 in .init.text
> 
>  mm/vmscan.c:176
>         0:       55                      push   %ebp
>  shrink_slab():
>  ^^^^^^^^^^^^^^
>  OK, back to the right location.

Looks like it's a binutils problem.

	http://sources.redhat.com/bugzilla/show_bug.cgi?id=2338

HJ said he'd try to get this fixed for the next binutils release.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bogus objdump output from kernel object files?
  2006-02-14 20:53 ` Andrew Morton
@ 2006-02-25 19:03   ` Sam Ravnborg
  0 siblings, 0 replies; 4+ messages in thread
From: Sam Ravnborg @ 2006-02-25 19:03 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Chuck Ebbert, roland, drepper, linux-kernel

On Tue, Feb 14, 2006 at 12:53:44PM -0800, Andrew Morton wrote:
> Chuck Ebbert <76306.1226@compuserve.com> wrote:
> >
> > On Sun, 12 Feb 2006 at 01:40:46 -0800, Andrew Morton wrote:
> > 
> >  > btw, is something up with `make foo.lst'?  It hasn't worked for me for
> >  some
> >  > time.
> >  > 
> >  > bix:/usr/src/25> make mm/vmscan.lst
> >  >   MKLST   mm/vmscan.lst
> > 
> >  Just doing 'objdump -d -r -l -j .text mm/vmscan.o' gives:
> > 
> >  mm/vmscan.o:     file format elf32-i386
> > 
> >  Disassembly of section .text:
> > 
> >  00000000 <shrink_slab>:
> >  kswapd_init():
> >  ^^^^^^^^^^^^^^
> >  This is actually at offset 0 in .init.text
> > 
> >  mm/vmscan.c:176
> >         0:       55                      push   %ebp
> >  shrink_slab():
> >  ^^^^^^^^^^^^^^
> >  OK, back to the right location.
> 
> Looks like it's a binutils problem.
> 
> 	http://sources.redhat.com/bugzilla/show_bug.cgi?id=2338
> 
> HJ said he'd try to get this fixed for the next binutils release.

I've played a little with make dir/foo.lst and it sort of seems to work
for me. But I dunno how to really check the output.
objdump spits out a warning on my amd64 due to the --adjust-vma=xxx
but that I suppose is again a binutils issue. The value calculated
generate the correct adjust factor.

The --fverbose-asm cannot omprove output of make dir/foo.lst since
the .lst file is created based on the .o file, whereas --fverbose-asm
only have impact on the file generated by gcc.

Let me know if anyone thinks something is bad with the kbuild
make dir/foo.lst functionality and I will ahve a look.

	Sam

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Bogus objdump output from kernel object files?
@ 2006-02-25 21:11 Chuck Ebbert
  0 siblings, 0 replies; 4+ messages in thread
From: Chuck Ebbert @ 2006-02-25 21:11 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-kernel, Andrew Morton, Arjan van de Ven

In-Reply-To: <20060225190324.GA9326@mars.ravnborg.org>

On Sat, 25 Feb 2006 at 20:03:24 +0100, Sam Ravnborg wrote:
> Let me know if anyone thinks something is bad with the kbuild
> make dir/foo.lst functionality and I will ahve a look.

Try it with Arjan's new "reorder functions" patch and you should
see some real breakage.  makelst assumes the entire .o file
gets placed in-order into vmlinux and a single --adjust-vma will
work for the entire file when it really needs to be done for each
section.  It was probably already broken because of .init.text
vs. .text sections but I never did check that.  And the "grep .text"
in line 1 is broken too; it needs to be "grep -F".

-- 
Chuck
"Equations are the Devil's sentences."  --Stephen Colbert


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-02-25 21:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-14  9:54 Bogus objdump output from kernel object files? Chuck Ebbert
2006-02-14 20:53 ` Andrew Morton
2006-02-25 19:03   ` Sam Ravnborg
2006-02-25 21:11 Chuck Ebbert

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).