Re: [PATCH v2] perf tools: Work around lack of sched_getcpu in glibc < 2.6.

Vinson Lee
2015-03-19T21:12:12Z

On Thu, Mar 19, 2015 at 6:14 AM, Arnaldo Carvalho de Melo
<acme@kernel.org> wrote:
> Em Thu, Mar 19, 2015 at 11:13:04AM +0100, Jiri Olsa escreveu:
>> On Wed, Mar 18, 2015 at 04:11:52PM -0700, Vinson Lee wrote:
>> > This patch fixes this build error with glibc < 2.6.
>
>> > +#ifdef __GLIBC_PREREQ
>> > +#if !__GLIBC_PREREQ(2, 6)
>> > +static int sched_getcpu(void)
>> > +{
>> > + errno = ENOSYS;
>> > + return -1;
>> > +}
>> > +#endif
>> > +#endif
>
>> you could mark it as __weak and get rid of those ifdef's
>> like we do for strlcpy in utilpath.c
>
> Agreed.
>
> - Arnaldo

I tried this approach but am having trouble getting a patch to compile
with both older glibc and recent glibc.

With older glibc I will get a "no previous prototype" compilation
error. I can fix this error by adding a prototype but this results in
a "redundant redeclaration" error with newer glibc.