On Jun 16, 2005, at 10:15 PM, Kevin Horton wrote:
This certainly needs to be better documented. Here is the story: We would prefer everybody to run fink with gcc_select set to its most current value (which is 3.3 for 10.3 and 4.0 for 10.4). This way, when there are bugs, we don't have to check on which compiler the user was using. Also, having people do this helps achieve one of fink's goals, which is to have packages build the same no matter who builds them. However, the only time we actually try to enforce this is when the ever-changing g++ ABI is involved, because that's one time we are sure that having the wrong compiler selected will lead to disaster. We indicate that the g++ compiler is being used by means of the GCC field, which helps developers keep track of *which* version of g++ is required. The way this works in practice is that if the GCC field appears at all within a fink package, then fink insists that the gcc_select is set to its most current value. Package maintainers are expected to handle cases in which g++ should be different than that by doing things to their package (perhaps with the SetCXX flag). What makes this a bit confusing is that in the 10.4-transitional tree, we want you to set gcc_select to 4.0 but also, behind the scenes, fink is guaranteeing that g++ will be version 3.3 and not version 4.0. This lets us use all the old "GCC: 3.3" packages during a transitional period, while we get ready for the full conversion to g++-4.0. Hope this helps. -- Dave |