All of lore.kernel.org
 help / color / mirror / Atom feed
From: Franck Bui-Huu <vagabon.xyz@gmail.com>
To: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: Ralf Baechle <ralf@linux-mips.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-mips <linux-mips@linux-mips.org>
Subject: Re: [RFC] Add __initbss section
Date: Thu, 18 Oct 2007 22:28:43 +0200	[thread overview]
Message-ID: <4717C1FB.4030602@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64N.0710161123110.22596@blysk.ds.pg.gda.pl>

Maciej W. Rozycki wrote:
> On Mon, 15 Oct 2007, Franck Bui-Huu wrote:
> 
>> Well, since .init.bss is declared as follow:
>>
>> 	.init.bss (NOLOAD) : {
>> 		...
>> 	}
>>
>> data should not take any space in the image...
> 
>  The above only marks it as unloadable (cf. e.g. debugging information).  
> It is still there.
> 

So it seems there is no way from a linker script to specify that a
section has the nobits type, is it ?

After spending some fun time trying several different configurations
with gcc and ld, I noticed that gcc makes a section with @nobits
attribute if the section name starts with .bss.*

So calling .bss.init instead of .init.bss makes gcc do the right
thing. Here is a bit of tlbex.s:

		.word	0
		.section	.bss.init,"aw",@nobits
		.align	2
		.type	tlb_handler, @object
		.size	tlb_handler, 512
	tlb_handler:
		.space	512
		.align	2
		.type	labels, @object
		.size	labels, 1024
	labels:
		.space	1024


Another test I did is to put .init.bss (not .bss.init) section right
before .bss section in order to have only one segment to load. And it
makes magically ld do the right thing. I must admit that I don't
understand why, and the lack of documentation doesn't help...

Unfortunately I don't know if we can rely on one of these
behaviours. IOW if they're going to work with all supported versions
of gcc/ld.

Anyway, I'll resubmit a new patchset for futher discussion.

		Franck

  reply	other threads:[~2007-10-18 20:30 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-11  9:52 [RFC] Add __initbss section Franck Bui-Huu
2007-10-11  9:54 ` [PATCH 1/2] Add .init.bss section Franck Bui-Huu
2007-10-11  9:58 ` [PATCH 2/2] Add .init.bss section for MIPS Franck Bui-Huu
2007-10-11 12:44 ` [RFC] Add __initbss section Ralf Baechle
2007-10-11 13:35   ` Maciej W. Rozycki
2007-10-11 14:00     ` Ralf Baechle
2007-10-11 14:49       ` Maciej W. Rozycki
2007-10-14 19:42   ` Franck Bui-Huu
2007-10-15 16:01     ` Ralf Baechle
2007-10-16  8:33       ` Franck Bui-Huu
2007-10-11 13:19 ` Maciej W. Rozycki
2007-10-14 19:52   ` Franck Bui-Huu
2007-10-15 12:19     ` Maciej W. Rozycki
2007-10-15 20:06       ` Franck Bui-Huu
2007-10-16 10:29         ` Maciej W. Rozycki
2007-10-18 20:28           ` Franck Bui-Huu [this message]
2007-10-19 11:59             ` Maciej W. Rozycki
2007-11-04  8:29               ` Franck Bui-Huu
2007-11-05 12:38                 ` Maciej W. Rozycki
2007-11-05 20:32                   ` Franck Bui-Huu
2007-10-11 15:26 ` Thiemo Seufer
2007-10-11 16:16   ` Maciej W. Rozycki
2007-10-11 16:25     ` Ralf Baechle
2007-10-11 17:07       ` Maciej W. Rozycki
2007-10-11 16:39     ` Thiemo Seufer
2007-10-14 19:53   ` Franck Bui-Huu

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=4717C1FB.4030602@gmail.com \
    --to=vagabon.xyz@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=linux-mips@linux-mips.org \
    --cc=macro@linux-mips.org \
    --cc=ralf@linux-mips.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.