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: [email protected]
For additional commands, e-mail: [email protected]