From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Mackall Subject: Re: [RFC] move __devinit or __init printk constant format strings to __devinitconst or __initdata? Date: Tue, 21 Jul 2009 20:28:05 -0500 Message-ID: <1248226085.10466.251.camel@calx> References: <1248211253.31365.337.camel@Joe-Laptop.home> <1248212925.10466.143.camel@calx> <1248213403.31365.343.camel@Joe-Laptop.home> <1248217044.10466.202.camel@calx> <1248217502.31365.381.camel@Joe-Laptop.home> <4A665442.1010006@caviumnetworks.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4A665442.1010006@caviumnetworks.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" To: David Daney Cc: Joe Perches , linux-embedded@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Gortmaker , David Woodhouse , Tim Bird On Tue, 2009-07-21 at 16:50 -0700, David Daney wrote: > Joe Perches wrote: > > On Tue, 2009-07-21 at 17:57 -0500, Matt Mackall wrote: > >> On Tue, 2009-07-21 at 14:56 -0700, Joe Perches wrote: > >>> On Tue, 2009-07-21 at 16:48 -0500, Matt Mackall wrote: > >>>> On Tue, 2009-07-21 at 14:20 -0700, Joe Perches wrote: > >>>>> Is moving constant string formats to __devinitconst or __initdata > >>>>> useful for embedded environments? > >>>> Interesting notion, but not worth the trouble in my mind. I think it's > >>>> more worthwhile to look into automatic such stuff in the build somehow. > >>> I think it's not possible today to get gcc to mark > >>> the format strings without source modification. > >> Yep, that's why I specifically said 'build'. It can probably be done in > >> a post-processing step with some ELF wizardry. > > > > Know any elven wizards? > > > > It would be tricky, the string data from the entire compilation unit is > intermingled. You would have to separate out only those strings > referenced from __init sections into their own section and fix up all > symbols and relocations that were affected. Exactly. Annoying but not impossible. > Probably easier would be to use the plug-in feature that will be part of > GCC-4.5 (or will that be called GCC-5.0??), and create a special Linux > kernel GCC plug-in that just emits the __init literal strings to the > proper section to begin with. This wouldn't be unprecedented, the > Mozilla people already use their own extensions to GCC, and will > probably migrate to GCC plug-ins. We don't want the kernel to get left > behind in the GCC plug-in race. There are no doubt a number of things we could be doing with such extensions. -- http://selenic.com : development and support for Mercurial and Linux