linux-mips
[Top] [All Lists]

Re: is there any docs/manuals for linker scripts symbols

To: ik@cyberspace.org
Subject: Re: is there any docs/manuals for linker scripts symbols
From: Ralf Baechle <ralf@linux-mips.org>
Date: Tue, 24 Jun 2003 14:00:18 +0200
Cc: kernelnewbies@nl.linux.org, linux-mips@linux-mips.org
In-reply-to: <Pine.SUN.3.96.1030624055005.4605A-100000@grex.cyberspace.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <Pine.SUN.3.96.1030624055005.4605A-100000@grex.cyberspace.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4.1i
On Tue, Jun 24, 2003 at 06:00:16AM -0400, ik@cyberspace.org wrote:

> I'm porting Linux kernel to a mips board for which I need to understand
> the various symbols used in the kernel.
> 
> For example what is the use of the following symbols
> `__init_begin'
> `__init_end'
> `__initcall_start
> `__initcall_end'
> `_ftext'
> `__setup_start'
> `__setup_end'
> 
> I'm not good in these linker scripts... any help pointers would be of
> great help to me ! (I'm referrring gnu ld  manual pages ... still have a
> long way to go :(

You'll find more information in the GNU info pages than in the man page
which is sort of an option summary only.  Of course both only cover ld,
not the way it's actually being used in Linux.

_ftext is the start of the executable kernel code.  __init_begin and
__init_end wrap the kernel's initialization code which will be freed after
full initialization.  See arch/mips/mm/init.c:__init_begin() and
arch/mips/mm/init.c:free_initmem() for how it's used.

__initcall_start and __initcall_end are used for the initcalls in
init/main.c.  See how those symbols are used in init/main.c:do_initcalls().
__setup_start and __setup_end are used in similarly obscure way to mark
start and end of the .setup.init section; see init/main.c:checksetup()
and <linux/init.h> for it's use.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>