[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