> On Dec 18, 2015, at 10:43 AM, Jan Beulich <jbeul...@suse.com> wrote: > >>>> On 18.12.15 at 17:00, <jonathan.creekm...@gmail.com> wrote: >> Jan Beulich writes: >>>>>> On 17.12.15 at 21:59, <jonathan.creekm...@gmail.com> wrote: >>>> +extern const struct scheduler *__schedulers_start[], *__schedulers_end[]; >>>> +#define NUM_SCHEDULERS >> (((uintptr_t)__schedulers_end-(uintptr_t)__schedulers_start) \ >>>> + / sizeof(struct scheduler *)) >>>> +static const struct scheduler **schedulers = __schedulers_start; >>> >>> I really wonder whether we should continue follow this route of >>> __start_ / __stop_ symbols, instead of leveraging gas+ld's >>> .startof. and .sizeof. operators. >> >> So, I would love to explore using those operators if you can give me >> some link to documentation for using them. I have yet to be able to find >> a construct for LD and GCC that works correctly for generating >> equivalent symbols. > > With binutils docs missing any notion of these, I can only refer > you to binutils sources, I'm afraid. >
Well, I would prefer not to delve into undocumented behavior in what should be a fairly straightforward patch set, so I plan on keeping the use of the __start and __stop symbols. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel