On 26 Nov, Don Lewis wrote:
> On 26 Nov, Don Lewis wrote:
>> On 18 Nov, [email protected] 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: [email protected]
For additional commands, e-mail: [email protected]