Re: [patch 1/7] Immediate Values - Architecture Independent Code

From: Denys Vlasenko
Date: Tue Sep 18 2007 - 16:01:33 EST


On Tuesday 18 September 2007 18:59, Mathieu Desnoyers wrote:
> * Denys Vlasenko (vda.linux@xxxxxxxxxxxxxx) wrote:
> > On Monday 17 September 2007 19:42, Mathieu Desnoyers wrote:
> > > Index: linux-2.6-lttng/include/asm-generic/vmlinux.lds.h
> > > ===================================================================
> > > --- linux-2.6-lttng.orig/include/asm-generic/vmlinux.lds.h 2007-09-17 13:25:06.000000000 -0400
> > > +++ linux-2.6-lttng/include/asm-generic/vmlinux.lds.h 2007-09-17 13:35:50.000000000 -0400
> > > @@ -122,6 +122,13 @@
> > > VMLINUX_SYMBOL(__stop___kcrctab_gpl_future) = .; \
> > > } \
> > > \
> > > + /* Immediate values: pointers */ \
> > > + __immediate : AT(ADDR(__immediate) - LOAD_OFFSET) { \
> > > + VMLINUX_SYMBOL(__start___immediate) = .; \
> > > + *(__immediate) \
> > > + VMLINUX_SYMBOL(__stop___immediate) = .; \
> > > + } \
> > > + \
> >
> > Why do you need an output section for that? IOW: will this work too?
> >
> > .data : ... {
> > ...
> >
> > VMLINUX_SYMBOL(__start___immediate) = .; \
> > *(__immediate) \
> > VMLINUX_SYMBOL(__stop___immediate) = .; \
> > ...
> > }
> >
>
> This last one could cause alignment problems. We either have to use the
> proper ALIGN() before the section, or let AT(ADDR(__immediate) -
> LOAD_OFFSET) take care of it. I prefer the latter.

This adds yet another output section in vmlinux, and there is
no tools which need that. We already have 30+ sections there while we need ~20.

I am trying to fix the mess. Please don't add to it.

Re alignment: (1) do you really realy REALLY need it? Last I checked,
i386 was handling unaligned accesses just fine; and
(2) this works:

. = ALIGN(4)
VMLINUX_SYMBOL(__start___immediate) = .; \
*(__immediate) \
VMLINUX_SYMBOL(__stop___immediate) = .; \


--
vda
-
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/