Opened 7 years ago

Closed 7 years ago

#34902 closed defect (fixed)

qt4-mac 4.8.2: build fails on 10.5.8

Reported by: mklein-de (Michael Klein) Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.1.1
Keywords: leopard Cc: trog24 (Frank J. R. Hanstick), dgonyier (Dwaine Gonyier), ryandesign (Ryan Schmidt), mdbecque@…, raphael-st (Raphael Straub), khepler, ctreleaven (Craig Treleaven)
Port: qt4-mac

Description

find build log attached

Attachments (1)

main.log (3.2 MB) - added by mklein-de (Michael Klein) 7 years ago.

Change History (18)

Changed 7 years ago by mklein-de (Michael Klein)

Attachment: main.log added

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

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

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

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 7 years ago by trog24 (Frank J. R. Hanstick)

Cc: trog24@… added

Cc Me!

comment:4 in reply to:  2 Changed 7 years ago by mklein-de (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 7 years ago by michaelld (Michael Dickens)

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 7 years ago by dgonyier (Dwaine Gonyier)

Cc: dgonyier@… added

Cc Me!

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

Cc: ryandesign@… added
Keywords: leopard 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 7 years ago by mklein-de (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 7 years ago by ryandesign (Ryan Schmidt)

Cc: mdbecque@… added

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

Has duplicate #35199.

comment:10 Changed 7 years ago by raphael-st (Raphael Straub)

Cc: raphael@… added

Cc Me!

comment:11 Changed 7 years ago by khepler

Cc: khepler@… added

Cc Me!

comment:12 Changed 7 years 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 7 years ago by michaelld (Michael Dickens)

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 7 years ago by ctreleaven (Craig Treleaven)

Cc: ctreleaven@… added

Cc Me!

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

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 7 years ago by pixilla (Bradley Giesbrecht)

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 7 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: newclosed

Fixed in r96486. Thanks for testing, pixella!

Note: See TracTickets for help on using tickets.