id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,port 46606,"qt4-mac ""noexceptions"" variant",RJVB,macports-tickets@…,"This one has already been presented (because included) in my qt4-mac concurrent ticket, but a bit of independent exposure might be good. When you build Qt4 on OS X (or Linux) using gcc or clang, `configure` prints a notice when done about how these compilers will by default include the infrastructure required for C++ exceptions, how that adds considerable overhead, and that it is possible to build Qt without that support, resulting in an ABI-compatible install because exceptions aren't used internally. That latter part is not 100% true: the resulting installation is only ABI compatible for software that doesn't require QtXMLPatterns and the full QtConcurrent. The variant presented here does result in an installation that should be 100% ABI compatible by undoing the effect of configure's `-no-exceptions` for QtCore (and thus QtConcurrent) and QtXMLPatterns. It would have been better if QtConcurrent (and XMLPatterns) could be built *with* exceptions and the rest without, but that requires much more invasive hacking of the build system. I've been using the current patch on OS X and Kubuntu (via ppa:rjvbertin/qt4) for weeks no, without ill effects. The changes to the portfile (given inline): {{{ variant noexceptions description {build without using exceptions internally} { # (26) don't build with exceptions, which gives a completely ABI-compatible build patchfiles-append disable-exceptions.patch configure.args-append -no-exceptions } }}} and an additional patch in the post-destroot that removes an inappropriate section from QtCore/qconfig.h : {{{ post-destroot { ... if {[variant_isset noexceptions ]} { # building with -no-exceptions will add a section to QtCore/qconfig.h that has to be removed # given that we did NOT build QtCore WITHOUT exceptions... exec patch -d ${destroot}${qt_frameworks_dir} -Np0 -i ${filespath}/qconfig-remove-EXCEPTIONS.diff } ... } }}}",enhancement,new,Normal,,ports,,,haspatch,michaelld mkae,qt4-mac