Re: [git pull] x86 updates

From: Sam Ravnborg
Date: Tue Feb 05 2008 - 16:17:20 EST


On Tue, Feb 05, 2008 at 10:05:08PM +0100, Ingo Molnar wrote:
>
> * Sam Ravnborg <sam@xxxxxxxxxxxx> wrote:
>
> > On Tue, Feb 05, 2008 at 10:47:07AM -0800, Linus Torvalds wrote:
> > >
> > >
> > > Ingo, Thomas,
> > > should we not do this?
> > >
> > > Otherwise, it seems we generate a section that isn't allocated?
> > >
> > > I think toolchain should add the right flags automatically for
> > > sections that start with ".[ro]data" and ".text", but not for the
> > > kernel-specific ".init.*" sections.
> >
> > With a bit of help from the bin-utils people (Alan Modra) I recently
> > discovered that the linker generate sections with different names when
> > the flags differs, so fogetting "aw" casues the linekr to generate a
> > section named .init.data.1 (or some other number). But I nevet got to
> > investigate if ld does something magically with these autogenerated
> > section names. But I added a check in modpost and it should warn about
> > the code below.
> >
> > I would prefer the use of
> > __CPUINITDATA
> > __FINITDATA
> >
> > as defined in linux/init.h but otherwise - yes it should be fixed.
> > With the use of __CPUINITDATA we can kill the ifdef too.
>
> ok, i've queued up your patch.
>
> btw., __CPUINITDATA/__FINITDATA is nice, except that the small patch
> below is needed to make the fun complete ;-)
>
> or, we could use __FINIT all the time.

I have no strong preference - I do not like the naming of
__FINIT but maybe thats just me and I have no better name right now.

>
> btw., what's the practical consequence of getting these section flags
> wrong - for example writable data can end up in executable section
> accidentally and be marked readonly by RODATA? Or can anything more
> serious happen? (they cannot get into any of the discarded sections, we
> filter for them explicitly in the linker scripts)
I have not investigated this. My attention were due to section mismatch
warnings pointing to section names I could not find in the code.
When I did an objdump of vmlinux the funny section names were gone
so I expected ld had recognized them and merged them somehow - but I
did not look closer as my focus was to get rid of them anyway.

I also did a quick skimming of info ld - but no luck.

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/