linux-mips
[Top] [All Lists]

Re: [RFC] Add __initbss section

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [RFC] Add __initbss section
From: Franck Bui-Huu <vagabon.xyz@gmail.com>
Date: Sun, 14 Oct 2007 21:42:08 +0200
Cc: "Maciej W. Rozycki" <macro@linux-mips.org>, Geert Uytterhoeven <geert@linux-m68k.org>, linux-mips <linux-mips@linux-mips.org>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; bh=onK8KdiqrRiD6yGri7nXg/KYOmOYpAwmSIsE6EncuC4=; b=IDUV5copfFuwjfoDiyGcMUo74W2Y2UY9paCNwDnJdkS/HcN/pZYM4mTaQn0Yx2tPgKlhVFuIEJFHnD7ixYL0DC0RPZ50dU6Z43n56l/CmxRMiGY0tROtTGfVvRShBYQnDjIpSwSXtJik72voXYBpRWxkld9PsweKFPYFgfqBfMk=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; b=La/FGLGX8YYEIBZAURElIXQaKPnPILmF2t8K7K/dniwSLYGaLkcUkKZ64h0ASztb56KUnY9cc2qsYc7BaFN1IGWivM+4w1DdXxzg7UBMW67yFUuiCcpA7KizehMXgiVN2g6i0iNZ+rgAIoBq5QffjDwxNatnfGz6D8b854TnWN4=
In-reply-to: <20071011124410.GA17202@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <470DF25E.60009@gmail.com> <20071011124410.GA17202@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.5 (X11/20070719)
Ralf Baechle wrote:
> On Thu, Oct 11, 2007 at 11:52:30AM +0200, Franck Bui-Huu wrote:
> 
>> Other question: I noticed that the exit.data section is not
>> discarded. Could anybody give me the reason why ?
> 
> .exit.data and .exit.text may reference each other.  __exit functions
> generally get compiled into .exit.text but some constructs such as jump
> tables for switch() constructs may be compiled into address tables which
> gcc unfortunately will put into .rodata, so .rodata will end up
> referencing function addresses in .exit.text which makes ld unhappy if
> .exit.text was discarded.  So until this is fixed in gcc we can't
> discard exit code, unfortunately.
> 

Thanks for the details.

I actually don't see any point to move these tables in .rodata since
they're part of the code...

> It's actually an issue which doesn't strike very often, so users who are
> desparate for shrinking the kernel down could try to undo patchsets:
> 
>   6f0b1e5d266fb1d0da019c07b56ccc02c3a4f53a
>   ca7402fed2a76cd5a417ac4d375a5539dcb2b6de
> 
> and see if they can get away with it.  If the final kernel link succeeds,
> the build would be ok.
> 
> I think gcc should probably put the jump table into a .subsection if
> a section was explicitly requested, at least for non-PIC code.
> 

yes that would be great, and do the same for strings, data and we could
get rid of all __initxxx annotations.

                Franck



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