Messages in this thread |  | | | Date | Mon, 25 Feb 2008 18:53:58 +0100 | | From | Thomas Petazzoni <> | | Subject | Re: [RFC] [PATCH] x86: Use ELF section to list CPU vendor specific code (Linux Tiny) |
| |
Le Mon, 25 Feb 2008 09:03:12 -0800, Matt Mackall <mpm@selenic.com> a écrit :
> > > This is not quite what Peter and I were thinking of, I think. > > > It's not at all generic. How about a section that simply contains > > > a set of function pointers, a macro to add things to that > > > section, and a function that calls all the pointers in that > > > section. Eg: > > > > > > CALLBACK_SECTION(init_cpu_amd, "cpuvendor.init"); > > > invoke_callback_section("cpuvendor.init"); > > > > > > ..which would give us a generic facility we could use in various > > > places. > > > > I see. Probably doable. How would it work in the LD script file ? > > Your mechanism allows to specify any section name, but AFAIK, the > > sections must be explicitly listed in the kernel LD script in order > > to be included in the final kernel image. Am I missing something ? > > I can't see any way to avoid it, but we can leave it to future > generations to come up with something more clever.
After a quick look at the LD documentation, it seems that wildcards are supported in the input section names of the linker script. So that the CALLBACK_SECTION() macro could add the function pointer to a section named:
gcm. ## name
(gcm standing for "generic callback mechanism") and then, in the linker script, do:
*(gcm.*)
I'm going to try that.
Sincerly,
Thomas -- Thomas Petazzoni, Free Electrons Free Embedded Linux Training Materials on http://free-electrons.com/training (More than 1500 pages!) [unhandled content-type:application/pgp-signature] |  |