linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: Start symbol for an compressed kernel
Date: Sat, 17 Aug 2013 15:19:38 +0100	[thread overview]
Message-ID: <20130817141938.GN23006@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1376748724.761782391@f272.i.mail.ru>

On Sat, Aug 17, 2013 at 06:12:04PM +0400, Alexander Shiyan wrote:
> > 2013/8/17 Russell King - ARM Linux <linux@arm.linux.org.uk>:
> > > On Sat, Aug 17, 2013 at 09:56:14PM +0800, zhaobin xv wrote:
> > >> 2013/8/17 Russell King - ARM Linux <linux@arm.linux.org.uk>:
> > >> > On Sat, Aug 17, 2013 at 07:39:46PM +0800, zhaobin xv wrote:
> > >> >> how to find Start symbol for an compressed kernel for arm
> > >> >
> > >> > The start address of a compressed kernel is the first byte of the image.
> > >> >
> > >> > Symbolically, that is 'start', which is a non-global symbol.  However,
> > >> > this symbol is useless since it normally is zero, because the entire
> > >> > image is relocatable and therefore built for address zero.
> > >> >
> > >> > However, it is normal to load the image not at address zero.
> > >>
> > >> why do U define ENTRY(_start)?
> > >> Is _start the Start symbol?
> > >> how to explain _start
> > >
> > > There is no _start symbol in the compressed kernel.
> > 
> > But there is ENTRY(_start) and _start in
> > linux-2.6.22.6\arch\arm\boot\compressed/head.S
> 
> I always thought that the "start" is necessary for the compiler to tell it
> what is at the beginning of the program. So, on my opinion this is just
> a way to tell to gcc where we should place initial kernel data.

There is a _start symbol in arch/arm/boot/compressed/vmlinux.lds.in which
is used to define the entry point for linker purposes (and used to also
be used for some calculations in head.S).  It's never been defined in
head.S though.

As I've already pointed out, the symbol is practically meaningless - all
the symbols in the compressed image are merely offsets from the address
you load the image at because it is position independent code.

If you load the image at 0x8000, you call it at 0x8000.  If you load the
image at 0x12345678, then you call it at 0x12345678 and not where this
_start symbol says you should.

      reply	other threads:[~2013-08-17 14:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-17 11:39 Start symbol for an compressed kernel zhaobin xv
2013-08-17 13:48 ` Russell King - ARM Linux
2013-08-17 13:56   ` zhaobin xv
2013-08-17 13:57     ` Russell King - ARM Linux
2013-08-17 14:03       ` zhaobin xv
2013-08-17 14:16         ` Russell King - ARM Linux
2013-08-17 14:12       ` Alexander Shiyan
2013-08-17 14:19         ` Russell King - ARM Linux [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=20130817141938.GN23006@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).