Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Dying on some CFLAGS instead of filtering them.
Date: Mon, 10 Jul 2006 12:32:31
Message-Id: e8th0a$d4n$1@sea.gmane.org
In Reply to: [gentoo-dev] Dying on some CFLAGS instead of filtering them. by Denis Dupeyron
1 "Denis Dupeyron" <calchan@g.o> posted
2 7c612fc60607091424s467c27e4n665fc3dd4ee2116a@××××××××××.com, excerpted
3 below, on Sun, 09 Jul 2006 23:24:24 +0200:
4
5 > In bug #139412, I ask Paul de Vriese why he thinks python should die on
6 > --fast-math instead of just filtering it. Here's his answer :
7 >
8 > "Denis, quite simple. -ffast-math is broken and short-sighted for a
9 > global flag. Filtering gives the shortsighted message that it works
10 > globally, while it is not suited for any package not specifically tested
11 > for it. As it breaks python, dieing makes people understand that it does
12 > not work on python. It is better than the alternative of not looking for
13 > it at all."
14
15 As a user active on the lists/groups (and the same would go for forums),
16 and opposing both Ryan Hill's and Richard Fish's opinions, I absolutely
17 agree with Paul on this!
18
19 My reason for doing so is that I've seen users say they use it with no ill
20 effects they can see on their system. Of course, we know that's because
21 where it has caused problems enough to bug, it has been filtered, but
22 obviously the users don't know that, or are *relying* on it, *not* a good
23 idea IMO.
24
25 If ebuilds start dying on it, those users will soon see how many things it
26 /does/ break, and should quickly change their minds.
27
28 > This, for me, triggers 3 questions that are gentoo-dev@ material :
29 >
30 > 1) Should all ebuilds that currently filter --fast-math die on its
31 > presence instead of filtering it ?
32
33 I'd say yes -- provided there's documentation (say a bug where removing it
34 cured the bug) that it's an actual problem with that package. If a
35 maintainer has put the filterflag in simply peremptorily, as I'd argue
36 this particular flag might warrant, that's a different question. IMO,
37 that would be counterproductive, since a user simply removing the die,
38 redigesting, and continuing, would have likely convinced himself of the
39 safety of that flag.
40
41 > 2) If yes, are there any other flags that ebuilds should die on ?
42
43 I'd say very few, keeping in mind portage's non-interactive philosophy (as
44 Ryan mentioned). Very few are /that/ profoundly stupid, and require
45 someone hit the practitioner upside the head with a cluebat.
46
47 > 3) Suppose that -ftracer, for example, is one of those, and knowing that
48 > enabling -fprofile-use enables -ftracer, shouldn't ebuilds also die on
49 > use of -fprofile-use ? It's only an example, this situation will exist
50 > for other pairs of flags.
51
52 Given the rarity of a flag as extreme as -ffast-math, I'd say that
53 shouldn't normally be the case. Do note that -ffast-math is itself a
54 meta-flag, enabling several others. I'd /not/ recommend dying on the
55 individual flags, thereby giving those that would use -ffast-math /that/
56 way to do so if they /insist/ on it -- and have read the documentation
57 well enough to know about it.
58
59 > The hidden question behind these three is : shouldn't we have a
60 > "something" that enables us to safely handle this kind of situations ?
61 > Like some kind of system- and/or architecture-wide flag mask that could
62 > be overriden by the ebuild and/or the user (at his own risk) ? This
63 > could potentialy reduce the number of bugs that poor old bugzie has to
64 > cope with, and simplify ebuild writing and maintenance.
65
66 I'd favor a USE_EXPAND type flag that could take several "I'm broken so
67 don't file bugs" type strings, which could be individually tested for in
68 the various ebuilds (and/or profiles), while at the same time grouping
69 them automatically for purposes of emerge --info and therefore bug
70 reports.
71
72 amd64 tests for such "IM_BROKEN" type vars in their development profiles
73 (would be 2006.1 for example ATM), and I believe gcc tested for (and may
74 still) a similar var during part of the 4.0 process, where users agreed
75 not to file bugs unless they came with patches. Having these all in the
76 same place, perhaps as individual values of a
77 PORTAGE_I_DELIBERATELY_CHOOSE_TO_BE_BROKEN var or the like, where emerge
78 --info would report it yet ebuilds/profiles could test for the presence of
79 individual strings, would be a very good thing IMO. A function or two
80 could then be added to eutils to aid in standardizing the testing for such
81 strings and encourage use of the standard grouping.
82
83 If that or a similar solution is chosen, then one such string could be
84 created for -ffast-math. Once that was done, a test for that string could
85 be set in profiles/base or the like, setting up the test for -ffast-math
86 system-wide, whereupon it could be eliminated from the individual ebuilds.
87 That would also provide a suitable single-shot environment based solution
88 for the user, as well, in the case they wanted to override the system test
89 for an individual ebuild.
90
91 --
92 Duncan - List replies preferred. No HTML msgs.
93 "Every nonfree program has a lord, a master --
94 and if you use the program, he is your master." Richard Stallman
95
96 --
97 gentoo-dev@g.o mailing list