This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch: Convert linux-generic to use <bits/fcntl-linux.h>


On 10/24/2012 09:31 PM, Chris Metcalf wrote:
On 10/24/2012 3:05 PM, Andreas Jaeger wrote:
Here's a patch for linux-generic to use <bits/fcntl-linux.h>.
The patch is also part of my git branch aj/shared-linux-fcntl.

Does it make sense to move the O_LARGEFILE definition to bits/fcntl-linux.h instead, i.e. if __O_LARGEFILE is not defined, provide a definition that's conditional on _WORDSIZE? That seems like a more natural default, particularly as more platforms will be 64-bit with time and thus want zero for O_LARGEFILE. <bits/wordsize.h> could either be unconditionally included, or just included ifndef __O_LARGEFILE.

We could have: #ifdef __USE_LARGEFILE64 # if __WORDSIZE == 64 # define O_LARGEFILE 0 # else # define O_LARGEFILE __O_LARGEFILE # endif #endif

but this needs we need to include <bits/wordsize.h> in <bits/fcntl-linux.h> which is not always the case today.

Especially, there's no double inclusion protection for <bits/wordsize.h> so if <bits/fcntl.h> already includes <bits/wordsize.h>, it will give warnings about redefinitions.

How can we solve that? What do others thing?

Likewise, it might make sense to take the linux-generic version of struct
flock/flock64 into bits/fcntl-linux.h, with an "#ifndef __struct_flock" or
equivalent so that platforms with variant definitions of those structures
can provide them.

Yes, struct flock cleanup is another topic which I did not tackle yet on purpose. If you like to give it a go, you're welcome ;)


This would leave us in the natural-seeming position of having linux-generic
use the generic Linux version of fcntl.h with no customizations :-)

;)


It's already quite short after my patch,
Andreas
--
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
  SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]