Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I compiled GCC 4.4.3 and installed it in /usr/local/bin, but whenever I install a port via MacPorts 1.8.2 the verbose output says MacPorts is using /usr/bin/gcc-4.2:

checking for gcc... /usr/bin/gcc-4.2

How do I make MacPorts find my own GCC 4.4.3? Here is my existing path:

/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

I am running Mac OS X 10.6.2 Snow Leopard.

share|improve this question
add comment

3 Answers

up vote 2 down vote accepted

First answer: Don't! In my experience, GCC 4.4.3 will not work properly on Snow Leopard. It will cause problems with zero-length strings.

Second answer: edit your symbolic links in /usr/bin to refer to the 4.4 stuff. Here's a script I wrote to do so:

rm /usr/bin/c++ 
ln -s /usr/bin/c++-${1} /usr/bin/c++
rm /usr/bin/cc
ln -s /usr/bin/cc-${1} /usr/bin/cc
rm /usr/bin/cpp
ln -s /usr/bin/cpp-${1} /usr/bin/cpp
rm /usr/bin/g++
ln -s /usr/bin/g++-${1} /usr/bin/g++
rm /usr/bin/gcc
ln -s /usr/bin/gcc-${1} /usr/bin/gcc
rm /usr/bin/gcov
ln -s /usr/bin/gcov-${1} /usr/bin/gcov

I called it chgCver, so to change my compiler to 4.4, I'd type chgCver 4.4. Of course, before you run this, you'll also need to make sure that, for example, c++-4.4 points to the correct place (probably /opt/local/bin/gcc-mp-4.4), etc. I can give you more specifics, if you're inclined to ignore my first and third answers.

Third answer: Don't! (See first answer.)

share|improve this answer
    
Didn't know GCC 4.4.3 had this problem, thanks! –  hpy Mar 28 '10 at 19:10
1  
No need for this, just use gcc_select. –  Adam Rosenfield Dec 27 '10 at 14:04
2  
As we're talking about using MacPorts there's the "gcc_select" port that will do the same job and a little more. –  anddam Mar 26 '11 at 6:00
add comment

MacPorts is using Apple supplied compilers wherever possible as they are highly patched for the platform. For example, they allow to build for multiple architectures by specifying -arch flags which is not possible with FSF gcc.

If you change symlinks in /usr/bin/cc, MacPorts will still try to use flags which are only understood by the Apple version. This could make it impossible to compile anything using MacPorts.

Just trust the MacPorts developers that using Apple provided compilers is the best way.

share|improve this answer
add comment

Set configure.compiler variable in Portfile accordingly:

configure.compiler    macports-gcc-4.3

or append configure.compiler=macports-gcc-4.3 to your command.

cf. this wiki page.

share|improve this answer
    
Is this still known to cause problems like in the other answer? Thanks! –  hpy Dec 11 '10 at 6:08
1  
I wasn't able to determine what the problems were, first Google result for "gcc 4.4.3 zero lenght string problem" is this very same superuser question. –  anddam Mar 26 '11 at 6:03
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.