On 26 Nov, Don Lewis wrote: > On 26 Nov, Don Lewis wrote: >> On 18 Nov, j...@apache.org wrote: >>> Author: jim >>> Date: Sat Nov 18 22:24:42 2017 >>> New Revision: 1815700 >>> >>> URL: http://svn.apache.org/viewvc?rev=1815700&view=rev >>> Log: >>> Force compilation with -O1 flag instead of -O2 >>> >>> Modified: >>> openoffice/trunk/main/framework/Library_fwk.mk >>> >>> Modified: openoffice/trunk/main/framework/Library_fwk.mk >>> URL: >>> http://svn.apache.org/viewvc/openoffice/trunk/main/framework/Library_fwk.mk?rev=1815700&r1=1815699&r2=1815700&view=diff >>> ============================================================================== >>> --- openoffice/trunk/main/framework/Library_fwk.mk (original) >>> +++ openoffice/trunk/main/framework/Library_fwk.mk Sat Nov 18 22:24:42 2017 >>> @@ -61,6 +61,10 @@ $(eval $(call gb_Library_add_linked_libs >>> $(gb_STDLIBS) \ >>> )) >>> >>> +ifeq ($(OS),MACOSX) >>> +gb_COMPILEROPTFLAGS := -O1 >>> +endif >>> + >>> $(eval $(call gb_Library_add_exception_objects,fwk,\ >>> framework/source/accelerators/acceleratorcache \ >>> framework/source/accelerators/acceleratorconfiguration \ >>> >>> >> >> I'd like to propose the patch below as an alternative: >> * FreeBSD 10 / amd64 also has this problem. It just depends on the >> machine architecture and clang version. >> >> * The patch below only changes the optimization for one file, not >> everything in this library. >> >> * Hardwiring -O1 does the wrong thing for debug builds, which want to >> totally disable optimization so that the values of variables are not >> optimized out. >> >> Admittedly this patch is a bit ugly because gbuild doesn't currently >> have a way to set target-specific optimization flags. The problem is >> that it passes $(gb_COMPILEROPTFLAGS) as a function call argument, which >> is evaluated globally and not in a target-specific context. This should >> be fixable. >> >> What does 'cc --version' report on the Mac for the different releases >> that work / don't work properly? I'd like to bring $(CCNUMVER) to >> gbuild so that these sorts of tweaks are only enabled for the compiler >> versions that need it. >> >> --- framework/Library_fwk.mk.orig 2017-10-11 11:40:20 UTC >> +++ framework/Library_fwk.mk >> @@ -186,4 +186,11 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ >> framework/source/xml/imagesdocumenthandler \ >> )) >> >> +# i126622 - Base 4.1.2 does not open Tables and Queries in Mac OSX >> +# Also affects FreeBSD 10.3 with clang 3.4.1. >> +# Appears to be a clang optimization bug in versions less than 3.8.0 >> +ifeq ($(COM)$(CPUNAME),CLANGX86_64) >> +$(call gb_CxxObject_get_target,framework/source/loadenv/loadenv): >> CXXFLAGS := $(gb_LinkTarget_CXXFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) >> $(gb_COMPILERNOOPTFLAGS) >> +endif >> + >> # vim: set noet sw=4 ts=4: > > This patch is for 4.1.4. It doesn't work on trunk, but the fix there > looks easier. I'll post it once I have it tested.
Here's the patch for trunk. I turned out not to be any easier, just different. --- framework/Library_fwk.mk.orig 2016-08-29 00:45:25 UTC +++ framework/Library_fwk.mk @@ -190,4 +190,11 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/xml/imagesdocumenthandler \ )) +# i126622 - Base 4.1.2 does not open Tables and Queries in Mac OSX +# Also affects FreeBSD 10.3 with clang 3.4.1. +# Appears to be a clang optimization bug in versions less than 3.8.0 +ifeq ($(COM)$(CPUNAME),CLANGX86_64) +$(call gb_CxxObject_get_target,framework/source/loadenv/loadenv): T_CXXFLAGS := $(gb_LinkTarget_CXXFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILERNOOPTFLAGS) +endif + # vim: set noet sw=4 ts=4: --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org