[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56738E29.3070605@zytor.com>
Date: Thu, 17 Dec 2015 20:40:09 -0800
From: "H. Peter Anvin" <hpa@...or.com>
To: "Luis R. Rodriguez" <mcgrof@...e.com>
Cc: "Luis R. Rodriguez" <mcgrof@...not-panic.com>, tglx@...utronix.de,
mingo@...hat.com, bp@...en8.de, konrad.wilk@...cle.com,
rusty@...tcorp.com.au, luto@...capital.net,
boris.ostrovsky@...cle.com, mcb30@...e.org, jgross@...e.com,
JBeulich@...e.com, joro@...tes.org, ryabinin.a.a@...il.com,
andreyknvl@...gle.com, long.wanglong@...wei.com,
qiuxishi@...wei.com, aryabinin@...tuozzo.com,
mchehab@....samsung.com, valentinrothberg@...il.com,
peter.senna@...il.com, x86@...nel.org,
Michal Marek <mmarek@...e.com>, xen-devel@...ts.xensource.com,
Michael Matz <matz@...e.de>, linux-kernel@...r.kernel.org
Subject: Re: [RFC v1 0/8] x86/init: Linux linker tables
On 12/17/15 20:25, H. Peter Anvin wrote:
>
> /* DECLARE_LINKTABLE_RO */
> extern const struct foo tablename[], tablename__end[];
>
> /* DEFINE_LINKTABLE_RO */
> DECLARE_LINKTABLE_RO(struct foo, tablename);
>
> const struct
> foo__attribute__((used,section(".rodata.tbl.tablename.0"))) tablename[0];
>
> const struct
> foo__attribute__((used,section(".rodata.tbl.tablename.999")))
> tablename__end[0];
>
> /* LINKTABLE_RO */
> static const __typeof__(tablename)
> __attribute__((used,section(".rodata.tbl.tablename.50")))
> __tbl_tablename_12345
>
> /* LINKTABLE_SIZE */
> ((tablename__end) - (tablename))
>
> ... and so on for all the possible sections where we may want tables.
>
Come to think of it, we could even eliminate the need for a DEFINE
entirely if we made the start and end symbols static. However, this
would generate an awful lot of identical-but-local symbols which
probably would make the linker slower and definitely would bloat the
debug data.
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists