[Qt-interest] Qt 4.5 on Mac OSX: Attempt to build quad frameworks omits -arch i386 from CFLAGS/CXXFLAGS

Trenton Schulz trenton.schulz at nokia.com
Mon Mar 16 11:42:22 CET 2009


On 2009-03-12 18:33:26 +0100, Rush Manbert <rush at manbert.com> said:

> Based on information from Mike Jackson, I attempted to build a shared,  
> framework-based, quad library version of Qt 4.5.
> 
> My configure command as:
> time ./configure -prefix /Users/rmanbert/temp/qt4.5.0-quadDylib -debug- 
> and-release -no-qt3support -cocoa -framework -webkit -arch i386 -arch  
> x86_64 -arch ppc -arch ppc64 -platform macx-g++
> 
> After building qmake, configure shows me this:
> Build type:    macx-g++
> Architecture:  macosx ( i386 x86_64 ppc ppc64 )
> Using framework: Cocoa
> 
> Build ............... libs tools examples demos docs translations
> Configuration .......  build_all debug shared dll largefile stl mmx  
> 3dnow sse sse2  i386 x86_64 ppc ppc64 absolute_library_soname  minimal- 
> config small-config medium-config large-config full-config dwarf2  
> phonon phonon-backend accessibility opengl reduce_exports ipv6  
> getaddrinfo ipv6ifname getifaddrs png no-freetype system-zlib nis cups  
> iconv openssl xmlpatterns svg webkit scripttools release debug  
> qt_framework  i386 x86_64 ppc ppc64
> Debug ............... yes (combined)
> Default Link ........ debug
> Qt 3 compatibility .. no
> QtDBus module ....... no
> QtScriptTools module  yes
> QtXmlPatterns module  yes
> Phonon module ....... yes
> SVG module .......... yes
> WebKit module ....... yes
> STL support ......... yes
> PCH support ......... no
> MMX/3DNOW/SSE/SSE2..  yes/yes/yes/yes
> Graphics System ..... default
> IPv6 support ........ yes
> IPv6 ifname support . yes
> getaddrinfo support . yes
> getifaddrs support .. yes
> Accessibility ....... yes
> NIS support ......... yes
> CUPS support ........ yes
> Iconv support ....... yes
> Glib support ........ auto
> GStreamer support ... auto
> Large File support .. yes
> GIF support ......... plugin
> TIFF support ........ plugin (qt)
> JPEG support ........ plugin (qt)
> PNG support ......... yes (qt)
> MNG support ......... plugin (qt)
> zlib support ........ system
> Session management .. auto
> OpenGL support ...... yes (Desktop OpenGL)
> ODBC support ........ plugin
> SQLite support ...... plugin (qt)
> OpenSSL support ..... yes (run-time)
> 
> which looks fine, although the architecture specs repeat. It then goes  
> on to create all of the Makefiles.
> 
> I ran make and noticed that none of the compile commands included - 
> arch i386. They has the other 3 architectures specified, but not i386.
> 
> I stopped the make, found some object files and ran lipo -info on  
> them. Lipo says "Architectures in the fat file: qmutex.o are: ppc64  
> ppc7400 x86_64"
> 
> Since I specified the i386 architecture first in my configure command  
> and it was missing in the Makefiles, I tried again with ppc specified  
> first. The Makefiles once again define these flags:
> CFLAGS        = -pipe -g -gdwarf-2 -arch ppc64 -Xarch_ppc64 -mmacosx- 
> version-min=10.5 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 - 
> arch ppc -Wall -W $(DEFINES)
> CXXFLAGS      = -pipe -g -gdwarf-2 -arch ppc64 -Xarch_ppc64 -mmacosx- 
> version-min=10.5 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 - 
> arch ppc -Wall -W $(DEFINES)
> LFLAGS        = -headerpad_max_install_names -arch ppc64 -Xarch_ppc64 - 
> mmacosx-version-min=10.5 -arch x86_64 -Xarch_x86_64 -mmacosx-version- 
> min=10.5 -arch ppc
> 
> and again the i386 is missing.
> 
> I'm building on an Intel Mac, so it almost seems like the Makefiles  
> assume there will be a implicit compilation for i386, but the lipo  
> results say that's not true.
> 
> I suspect this is a bug, but maybe I have done something wrong. Does  
> anyone else have experience with this?

It shouldn't make a difference but could you adjust your configure line 
to do specify the arch like this:

-arch "ppc x86 ppc64 x86_64"

Note the quotes!

If that works, please file a bug, because both ways should work.

Good luck,

-- Trenton




More information about the Qt-interest-old mailing list