1 |
On Tue, 2 Jun 2015 10:13:54 -0400 |
2 |
Mike Frysinger <vapier@g.o> wrote: |
3 |
|
4 |
> On 01 Jun 2015 10:15, Alexis Ballier wrote: |
5 |
> > On Sun, 31 May 2015 11:17:50 -0400 Mike Frysinger wrote: |
6 |
> > > (3) considering the glibc effort has been stalled for over a year, |
7 |
> > > (1) is something we can help accomplish and make reasonable |
8 |
> > > progress on (4) glibc isn't the only one that implements LFS in a |
9 |
> > > transparent backwards compatible manner |
10 |
> > |
11 |
> > maybe the fact that some file operations are broken with glibc's |
12 |
> > default settings on a somewhat popular fs would be a good argument |
13 |
> > to un-stall it ? |
14 |
> |
15 |
> it isn't that black & white. while for many packages the change |
16 |
> would be harmless, glibc is more conservative than that. it can be |
17 |
> shown that a not uncommon coding style is to use long's everywhere |
18 |
> when dealing with the fs. when sizeof(off_t)==sizeof(long), this |
19 |
> works out. when off_t is suddenly twice as large, then you can get |
20 |
> truncation at best (which is kind of the status quo) and random |
21 |
> corruption at worse (like an API that takes pointers to off_t's but |
22 |
> the caller passed in a long). if you want to join the list upstream |
23 |
> and contribute to the discussion, you're more than welcome to. the |
24 |
> maintainers aren't clueless -- they fully understand the trade-offs |
25 |
> we're discussing here and know that 32bit fs accesses lead to |
26 |
> failures (including stat). |
27 |
> |
28 |
> since sitting on our hands and hoping for the best continues to |
29 |
> accomplish nothing, getting the various upstream packages to opt-in |
30 |
> to LFS themselves can make real progress now. |
31 |
|
32 |
|
33 |
agreed, thanks for the explanation |
34 |
|
35 |
i take it as the main goal of these qa warnings is to fix the above |
36 |
mentioned half broken packages and that pushing lfs flags everywhere is |
37 |
a slow but safe way to achieve it :) |
38 |
|
39 |
it'd be interesting to have data about how many packages can break; |
40 |
my belief is that more than half the c/c++ programs use one way or |
41 |
another fs ops but maybe less than one in a thousand will break; i can |
42 |
understand this is still too much for a libc (even though other |
43 |
'breaking fixes' weren't so controversial in the past), and we'll see |
44 |
after gathering the data your qa warnings will provide |
45 |
|
46 |
> > > which leads me to the next part ... my first suggestion in the |
47 |
> > > tracker is for autotool based projects to use AC_SYS_LARGEFILE |
48 |
> > > because: (a) it supports a variety of systems |
49 |
> > > (b) as new systems come up or bugs are found or whatever, the |
50 |
> > > autoconf macro will improve and people eventually get those fixes |
51 |
> > > for free (c) it does it all transparently for you -- add the |
52 |
> > > macro and you're done (d) it fixes the package for all users, new |
53 |
> > > & old |
54 |
> > > |
55 |
> > > the reason i listed only the raw CPPFLAGS and autoconf macros are |
56 |
> > > because those are the two i'm familiar with. i don't know how |
57 |
> > > other build systems (e.g. cmake) support this (assuming they do |
58 |
> > > at all). if people have other recipes on hand, then it would be |
59 |
> > > great to collect more there. |
60 |
> > |
61 |
> > yes, but that is not what i am discussing: unless i missed |
62 |
> > something, they'll all end up one way or another adding the |
63 |
> > relevant defines; whether it is done with an m4 macro, |
64 |
> > append-lfs-flags, a cmake function or what else is an |
65 |
> > implementation detail of little interest to me trying to understand |
66 |
> > why we don't simply change the default :) |
67 |
> |
68 |
> as i already said, changing the default in *glibc* doesn't help |
69 |
> non-glibc systems. |
70 |
|
71 |
even with ten different libc's, the order of magnitude is still smaller |
72 |
for changing the default :) |
73 |
|
74 |
|
75 |
Alexis. |