Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#55833 closed defect (wontfix)

py27-pyqt4 fails to configure on Snow Leopard

Reported by: fvaccari Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version:
Keywords: snowleopard Cc:
Port: py27-pyqt4

Description

The error is

:info:configure make -f qtdirs.mk
:info:configure /usr/bin/g++-4.2 -c -pipe -O2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.6 -Wall -W -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_SHARED -I/opt/local/libexec/qt4/share/mkspecs/macx-g++ -I. -I. -I/opt/local/libexec/qt4/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/libexec/qt4/include -F/opt/local/libexec/qt4/Library/Frameworks -F/opt/local/libexec/qt4/lib -o qtdirs.o qtdirs.cpp
:info:configure make: /usr/bin/g++-4.2: No such file or directory
:info:configure make: *** [qtdirs.o] Error 1

while I see that I have /usr/bin/g++ instead in /usr/bin:

/usr/bin/g++ --version
i686-apple-darwin10-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Attachments (1)

py27-pyqt4.main.log (50.9 KB) - added by fvaccari 7 years ago.
the error log

Download all attachments as: .zip

Change History (6)

Changed 7 years ago by fvaccari

Attachment: py27-pyqt4.main.log added

the error log

comment:1 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: michaelld@… removed
Keywords: snowleopard added; py27-pyqt4 Snow Leopard g++ removed
Owner: set to michaelld
Status: newassigned

Similar to another ticket you've filed, you're probably encountering this problem because you've received a binary of one of py27-pyqt4's dependencies (I would suspect qt4-mac) which was built on our Snow Leopard build server which is using Xcode 3.2.6 and therefore uses /usr/bin/g++-4.2, and that dependency bakes this compiler choice into the files that it installs, and dependencies use that compiler choice instead of the one MacPorts tells them to use at the time. But you have Xcode 4.2 installed, which does not provide /usr/bin/g++-4.2 anymore. It is wrong for build systems to bake compiler values into themselves for use by dependencies, but it is difficult to explain this problem to software developers and convince them to stop doing so.

comment:2 Changed 7 years ago by fvaccari

No idea how different the two compilers are, I did a very ignorant test doing

sudo ln -s /usr/bin/llvm-g++-4.2 /usr/bin/g++-4.2

before installing. Configuration step was ok and it is now building... Will take its time, I'll update later with the result.

comment:3 Changed 7 years ago by fvaccari

Installation successful. Don't know how safe it is, but it worked...

comment:4 Changed 7 years ago by michaelld (Michael Dickens)

Resolution: wontfix
Status: assignedclosed

Thanks for the engaged reporting. I'm going to close this ticket.

comment:5 in reply to:  1 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign:

that dependency bakes this compiler choice into the files that it installs

The dependency is actually python27. I've filed a bug report for this: #56458.

Replying to fvaccari:

No idea how different the two compilers are, I did a very ignorant test doing

sudo ln -s /usr/bin/llvm-g++-4.2 /usr/bin/g++-4.2

before installing. Configuration step was ok and it is now building... Will take its time, I'll update later with the result.

That is not a good idea. Although llvm-gcc-4.2 is meant to be very compatible with gcc-4.2, in some cases it isn't. For example, python33 and later can build with gcc-4.2 but not with llvm-gcc-4.2.

Replying to michaelld:

Thanks for the engaged reporting. I'm going to close this ticket.

Ports should be UsingTheRightCompiler. This report shows that py27-pyqt4 isn't. The problem might be in the python 1.0 portgroup, in which case the problem should be fixed there so that all python modules can benefit.

Note: See TracTickets for help on using tickets.