New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #34902 (closed defect: fixed)

Opened 11 months ago

Last modified 9 months ago

qt4-mac 4.8.2: build fails on 10.5.8

Reported by: michael.klein@… Owned by: michaelld@…
Priority: Normal Milestone:
Component: ports Version: 2.1.1
Keywords: leopard Cc: trog24@…, dgonyier@…, ryandesign@…, mdbecque@…, raphael@…, khepler@…, ctreleaven@…
Port: qt4-mac

Description

find build log attached

Attachments

main.log (3.2 MB) - added by michael.klein@… 11 months ago.

Change History

Changed 11 months ago by michael.klein@…

comment:1 Changed 11 months ago by ryandesign@…

  • Cc michaelld@… removed
  • Owner changed from macports-tickets@… to michaelld@…

comment:2 follow-up: ↓ 4 Changed 11 months ago by michaelld@…

Arg. I thought we fixed this bug a while ago. It's a 32/64 bit issue, IIRC. Let me look into it.

BTW> Please compress log files in the future; you'll be amazed how small they get, even Qt's!

comment:3 Changed 11 months ago by trog24@…

  • Cc trog24@… added

Cc Me!

comment:4 in reply to: ↑ 2 Changed 11 months ago by michael.klein@…

Replying to michaelld@…:

Arg. I thought we fixed this bug a while ago. It's a 32/64 bit issue, IIRC. Let me look into it.

ok, thanks for looking into it.

BTW> Please compress log files in the future; you'll be amazed how small they get, even Qt's!

the terms "small" and "Qt" can't go together in one sentence. Never. ;-)

also BTW: I filed a rather nasty Mac only upstream bug against 4.7.4 a while ago, which supposedly still applies to 4.8.2, maybe it makes sense to include the patch in the qt4-mac port? It's https://bugreports.qt-project.org/browse/QTBUG-24031

comment:5 Changed 11 months ago by michaelld@…

You'll be surprised at the compression you get from Qt's log. Yes, "Qt" and "small" don't generally go together :)

Yes, that use of mach_timebase_info is known to result in integer issues when not converted to double of long double first; I'm surprised they still use it in that way! Can you please open a ticket with just that as the request & the info you provided here. I'll get around to it sometime soon; will need to rev-bump qt4-mac anyway soon, and I'll make sure to include this fix at that time.

comment:6 Changed 11 months ago by dgonyier@…

  • Cc dgonyier@… added

Cc Me!

comment:7 follow-up: ↓ 8 Changed 10 months ago by ryandesign@…

  • Keywords leopard added
  • Cc ryandesign@… added

The errors in the log begin with:

:info:configure mmx auto-detection... ()
:info:configure /usr/bin/g++-4.0 -c -pipe -mmmx -O2 -arch ppc -Wall -W  -I../../../mkspecs/macx-g++ -I. -o mmx.o mmx.cpp
:info:configure cc1plus: error: invalid option ‘mmx’
:info:configure gmake: *** [mmx.o] Error 1
:info:configure mmx disabled.
:info:configure 3dnow auto-detection... ()
:info:configure /usr/bin/g++-4.0 -c -pipe -m3dnow -O2 -arch ppc -Wall -W  -I../../../mkspecs/macx-g++ -I. -o 3dnow.o 3dnow.cpp
:info:configure cc1plus: error: invalid option ‘3dnow’
:info:configure gmake: *** [3dnow.o] Error 1
:info:configure 3dnow disabled.
:info:configure sse auto-detection... ()
:info:configure /usr/bin/g++-4.0 -c -pipe -msse -O2 -arch ppc -Wall -W  -I../../../mkspecs/macx-g++ -I. -o sse.o sse.cpp
:info:configure sse.cpp:42:23: error: xmmintrin.h: No such file or directory

comment:8 in reply to: ↑ 7 Changed 10 months ago by michael.klein@…

Replying to ryandesign@…:

The errors in the log begin with:

:info:configure mmx auto-detection... ()
:info:configure /usr/bin/g++-4.0 -c -pipe -mmmx -O2 -arch ppc -Wall -W  -I../../../mkspecs/macx-g++ -I. -o mmx.o mmx.cpp
:info:configure cc1plus: error: invalid option ‘mmx’
:info:configure gmake: *** [mmx.o] Error 1
:info:configure mmx disabled.
:info:configure 3dnow auto-detection... ()
:info:configure /usr/bin/g++-4.0 -c -pipe -m3dnow -O2 -arch ppc -Wall -W  -I../../../mkspecs/macx-g++ -I. -o 3dnow.o 3dnow.cpp
:info:configure cc1plus: error: invalid option ‘3dnow’
:info:configure gmake: *** [3dnow.o] Error 1
:info:configure 3dnow disabled.
:info:configure sse auto-detection... ()
:info:configure /usr/bin/g++-4.0 -c -pipe -msse -O2 -arch ppc -Wall -W  -I../../../mkspecs/macx-g++ -I. -o sse.o sse.cpp
:info:configure sse.cpp:42:23: error: xmmintrin.h: No such file or directory

Isn't this just the configure script checking for mmx/3dnow/sse intrinsics?

I think the first real error is here:

:info:build /usr/bin/gcc-4.0 -c -pipe -O2 -arch ppc -arch ppc -Xarch_ppc -mmacosx-version-min=10.5 -fvisibility=hidden -fvisibility-inlines-hidden -isysroot /Developer/SDKs/MacOSX10.5.sdk -DNDEBUG -DBUILDING_QT__=1 -DNDEBUG -DQT_ASCII_CAST_WARNINGS -DENABLE_XSLT=0 -DENABLE_WEB_TIMING=0 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_DATABASE=1 -DENABLE_EVENTSOURCE=1 -DENABLE_OFFLINE_WEB_APPLICATIONS=1 -DENABLE_DOM_STORAGE=1 -DENABLE_ICONDATABASE=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_DIRECTORY_UPLOAD=0 -DENABLE_FILE_SYSTEM=0 -DENABLE_QUOTA=0 -DENABLE_SQLITE=1 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_FILTERS=1 -DENABLE_XPATH=1 -DENABLE_WCSS=0 -DENABLE_SHARED_WORKERS=1 -DENABLE_WORKERS=1 -DENABLE_XHTMLMP=0 -DENABLE_DETAILS=1 -DENABLE_METER_TAG=1 -DENABLE_PROGRESS_TAG=1 -DENABLE_BLOB=1 -DENABLE_NOTIFICATIONS=1 -DENABLE_INPUT_SPEECH=0 -DENABLE_INSPECTOR=1 -DENABLE_3D_RENDERING=1 -DENABLE_WEB_AUDIO=0 -DENABLE_WEBGL=0 -DENABLE_MEDIA_STATISTICS=0 -DENABLE_VIDEO_TRACK=0 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_ANIMATION_API=0 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_SVG_FOREIGN_OBJECT=1 -DENABLE_SVG_ANIMATION=1 -DENABLE_SVG_AS_IMAGE=1 -DENABLE_SVG_USE=1 -DENABLE_DATALIST=1 -DENABLE_TILED_BACKING_STORE=1 -DENABLE_NETSCAPE_PLUGIN_API=1 -DENABLE_WEB_SOCKETS=1 -DWTF_USE_QT_BEARER=1 -DENABLE_TOUCH_EVENTS=1 -DENABLE_VIDEO=1 -DWTF_USE_QTKIT=1 -DBUILDING_JavaScriptCore -DBUILDING_WTF -DBUILDING_WEBKIT -DQT_MAKEDLL -DNSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../../../mkspecs/macx-g++ -I. -I.moc/release-static -I../JavaScriptCore -I../../Source -I../ThirdParty -I../JavaScriptCore/assembler -I../JavaScriptCore/bytecode -I../JavaScriptCore/bytecompiler -I../JavaScriptCore/heap -I../JavaScriptCore/dfg -I../JavaScriptCore/debugger -I../JavaScriptCore/interpreter -I../JavaScriptCore/jit -I../JavaScriptCore/parser -I../JavaScriptCore/profiler -I../JavaScriptCore/runtime -I../JavaScriptCore/wtf -I../JavaScriptCore/wtf/gobject -I/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source/JavaScriptCore/wtf/symbian -I../JavaScriptCore/wtf/unicode -I../JavaScriptCore/yarr -I../JavaScriptCore/API -I../JavaScriptCore/ForwardingHeaders -I../JavaScriptCore/generated -Ibridge/qt -Ipage/qt -Iplatform/graphics/qt -Iplatform/network/qt -Iplatform/qt -I../WebKit/qt/Api -I../WebKit/qt/WebCoreSupport -I. -Iaccessibility -Ibindings -Ibindings/generic -Ibridge -Icss -Idom -Idom/default -Iediting -Ifileapi -Ihistory -Ihtml -Ihtml/canvas -Ihtml/parser -Ihtml/shadow -Iinspector -Iloader -Iloader/appcache -Iloader/archive -Iloader/cache -Iloader/icon -Imathml -Inotifications -Ipage -Ipage/animation -Iplatform -Iplatform/animation -Iplatform/audio -Iplatform/graphics -Iplatform/graphics/filters -Iplatform/graphics/filters/arm -Iplatform/graphics/texmap -Iplatform/graphics/transforms -Iplatform/image-decoders -Iplatform/leveldb -Iplatform/mock -Iplatform/network -Iplatform/sql -Iplatform/text -Iplatform/text/transcoder -Iplugins -Irendering -Irendering/mathml -Irendering/style -Irendering/svg -Istorage -Isvg -Isvg/animation -Isvg/graphics -Isvg/graphics/filters -Isvg/properties -Itesting -Iwebaudio -Iwebsockets -I/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source/WebCore/wml -Iworkers -Ixml -Ibridge/jsc -Ibindings/js -I/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source/WebCore/bindings/js/specialization -Ibridge/c -Itesting/js -Igenerated -I../../Source -I../../include -I../include/QtWebKit -I../include -Iplatform/mac -Iplatform/graphics/mac -I../../WebKitLibraries -I../../../../../include/QtGui -I../../../../../include/QtNetwork -I../../../../../include/QtCore -I../../../../../include plugins/mac/PluginViewMac.mm -o .obj/release-shared/PluginViewMac.o
:info:build /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSGeometry.h:51: error: conflicting declaration ‘typedef struct _NSSize NSSize’
:info:build platform/graphics/FloatSize.h:40: error: ‘NSSize’ has a previous declaration as ‘typedef struct CGSize NSSize’
:info:build /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSGeometry.h:59: error: conflicting declaration ‘typedef struct _NSRect NSRect’
:info:build platform/graphics/IntRect.h:38: error: ‘NSRect’ has a previous declaration as ‘typedef struct CGRect NSRect’
:info:build make[2]: *** [.obj/release-shared/PluginViewMac.o] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source/WebCore'
:info:build make[1]: *** [sub-WebCore-all-ordered] Error 2
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source'
:info:build make: *** [sub-webkit-all-ordered] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_aqua_qt4-mac/qt4-mac/work/qt-everywhere-opensource-src-4.8.2" && /usr/bin/make -w all 
:info:build Exit code: 2

comment:9 Changed 10 months ago by ryandesign@…

  • Cc mdbecque@… added

Ah yes, Michael, you're right of course. I didn't read that properly.

Has duplicate #35199.

comment:10 Changed 10 months ago by raphael@…

  • Cc raphael@… added

Cc Me!

comment:11 Changed 10 months ago by khepler@…

  • Cc khepler@… added

Cc Me!

comment:12 Changed 10 months ago by khepler@…

Is this a regression of https://bugs.webkit.org/show_bug.cgi?id=69914 ?

This is the definition the compiler error complains about in src/3rdparty/webkit/Source/WebCore/platform/graphics/FloatSize.h:

#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN)) || (PLATFORM(QT) && USE(QTKIT))
#ifdef NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
typedef struct CGSize NSSize;
#else
typedef struct _NSSize NSSize;
#endif
#endif

And then I found this in src/3rdparty/webkit/Source/WebCore/ChangeLog:

2011-10-13  Zeno Albisser  <zeno.albisser@nokia.com>

        [Qt] QtWebKit build error for Mac 32bit
        https://bugs.webkit.org/show_bug.cgi?id=69914

        In WebCore.pro and QtWebKit.pro we define NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
        when compiling with ENABLE_VIDEO and with WTF_USE_QTKIT.
        But this is meant to be defined in NSGeometry.h under certain preconditions.
        Without setting NS_BUILD_32_LIKE_64 none of these preconditions is
        met and therefore NSGeometry.h will create several conflicting type definitions.

        With this patch we create consistent definitions again.
        Due to the order of include files we cannot remove
        NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES from WebCore.pro.

        Reviewed by Andreas Kling.

        * WebCore.pro:

comment:13 Changed 10 months ago by michaelld@…

Yes; that looks like the issue and fix. I won't have time to integrate this for another week, but if someone else wants to then please do so; this won't require a rev-bump since it's fixing an existing build error instead of fixing functionality. I have a few other tickets that I was going to check in all together (e.g., #34934, #34864) and rev-bump; I try not to rev-bump unless it's truly necessary since Qt takes so long to build. Hence, if someone does fix this issue then those who have it will be building Qt twice in the next few weeks. Otherwise, if waiting, then should be just once.

comment:14 Changed 10 months ago by ctreleaven@…

  • Cc ctreleaven@… added

Cc Me!

comment:15 Changed 10 months ago by michaelld@…

So it looks like they corrected the build for "x86" (32-bit Intel), but not "ppc", so I'm modifying the "contains(CONFIG,"x86")" line to also do "|contains(CONFIG,"ppc")"; I'll post the updated patch once I've verified that it works in a basic sense for me (I do not have a PPC on which to do testing).

comment:16 Changed 10 months ago by pixilla@…

michaelld: qt4-mac builds on ppc using the patch you provided me.

$ machine;sw_vers -productVersion;port installed qt4-mac
ppc970
10.5.8
The following ports are currently installed:
  qt4-mac @4.8.2_1+quartz (active)

comment:17 Changed 9 months ago by michaelld@…

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in r96486. Thanks for testing, pixella!

Note: See TracTickets for help on using tickets.