Comment from original commit in Qt's 3rdparty: BT: JavaScriptCore makes applications crash on leopard JavaScriptCore checks the Mac OS version when building, and uses symbols only defined in i e.g.snow leopard when building on snow leopard. This means that if you build Qt on snow leopard and later move it to leopard, applications will crash looking for a missing symbol (pthread_setname_np in particular). In Qt, we garuantee that you can run your applications on 10.4 and up for Carbon, and 10.5 and up for Cocoa. So using compile time checks this way is not a proper soulution. Result: In Qt, never use symbols not defined on all supported OS versions, or at least implement run-time checks. Rev-By: Simon Hausmann Rev-By: Tor Arne Rev-By: MortenS
Created attachment 43057 [details] Patch from Qt src/3rdparty
Comment on attachment 43057 [details] Patch from Qt src/3rdparty Clearing flags on attachment: 43057 Committed r50877: <http://trac.webkit.org/changeset/50877>
All reviewed patches have been landed. Closing bug.
Comment on attachment 43057 [details] Patch from Qt src/3rdparty This isn’t really the right way to address this. I don’t know anything about how the Qt build process works but we have TARGETING_TIGER / TARGETING_LEOPARD macros that can be used to exclude code based on the minimum supported Mac OS X version that the binary will run on (rather than the BUILDING_ON macros which are about the maximum version).
I’m reopening this so it can be fixed in a more appropriate manner.
Apparently the original code using BUILDING_ON_TIGER/LEOPARD could be replaced with TARGETING_TIGER/LEOPARD instead, depending on how the Qt build system works. Quote from Mark Rowe: i'm not sure how the Qt build system works but I would imagine that if it builds on 10.6 but deploys on 10.5 it would be setting the so-called Mac OS X deployment target so that the right platform headers are exposed. Tor Arne, can you look into this?
(In reply to comment #6) > Apparently the original code using BUILDING_ON_TIGER/LEOPARD could be replaced > with TARGETING_TIGER/LEOPARD instead, depending on how the Qt build system > works. > > Quote from Mark Rowe: > > i'm not sure how the Qt build system works but I would imagine that if it > builds on 10.6 but deploys on 10.5 it would be setting the so-called Mac OS X > deployment target so that the right platform headers are exposed. > > Tor Arne, can you look into this? Maybe Platform.h should be using TARGETING rather than BUILDING_ON for that stuff? The TARGETING macros were added not that long ago. I have a patch in the queue that switches from BUILDING_ON to TARGETING for similar reasons (https://bugs.webkit.org/show_bug.cgi?id=34888).
Created attachment 55117 [details] Use TARGETING instead of BUILDING_ON Uptate with the comments of Mark and Kent.
Comment on attachment 55117 [details] Use TARGETING instead of BUILDING_ON r=me, but the ChangeLog needs to be a bit more verbose on what the problem is. I'll try to do that when landing it.
Committed r60773: <http://trac.webkit.org/changeset/60773>
Revision r60773 cherry-picked into qtwebkit-2.0 with commit f943ead2759537527faa7f3cb057d995291663b9