[PATCH] fcntl.h: add hack to kill fcntl64 on x86_64
Rob Landley
rob at landley.net
Mon Apr 26 05:24:11 UTC 2010
On Sunday 25 April 2010 13:59:15 Roman I Khimov wrote:
> В сообщении от Воскресенье 25 апреля 2010 21:34:14 автор Austin Foxley
>
> написал:
> > On 04/25/2010 06:35 AM, roman at khimov.ru wrote:
> > > In previous uclibc versions we've had fcntl64 (nonexisting on x86_64)
> > > as an alias to fcntl. Recent NPTL changes removed that alias, although
> > > fcntl64 is still present in headers when using _GNU_SOURCE or
> > > _FILE_OFFSET_BITS=64.
> > >
> > > It confuses applications and leads to linkage failures.
> > >
> > > The patch proposed tries to deal with it in headers (thus not
> > > reintroducing fcntl64 alias), although there might be some better way.
> >
> > What about other 64bit archs?
>
> At quick glance most of them have no fcntl64, although looks like sh64
> does.
>
> > And you're right, we probably want a different solution to this.
>
> Sure, this is mostly to raise the issue and solve it at least internally.
> It's been a long time since I've touched uclibc code, so I'm very unsure
> about how to fix it properly. Most probably still in headers (re-adding
> fcntl64 alias seems ugly to me) though.
According to:
gcc -dM -E - < /dev/null | less
There's a couple builtin #defines you can check:
#define __SIZEOF_LONG__ 8
#define __SIZEOF_POINTER__ 8
So maybe #if __SIZEOF_LONG__ > 4 would work? Dunno...
Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds
More information about the uClibc
mailing list