Opened 14 years ago

Closed 14 years ago

#24191 closed defect (fixed)

Coin: Coin.pc and coin-default.cfg contain -arch flags

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: cssdev
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc:
Port: Coin

Description

$ port installed Coin
The following ports are currently installed:
  Coin @3.1.2_0+darwin+universal (active)
$ port contents Coin | sed 1d | xargs grep -- -arch
/opt/local/lib/pkgconfig/Coin.pc:Libs: -L${libdir} -L${exec_prefix}/lib -arch x86_64 -arch i386 -L/usr/X11R6/lib -lCoin -lGL -lXext -lSM -lICE -lX11 -lpthread
/opt/local/lib/pkgconfig/Coin.pc:Cflags: -I${includedir} -O2 -arch x86_64 -arch i386  -I${prefix}/include -I${prefix}/include/Inventor/annex -D_REENTRANT -I/usr/X11R6/include
/opt/local/share/Coin/conf/coin-default.cfg:cflags="-O2 -arch x86_64 -arch i386"
/opt/local/share/Coin/conf/coin-default.cfg:cxxflags="-O2 -arch x86_64 -arch i386"
/opt/local/share/Coin/conf/coin-default.cfg:ldflags="-L${exec_prefix}/lib -arch x86_64 -arch i386 -L/usr/X11R6/lib"

These files should not contain -arch flags because it will cause other software trying to use Coin to build with those archs, even if different archs were requested when building that other software. For example, if I install Coin universal, then try to install Quarter non-universal, Quarter still tries to build universal because it picks up the arch flags from Coin's pkgconfig file:

$ sudo port install Quarter
--->  Computing dependencies for Quarter
--->  Fetching Quarter
--->  Verifying checksum(s) for Quarter
--->  Extracting Quarter
--->  Configuring Quarter
--->  Building Quarter
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_Quarter/work/Quarter-1.0.0" && /usr/bin/nice -n 10 /usr/bin/make -j1 all " returned error 2
Command output: Making all in eventhandlers
make[4]: Nothing to be done for `all'.
make[4]: Nothing to be done for `all-am'.
Making all in boost
make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all-am'.
Making all in src
Making all in Quarter
/opt/local/libexec/qt4-mac//bin/moc -o moc_QuarterWidget.cpp `echo ../../include/Quarter/QuarterWidget.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_SensorManager.cpp `echo ./SensorManager.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_ContextMenu.cpp `echo ./ContextMenu.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_SignalThread.cpp `echo ./SignalThread.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_EventFilter.cpp `echo ../../include/Quarter/eventhandlers/EventFilter.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_DragDropHandler.cpp `echo ../../include/Quarter/eventhandlers/DragDropHandler.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_InteractionMode.cpp `echo ./InteractionMode.h`
/opt/local/libexec/qt4-mac//bin/moc -o moc_FocusHandler.cpp `echo ../../include/Quarter/eventhandlers/FocusHandler.h`
/usr/bin/make  all-am
if /bin/sh ../../libtool --mode=compile /usr/bin/g++-4.2 -DHAVE_CONFIG_H -I../../include -I../../src/Quarter  -DQUARTER_INTERNAL -I/opt/local/include -I/opt/local/include/Inventor/annex -D_REENTRANT -I/usr/X11R6/include -I/opt/local/libexec/qt4-mac//lib/QtCore.framework/Headers -I/opt/local/libexec/qt4-mac//lib/QtOpenGL.framework/Headers -I/opt/local/libexec/qt4-mac//lib/QtGui.framework/Headers -F/opt/local/libexec/qt4-mac//lib   -I/opt/local/include -I/opt/local/libexec/qt4-mac/include  -DQUARTER_DEBUG=1  -O2 -arch x86_64 -arch i386  -O2 -arch x86_64 -MT libQuarter_la-Quarter.lo -MD -MP -MF ".deps/libQuarter_la-Quarter.Tpo" \
	  -c -o libQuarter_la-Quarter.lo `test -f 'Quarter.cpp' || echo './'`Quarter.cpp; \
	then mv -f ".deps/libQuarter_la-Quarter.Tpo" ".deps/libQuarter_la-Quarter.Plo"; \
	else rm -f ".deps/libQuarter_la-Quarter.Tpo"; exit 1; \
	fi
mkdir .libs
 /usr/bin/g++-4.2 -DHAVE_CONFIG_H -I../../include -I../../src/Quarter -DQUARTER_INTERNAL -I/opt/local/include -I/opt/local/include/Inventor/annex -D_REENTRANT -I/usr/X11R6/include -I/opt/local/libexec/qt4-mac//lib/QtCore.framework/Headers -I/opt/local/libexec/qt4-mac//lib/QtOpenGL.framework/Headers -I/opt/local/libexec/qt4-mac//lib/QtGui.framework/Headers -F/opt/local/libexec/qt4-mac//lib -I/opt/local/include -I/opt/local/libexec/qt4-mac/include -DQUARTER_DEBUG=1 -O2 -arch x86_64 -arch i386 -O2 -arch x86_64 -MT libQuarter_la-Quarter.lo -MD -MP -MF .deps/libQuarter_la-Quarter.Tpo -c Quarter.cpp  -fno-common -DPIC -o .libs/libQuarter_la-Quarter.o
g++-4.2: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags
make[4]: *** [libQuarter_la-Quarter.lo] Error 1
make[3]: *** [all] Error 2
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Attachments (1)

Coin-archflags.diff (462 bytes) - added by ryandesign (Ryan Carsten Schmidt) 14 years ago.
proposed patch

Download all attachments as: .zip

Change History (4)

Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: Coin-archflags.diff added

proposed patch

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

This patch ought to do it. If you don't combine this with a version update you should also increase the revision.

comment:2 Changed 14 years ago by cssdev

Status: newassigned

comment:3 Changed 14 years ago by cssdev

Resolution: fixed
Status: assignedclosed

Fixed in r65707. Thanks for the patch!

Note: See TracTickets for help on using tickets.