summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2015-01-23 14:31:25 +1100
committerChris Johns <chrisj@rtems.org>2015-01-23 14:31:25 +1100
commitb31d5e2dd9e97790529feb1163a50fc75940570b (patch)
tree6601db190b5d531123991aee7b7866285da509dd
parentBuild rtems-tools for the host with a Cxc build. (diff)
downloadrtems-source-builder-b31d5e2dd9e97790529feb1163a50fc75940570b.tar.bz2
Fix C++ build support for cross-compiling RTEMS 3rd party packages.
-rw-r--r--rtems/config/rtems-bsp.cfg11
-rw-r--r--source-builder/defaults.mc9
2 files changed, 15 insertions, 5 deletions
diff --git a/rtems/config/rtems-bsp.cfg b/rtems/config/rtems-bsp.cfg
index e9669a3..3b24ec8 100644
--- a/rtems/config/rtems-bsp.cfg
+++ b/rtems/config/rtems-bsp.cfg
@@ -47,12 +47,17 @@
%define rtems_bsp_ldflags %{pkgconfig ldflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_libs %{pkgconfig libs %{_host}-%{rtems_bsp}}
+%if %{rtems_bsp_ccflags} == %{nil}
+ %define rtems_bsp_ccflags %{rtems_bsp_cflags}
+%endif
+
#
# Map to names used for cross compiling.
#
-%define host_cflags %{rtems_bsp_cflags}
-%define host_ldflags %{rtems_bsp_ldflags}
-%define host_libs %{rtems_bsp_libs}
+%define host_cflags %{rtems_bsp_cflags}
+%define host_cxxflags %{rtems_bsp_ccflags}
+%define host_ldflags %{rtems_bsp_ldflags}
+%define host_libs %{rtems_bsp_libs}
#
# Update the configure paths to be BSP specific.
diff --git a/source-builder/defaults.mc b/source-builder/defaults.mc
index 71683da..ce81c35 100644
--- a/source-builder/defaults.mc
+++ b/source-builder/defaults.mc
@@ -57,6 +57,7 @@ _uid: none, convert, '%(%{__id_u} -n)'
# flags and include paths to the tools. The host is the final platform
# the tools will run on and build is the host building the tools.
host_cflags: none, convert, '-O2 -pipe'
+host_cxxflags: none, convert, '-O2 -pipe'
host_includes: none, convert, ''
build_cflags: none, convert, '-O2 -pipe'
build_cxxflags: none, convert, '-O2 -pipe'
@@ -190,6 +191,7 @@ SB_SOURCE_DIR="%{_sourcedir}"
SB_BUILD_DIR="%{_builddir}"
# host == build, use build; host != build , host uses host and build uses build
SB_HOST_CFLAGS="%{host_cflags} %{host_includes}"
+SB_HOST_CXXFLAGS="%{host_cxxflags} %{host_includes}"
SB_HOST_LDFLAGS="%{?host_ldflags:%{host_ldflags}}%{?_tmproot:-L%{_tmproot}/${SB_PREFIX_CLEAN}/lib}"
SB_BUILD_CFLAGS="%{build_cflags} %{?_tmproot:-I%{_tmproot}/${SB_PREFIX_CLEAN}/include}"
SB_BUILD_CXXFLAGS="%{build_cxxflags} %{?_tmproot:-I%{_tmproot}/${SB_PREFIX_CLEAN}/include}"
@@ -199,7 +201,9 @@ SB_CXXFLAGS="${SB_BUILD_CXXFLAGS} %{build_includes}"
SB_ARCH="%{_arch}"
SB_OS="%{_os}"
export SB_SOURCE_DIR SB_BUILD_DIR SB_ARCH SB_OS
-export SB_HOST_CFLAGS SB_HOST_LDFLAGS SB_BUILD_CFLAGS SB_BUILD_CXXFLAGS SB_BUILD_LDFLAGS SB_CFLAGS SB_CXXFLAGS
+export SB_HOST_CFLAGS SB_HOST_CXXFLAGS SB_HOST_LDFLAGS
+export SB_BUILD_CFLAGS SB_BUILD_CXXFLAGS SB_BUILD_LDFLAGS
+export SB_CFLAGS SB_CXXFLAGS
# Documentation
SB_DOC_DIR="%{_docdir}"
export SB_DOC_DIR
@@ -304,6 +308,7 @@ if test "%{_build}" != "%{_host}" ; then
CC=$(echo "%{_host}-%{_host_cc}" | sed -e 's,-std=gnu99 ,,')
CXX=$(echo "%{_host}-%{_host_cxx}" | sed -e 's,-std=gnu99 ,,')
CFLAGS="${SB_HOST_CFLAGS}"
+ CXXFLAGS="${SB_HOST_CXXFLAGS}"
LDFLAGS="${SB_HOST_LDFLAGS}"
# Host
CFLAGS_FOR_HOST="${SB_HOST_CFLAGS}"
@@ -326,7 +331,7 @@ else
CC_FOR_BUILD=${CC}
CXX_FOR_BUILD=${CXX}
fi
-export CC CXX CFLAGS LDFLAGS
+export CC CXX CFLAGS CXXFLAGS LDFLAGS
export CC_FOR_HOST CXX_FOR_HOST CFLAGS_FOR_HOST CXXFLAGS_FOR_HOST LDFLAGS_FOR_HOST
export CC_FOR_BUILD CXX_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD'''