1 |
On Fri, 7 Jul 2006 01:39:05 +0200 Diego 'Flameeyes' Pettenò |
2 |
<flameeyes@g.o> wrote: |
3 |
| > * it's relying upon non-guaranteed GCC internals. |
4 |
| |
5 |
| Not that internals, that part is guaranteed to work, or we cannot |
6 |
| consider guaranteed __PIC__ either, and we rely on that heavily. |
7 |
|
8 |
With __PIC__ there's not much choice. Here there is. |
9 |
|
10 |
| > * it's relying upon GCC knowing the state of the underlying system, |
11 |
| > which fails at least for VIS. |
12 |
| |
13 |
| Define "state of underlying system" because that is not a complete |
14 |
| definition. This is not a state machine we're talking about, and |
15 |
| we're not in science class. |
16 |
|
17 |
In the VIS case, there are plenty of situations where GCC will think |
18 |
that the underlying system doesn't do VIS (because that's the only way |
19 |
of stopping it from producing broken code), but where hand-crafted VIS |
20 |
code is fine and desirable. |
21 |
|
22 |
| > * it's forcing users to use insane CFLAGS hacks, which we've spent |
23 |
| > years telling them not to do and for good reason, to get back to |
24 |
| > previous behaviour. |
25 |
| |
26 |
| No, we never spent years telling them not to use your so-called |
27 |
| "CFLAGS hacks" that are rather a proper usage of what the compiler |
28 |
| gives you. |
29 |
|
30 |
Wrong. We did. |
31 |
|
32 |
| > * a large part of the justification is based upon a |
33 |
| > misunderstanding of how cross compilation should be done. The |
34 |
| > correct way around this problem was already posted to the thread by |
35 |
| > solar. |
36 |
| |
37 |
| No I'm not misunderstand how cross compilation should be done with a |
38 |
| package manager. I'm saying that this will anyway give a hand to |
39 |
| that. What I was referring to mostly comes down to the fact that, if |
40 |
| I want to build a bin package for amd64 nocona arch, right now I am |
41 |
| not guaranteed that setting CFLAGS to -march=nocona will produce the |
42 |
| right result. |
43 |
|
44 |
Well no, if you're cross compiling you should be using an entirely |
45 |
separate configuration setup. |
46 |
|
47 |
| > * it's removing transparency and simplicity and replacing them with |
48 |
| > obfuscation and complexity. |
49 |
| |
50 |
| It's removing green and yellow and adding black and white. |
51 |
| Your words are useless unless you explain them. |
52 |
|
53 |
Basic software engineering principles. Or basic English, if you prefer. |
54 |
|
55 |
Transparency: what is happening is obvious. That is to say, the CFLAGS |
56 |
variable affects flags that are passed when compiling C, and the |
57 |
USE_THESE_FANCY_X86_EXTRAS variable affects the fancy x86 extras that |
58 |
are used in cases where there are optional fancy x86 extras. |
59 |
|
60 |
Simplicity: what is happening is happening without unnecessary extras |
61 |
or complication. |
62 |
|
63 |
Obfuscation: what is happening is not obvious, and is being hidden. For |
64 |
example, the CFLAGS variable doesn't actually just alter CFLAGS, it |
65 |
also triggers some unrelated code that turns on other unrelated |
66 |
features. It's like having a function called display_person(person) |
67 |
that as a side effect also deducts five percent of that person's salary. |
68 |
|
69 |
Complexity: what is happening takes many steps and relies upon many |
70 |
different systems, assumptions or code paths. Like, say, a scary hack |
71 |
of a function where previously there was just a variable. |
72 |
|
73 |
| > * it's taking a variable with a well defined purpose and abusing it |
74 |
| > for something unrelated. |
75 |
| |
76 |
| No it is not. Want to get the news? People at binutils were |
77 |
| discussing about adding -march support to gas, so that it would |
78 |
| refuse to build asm sources that contains instructions not supported |
79 |
| by the -march value passed. So using -march=i586 with mmx useflag |
80 |
| wouldn't work anymore. |
81 |
|
82 |
CFLAGS != ASFLAGS. |
83 |
|
84 |
| > Will that lot do or would you like some more? |
85 |
| |
86 |
| You have the innate ability to find more arguments when the ones you |
87 |
| brought on are not accepted. |
88 |
|
89 |
Well yes. There're all sorts of things wrong with this proposal, and |
90 |
some of them are more obvious than others. Still, it makes sense to |
91 |
start with the easy ones and see whether they'll suffice before moving |
92 |
onto more complex objections... |
93 |
|
94 |
| I find it a proper usage of $CFLAGS variable |
95 |
|
96 |
Ouch. |
97 |
|
98 |
-- |
99 |
Ciaran McCreesh |
100 |
Mail : ciaran dot mccreesh at blueyonder.co.uk |
101 |
|
102 |
|
103 |
-- |
104 |
gentoo-dev@g.o mailing list |