summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-07-25 23:21:36 +0000
committerian <ian@FreeBSD.org>2014-07-25 23:21:36 +0000
commit0adc7b49f4bf6aacff060b6e571f815c7d7252d3 (patch)
tree4a8016c56f91711d1db7232aaf0585ae5699b2f0
parentd599f4ba1eb7534933e5371228b5883e9c2c5d9c (diff)
downloadFreeBSD-src-0adc7b49f4bf6aacff060b6e571f815c7d7252d3.zip
FreeBSD-src-0adc7b49f4bf6aacff060b6e571f815c7d7252d3.tar.gz
MFC r263373, r268402
Add a way to apply CFLAGS only when building the given architecture. This is useful primarily on a system used for cross-building, when you have a set of flags to apply to the TARGET_ARCH being cross-built but don't want those settings applied to building the cross-tools or other components that run on the build host machine. Support CXXFLAGS.${MACHINE_ARCH} as well as CFLAGS. This allows different C++ options for toolchain versus target when cross-building.
-rw-r--r--share/examples/etc/make.conf7
-rw-r--r--share/mk/bsd.cpu.mk5
2 files changed, 12 insertions, 0 deletions
diff --git a/share/examples/etc/make.conf b/share/examples/etc/make.conf
index 15eee8a..d52d518 100644
--- a/share/examples/etc/make.conf
+++ b/share/examples/etc/make.conf
@@ -60,6 +60,12 @@
# nonstandard optimization settings
# before submitting bug reports without patches to the developers.
#
+# CFLAGS.arch provides a mechanism for applying CFLAGS only when building
+# the given architecture. This is useful primarily on a system used for
+# cross-building, when you have a set of flags to apply to the TARGET_ARCH
+# being cross-built but don't want those settings applied to building the
+# cross-tools or other components that run on the build host machine.
+#
# CXXFLAGS controls the compiler settings used when compiling C++ code.
# Note that CXXFLAGS is initially set to the value of CFLAGS. If you wish
# to add to CXXFLAGS value, "+=" must be used rather than "=". Using "="
@@ -71,6 +77,7 @@
#
# CFLAGS+= -msse3
# CXXFLAGS+= -msse3
+# CFLAGS.armv6+= -mfloat-abi=softfp
#
# MAKE_SHELL controls the shell used internally by make(1) to process the
# command scripts in makefiles. Three shells are supported, sh, ksh, and
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index 60cf2f6..6338924 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -262,3 +262,8 @@ CFLAGS += -G0
.if !defined(NO_CPU_CFLAGS)
CFLAGS += ${_CPUCFLAGS}
.endif
+
+# Add in any architecture-specific CFLAGS.
+# These come from make.conf or the command line or the environment.
+CFLAGS += ${CFLAGS.${MACHINE_ARCH}}
+CXXFLAGS += ${CXXFLAGS.${MACHINE_ARCH}}
OpenPOWER on IntegriCloud