Here's a gbuild patch vs. trunk r1816518 that makes setting optimization level overrides for specific files a lot easier. I also added a way to safely specify -O1 without breaking debug. It's not perfect because if someone set CXXFLAGS in the environment, it will override the override in the .mk file. It is only very lightly tested ... my FreeBSD build is only about halfway complete.
Index: main/framework/Library_fwk.mk =================================================================== --- main/framework/Library_fwk.mk (revision 1816518) +++ main/framework/Library_fwk.mk (working copy) @@ -61,6 +61,11 @@ $(gb_STDLIBS) \ )) +# i126622 - Base 4.1.2 does not open Tables and Queries in Mac OSX +ifeq ($(OS),MACOSX) + $(call gb_LinkTarget_set_cxx_optimization,framework/source/loadenv/loadenv,$(gb_COMPILEROPT1FLAGS)) +endif + $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/accelerators/acceleratorcache \ framework/source/accelerators/acceleratorconfiguration \ @@ -190,10 +195,4 @@ framework/source/xml/imagesdocumenthandler \ )) -# i126622 - Base 4.1.2 does not open Tables and Queries in Mac OSX -ifeq ($(OS),MACOSX) - $(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: Index: main/solenv/gbuild/LinkTarget.mk =================================================================== --- main/solenv/gbuild/LinkTarget.mk (revision 1816518) +++ main/solenv/gbuild/LinkTarget.mk (working copy) @@ -333,12 +333,12 @@ $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : GENCXXOBJECTS := $(call gb_LinkTarget_get_headers_target,$(1)) \ -$(call gb_LinkTarget_get_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : T_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ -$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(CXXFLAGS) -$(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(OBJCXXFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ @@ -367,10 +367,10 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS := -$(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : T_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) -$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(CXXFLAGS) -$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(OBJCXXFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE) @@ -477,9 +477,24 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCXXFLAGS := $(2) endif endif +endef +define gb_LinkTarget_set_c_optimization +$(call gb_CObject_get_target,$(1)) : gb_COMPILEROPTFLAGS := $(2) endef +define gb_LinkTarget_set_cxx_optimization +$(call gb_CxxObject_get_target,$(1)) : gb_COMPILEROPTFLAGS := $(2) +endef + +define gb_LinkTarget_set_gencxx_optimization +$(call gb_GenCxxObject_get_target,$(1)) : gb_COMPILEROPTFLAGS := $(2) +endef + +define gb_LinkTarget_set_objcxx_optimization +$(call gb_ObjCxxObject_get_target,$(1)) : gb_COMPILEROPTFLAGS := $(2) +endef + define gb_LinkTarget_set_include $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $(2) @@ -635,7 +650,7 @@ $(call gb_LinkTarget_get_target,$(1)) : $(call gb_GenCxxObject_get_target,$(2)) $(call gb_GenCxxObject_get_source,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) -$(call gb_GenCxxObject_get_target,$(2)) : T_CXXFLAGS += $(3) $(CXXFLAGS) +$(call gb_GenCxxObject_get_target,$(2)) : T_CXXFLAGS += $(3) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS += $(2) @@ -645,11 +660,11 @@ endef define gb_LinkTarget_add_noexception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(CXXFLAGS)) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS)) endef define gb_LinkTarget_add_exception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(CXXFLAGS)) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS)) endef define gb_LinkTarget_add_cobjects Index: main/solenv/gbuild/platform/freebsd.mk =================================================================== --- main/solenv/gbuild/platform/freebsd.mk (revision 1816518) +++ main/solenv/gbuild/platform/freebsd.mk (working copy) @@ -152,8 +152,10 @@ ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 +gb_COMPILEROPT1FLAGS := -O0 else gb_COMPILEROPTFLAGS := -Os +gb_COMPILEROPT1FLAGS := -O1 endif gb_COMPILERNOOPTFLAGS := -O0 @@ -179,6 +181,7 @@ $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ + $(CFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ @@ -204,6 +207,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ + $(CXXFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ Index: main/solenv/gbuild/platform/linux.mk =================================================================== --- main/solenv/gbuild/platform/linux.mk (revision 1816518) +++ main/solenv/gbuild/platform/linux.mk (working copy) @@ -158,8 +158,10 @@ ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 +gb_COMPILEROPT1FLAGS := -O0 else gb_COMPILEROPTFLAGS := -Os +gb_COMPILEROPT1FLAGS := -O1 endif gb_COMPILERNOOPTFLAGS := -O0 @@ -185,6 +187,7 @@ $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ + $(CFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ @@ -210,6 +213,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ + $(CXXFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ Index: main/solenv/gbuild/platform/macosx.mk =================================================================== --- main/solenv/gbuild/platform/macosx.mk (revision 1816518) +++ main/solenv/gbuild/platform/macosx.mk (working copy) @@ -145,8 +145,10 @@ ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 +gb_COMPILEROPT1FLAGS := -O0 else gb_COMPILEROPTFLAGS := -O2 +gb_COMPILEROPT1FLAGS := -O1 endif gb_COMPILERNOOPTFLAGS := -O0 @@ -179,6 +181,7 @@ $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ + $(CFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ @@ -198,6 +201,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ + $(CXXFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ @@ -216,6 +220,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_OBJCXXFLAGS) \ + $(OBJCXXFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ Index: main/solenv/gbuild/platform/os2.mk =================================================================== --- main/solenv/gbuild/platform/os2.mk (revision 1816518) +++ main/solenv/gbuild/platform/os2.mk (working copy) @@ -141,9 +141,11 @@ ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 +gb_COMPILEROPT1FLAGS := -O0 #gb_LinkTarget_LDFLAGS += -DEBUG else gb_COMPILEROPTFLAGS := -Os +gb_COMPILEROPT1FLAGS := -O1 endif gb_COMPILERNOOPTFLAGS := -O0 @@ -171,6 +173,7 @@ $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ + $(CFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ @@ -190,6 +193,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ + $(CXXFLAGS) \ -c $(3) \ -o $(1) \ -MMD -MT $(1) \ Index: main/solenv/gbuild/platform/solaris.mk =================================================================== --- main/solenv/gbuild/platform/solaris.mk (revision 1816518) +++ main/solenv/gbuild/platform/solaris.mk (working copy) @@ -109,9 +109,11 @@ ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := +gb_COMPILEROPT1FLAGS := else ifeq ($(CPUNAME),INTEL) gb_COMPILEROPTFLAGS := -xarch=generic -xO3 +gb_COMPILEROPT1FLAGS := -xarch=generic -xO1 else # ifeq ($(CPUNAME),SPARC) # -m32 -xarch=sparc restrict target to 32 bit sparc # -xO3 optimization level 3 @@ -118,6 +120,7 @@ # -xspace don't do optimizations which do increase binary size # -xprefetch=yes do prefetching (helps on UltraSparc III) gb_COMPILEROPTFLAGS := -m32 -xarch=sparc -xO3 -xspace -xprefetch=yes +gb_COMPILEROPT1FLAGS := -m32 -xarch=sparc -xO1 -xspace -xprefetch=yes endif endif @@ -156,6 +159,7 @@ -xMF $(4) \ $(DEFS) \ $(T_CFLAGS) \ + $(CFLAGS) \ -I$(dir $(3)) \ $(INCLUDE)) endef @@ -170,6 +174,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ + $(CXXFLAGS) \ -c $(3) \ -o $(1) \ -xMMD \ Index: main/solenv/gbuild/platform/windows.mk =================================================================== --- main/solenv/gbuild/platform/windows.mk (revision 1816518) +++ main/solenv/gbuild/platform/windows.mk (working copy) @@ -279,6 +279,7 @@ $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ + $(CFLAGS) \ -Fd$(PDBFILE) \ $(PCHFLAGS) \ -I$(dir $(3)) \ @@ -299,6 +300,7 @@ $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ + $(CXXFLAGS) \ -Fd$(PDBFILE) \ $(PCHFLAGS) \ -I$(dir $(3)) \ --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org