1 |
On 01 Jun 2015 10:15, Alexis Ballier wrote: |
2 |
> On Sun, 31 May 2015 11:17:50 -0400 Mike Frysinger wrote: |
3 |
> > (3) considering the glibc effort has been stalled for over a year, |
4 |
> > (1) is something we can help accomplish and make reasonable progress |
5 |
> > on (4) glibc isn't the only one that implements LFS in a transparent |
6 |
> > backwards compatible manner |
7 |
> |
8 |
> maybe the fact that some file operations are broken with glibc's |
9 |
> default settings on a somewhat popular fs would be a good argument to |
10 |
> un-stall it ? |
11 |
|
12 |
it isn't that black & white. while for many packages the change would be |
13 |
harmless, glibc is more conservative than that. it can be shown that a not |
14 |
uncommon coding style is to use long's everywhere when dealing with the fs. |
15 |
when sizeof(off_t)==sizeof(long), this works out. when off_t is suddenly |
16 |
twice as large, then you can get truncation at best (which is kind of the |
17 |
status quo) and random corruption at worse (like an API that takes pointers |
18 |
to off_t's but the caller passed in a long). if you want to join the list |
19 |
upstream and contribute to the discussion, you're more than welcome to. the |
20 |
maintainers aren't clueless -- they fully understand the trade-offs we're |
21 |
discussing here and know that 32bit fs accesses lead to failures (including |
22 |
stat). |
23 |
|
24 |
since sitting on our hands and hoping for the best continues to accomplish |
25 |
nothing, getting the various upstream packages to opt-in to LFS themselves |
26 |
can make real progress now. |
27 |
|
28 |
> > which leads me to the next part ... my first suggestion in the |
29 |
> > tracker is for autotool based projects to use AC_SYS_LARGEFILE |
30 |
> > because: (a) it supports a variety of systems |
31 |
> > (b) as new systems come up or bugs are found or whatever, the |
32 |
> > autoconf macro will improve and people eventually get those fixes for |
33 |
> > free (c) it does it all transparently for you -- add the macro and |
34 |
> > you're done (d) it fixes the package for all users, new & old |
35 |
> > |
36 |
> > the reason i listed only the raw CPPFLAGS and autoconf macros are |
37 |
> > because those are the two i'm familiar with. i don't know how other |
38 |
> > build systems (e.g. cmake) support this (assuming they do at all). |
39 |
> > if people have other recipes on hand, then it would be great to |
40 |
> > collect more there. |
41 |
> |
42 |
> yes, but that is not what i am discussing: unless i missed something, |
43 |
> they'll all end up one way or another adding the relevant defines; |
44 |
> whether it is done with an m4 macro, append-lfs-flags, a cmake function |
45 |
> or what else is an implementation detail of little interest to me trying |
46 |
> to understand why we don't simply change the default :) |
47 |
|
48 |
as i already said, changing the default in *glibc* doesn't help non-glibc |
49 |
systems. using portable build systems (like autotools) lets you easily |
50 |
enable features like this and the build system knows the various platform |
51 |
details. if you decided to roll your own build system or use one that |
52 |
isn't that portable, well that's kind of your fault isn't it ? if you've |
53 |
opted to only support a subset of systems, then that means adding these |
54 |
CPPFLAGS yourself. |
55 |
-mike |