checking for gcc

Ryan Schmidt ryandesign at macports.org
Sun Apr 26 13:27:02 PDT 2009


On Apr 26, 2009, at 09:31, Thomas De Contes wrote:

> Le 21 mars 09 à 00:52, Ryan Schmidt a écrit :
>
>> On Mar 20, 2009, at 17:53, Thomas De Contes wrote:
>>
>>> Le 16 mars 09 à 00:05, Ryan Schmidt a écrit :
>>>
>>>> On Mar 15, 2009, at 17:36, Thomas De Contes wrote:
>>>>
>>>>> i updade MacPorts, and at the step "port upgrade outdated" it  
>>>>> always sets
>>>>> checking for gcc... /usr/bin/gcc-4.0
>>>>>
>>>>> whereas /usr/bin/gcc-4.0 does not exist and /usr/bin/gcc points  
>>>>> on gcc-3.3
>>>>>
>>>>>
>>>>> what is the problem ?
>>>>
>>>> /usr/bin/gcc-4.0 should exist, and /usr/bin/gcc should point to  
>>>> it, on Tiger and later.
>>>
>>> ok
>>> if /usr/bin/gcc-4.0 exists but /usr/bin/gcc does not point to it,  
>>> it's not right ?
>>
>> If /usr/bin/gcc-4.0 exists but /usr/bin/gcc points to gcc-3.3 then  
>> you have most likely used the gcc_select program to select gcc 3.3.
>
> i think it can happen if i install devtools + gcc-3.3, and then i  
> add gcc-4.0
> to avoid any pb of this kind, i reinstalled devtools + gcc-4.0 at  
> the same time

I didn't think it was possible to install Xcode without gcc 4.0.


>> This should not affect the majority of ports since MacPorts tells  
>> ports to use /usr/bin/gcc-4.0 by default on Tiger and later.
>
> ok :-)
>
>> Specific ports may override this as needed. For example some very  
>> old software must compile with gcc-3.3 because gcc-4.0 is too new;  
>> in this case, those ports indicate this requirement and MacPorts  
>> allows them to use gcc-3.3 instead.
>
> do you think i should keep gcc-3.3 ?
> could some recent software depend on some very old software ?

I forget what kind of computer you have. As far as I know the gcc 3.3  
that comes with Xcode can only build PowerPC programs. Either that,  
or it cannot run on Intel Macs at all. Either way, it won't be useful  
for building dependencies on Intel Macs.


>>>> What OS version do you have? What version of Xcode?
>>>
>>> checking Mac OS X version... 10.4.11
>>> checking Xcode version... 2.4.1
>
>
>
>>> btw,
>>>
>>> why does it work fine to build MacPorts itself, with gcc 3.3, and  
>>> not to build software ?
>>
>> Port authors have limited resources with which to test ports.  
>> Usually people only have a single Mac, running either Leopard or  
>> Tiger, with either an Intel or PowerPC processor. This means most  
>> port authors are only testing on 1/4 of the supported systems.  
>> Problems can crop up on the remaining 3/4 of the supported systems  
>> the author did not test on.
>>
>> We do not want to increase the testing burden even further by  
>> allowing users to compile ports with a different compiler than the  
>> one the port author tested with. For this reason, MacPorts  
>> instructs ports to ignore what the user has gcc_selected'ed and  
>> instead to use a specific compiler on specific OS versions (3.3 on  
>> Panther, 4.0 on Tiger and Leopard). Individual ports can override  
>> this if it's necessary for those ports, but users are not supposed  
>> to override this.
>
> i fully (i think) understand this :-)
>
> and i see 2 options :
>
> 1
> don't constraint anyone to use /usr/bin/gcc-4.0 and nothing else
> of course, you support only /usr/bin/gcc-4.0 and nothing else, and  
> port authors don't have any more test to make
> just, you don't restrict it "physically" :-)
> and you could write a big big warning at time of building MacPorts  
> itself
>
> 2
> once i've understood "the mechanism", i was surprised that building  
> MacPorts itself worked fine, without even a warning !
> i would expect that MacPorts refuse to build, saying it need /usr/ 
> bin/gcc-4.0 (even if it doesn't need it for itself, regarding to  
> the default settings for ports)
>
>
> the 1 is the best from my point of view (it's the most  
> "adaptable"), but there is probably a lot of changes to do, for not  
> enough advantages
> but i think that the 2 is realist, what do you think about it ? :-)

I do not want (1). I do not want users to change the compiler. I can  
see no reason to do so. It can only cause problems -- problems which  
some users will inevitably write to the list for help with, thus  
increasing our burden to help people and reducing the time we have  
available to help with other problems.

Regarding (2), MacPorts base does not complain about gcc 3.3 simply  
because nobody has added code to do so. Actually, it should not  
complain;  should just use /usr/bin/gcc-4.0 (on Tiger and Leopard)  
regardless of what has been gcc_select'ed, but again nobody has yet  
added code to do so. I do not know if there is any real problem with  
compiling MacPorts base with gcc 3.3 on Tiger or Leopard. Certainly,  
MacPorts base has to be compiled with gcc 3.3 on Panther and it works  
there.


>>> why does it say :
>>> checking for gcc... /usr/bin/gcc-4.0
>>> checking for C compiler default output... configure: error: C  
>>> compiler cannot create executables
>>> rather than sth like
>>> checking for gcc... /usr/bin/gcc-4.0 not found
>>> ?
>>
>> Here you are asking about the configure script of the port you  
>> were trying to install. For questions about why that configure  
>> script does what it does, you'll have to ask the authors of that  
>> software
>
> ok
> well, if building MacPorts itself gives an explicit error enough,  
> not worry about building of ports :-)

I don't quite understand what you say here. Building MacPorts itself  
is a separate issue from building ports using MacPorts.



More information about the macports-users mailing list