We always build a C++ compiler and building with C++ does not effect RTEMS or the runtime. This patch always enabled the support. There is no need to manually enable it any more.
You can disable C++ with '--disable-cxx'. If an architecture does not have a C++ compiler support is automatically disabled. --- aclocal/enable-cxx.m4 | 4 ++-- c/src/aclocal/enable-cxx.m4 | 5 +++-- c/src/aclocal/prog-cxx.m4 | 37 +++++++++++++++++++++---------------- c/src/configure.ac | 2 ++ cpukit/configure.ac | 6 ++++-- testsuites/aclocal/enable-cxx.m4 | 5 +++-- testsuites/aclocal/prog-cxx.m4 | 39 ++++++++++++++++++++++----------------- testsuites/configure.ac | 6 +++++- 8 files changed, 62 insertions(+), 42 deletions(-) diff --git a/aclocal/enable-cxx.m4 b/aclocal/enable-cxx.m4 index ddd37dc..952f015 100644 --- a/aclocal/enable-cxx.m4 +++ b/aclocal/enable-cxx.m4 @@ -2,10 +2,10 @@ AC_DEFUN([RTEMS_ENABLE_CXX], [ AC_ARG_ENABLE(cxx, [AS_HELP_STRING([--enable-cxx], -[enable C++ support and build the rtems++ library])], +[enable C++ support])], [case "${enable_cxx}" in yes) RTEMS_HAS_CPLUSPLUS=yes ;; no) RTEMS_HAS_CPLUSPLUS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;; -esac], [RTEMS_HAS_CPLUSPLUS=no]) +esac], [RTEMS_HAS_CPLUSPLUS=yes]) ]) diff --git a/c/src/aclocal/enable-cxx.m4 b/c/src/aclocal/enable-cxx.m4 index 759d81b..952f015 100644 --- a/c/src/aclocal/enable-cxx.m4 +++ b/c/src/aclocal/enable-cxx.m4 @@ -1,10 +1,11 @@ AC_DEFUN([RTEMS_ENABLE_CXX], [ AC_ARG_ENABLE(cxx, -[AS_HELP_STRING(--enable-cxx,enable C++ support and build the rtems++ library)], +[AS_HELP_STRING([--enable-cxx], +[enable C++ support])], [case "${enable_cxx}" in yes) RTEMS_HAS_CPLUSPLUS=yes ;; no) RTEMS_HAS_CPLUSPLUS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;; -esac], [RTEMS_HAS_CPLUSPLUS=no]) +esac], [RTEMS_HAS_CPLUSPLUS=yes]) ]) diff --git a/c/src/aclocal/prog-cxx.m4 b/c/src/aclocal/prog-cxx.m4 index 957a595..66c986c 100644 --- a/c/src/aclocal/prog-cxx.m4 +++ b/c/src/aclocal/prog-cxx.m4 @@ -1,6 +1,6 @@ -dnl +dnl dnl Check for target g++ -dnl +dnl AC_DEFUN([RTEMS_PROG_CXX_FOR_TARGET], [ @@ -18,21 +18,26 @@ fi RTEMS_CHECK_TOOL(CXX,g++) if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then -dnl Only accept g++ -dnl NOTE: This might be too restrictive -test -z "$CXX" \ - && AC_MSG_ERROR([no acceptable c++ found in \$PATH]) -AC_PROG_CXX -AC_PROG_CXXCPP - - if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then - AC_MSG_ERROR([***] - [Inconsistency in compiler configuration:] - [Target C compiler and target C++ compiler] - [must both either be cross compilers or native compilers]) + dnl Only accept g++ + dnl NOTE: This might be too restrictive + if test -z "$CXX"; + then + RTEMS_HAS_CPLUSPLUS=no + HAS_CPLUSPLUS=no + ## Work-around to a bug in automake + AM_CONDITIONAL([am__fastdepCXX],[false]) + else + AC_PROG_CXX + AC_PROG_CXXCPP + if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then + AC_MSG_ERROR([***] + [Inconsistency in compiler configuration:] + [Target C compiler and target C++ compiler] + [must both either be cross compilers or native compilers]) + fi fi else -## Work-around to a bug in automake -AM_CONDITIONAL([am__fastdepCXX],[false]) + ## Work-around to a bug in automake + AM_CONDITIONAL([am__fastdepCXX],[false]) fi ]) diff --git a/c/src/configure.ac b/c/src/configure.ac index f0d482c..6b34eb5 100644 --- a/c/src/configure.ac +++ b/c/src/configure.ac @@ -16,6 +16,7 @@ AM_MAINTAINER_MODE RTEMS_ENABLE_MULTILIB RTEMS_ENABLE_MULTIPROCESSING +RTEMS_ENABLE_CXX RTEMS_ENV_RTEMSBSP RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP) @@ -93,6 +94,7 @@ rtems_cv_CFLAGS_set="${CFLAGS+set}" CFLAGS="${CFLAGS-${CPU_CFLAGS} ${CFLAGS_OPTIMIZE_V}}" RTEMS_PROG_CC_FOR_TARGET +RTEMS_PROG_CXX_FOR_TARGET AM_PROG_CC_C_O RTEMS_PROG_CCAS RTEMS_CANONICALIZE_TOOLS diff --git a/cpukit/configure.ac b/cpukit/configure.ac index 054e60e..136630b 100644 --- a/cpukit/configure.ac +++ b/cpukit/configure.ac @@ -13,6 +13,7 @@ AM_MAINTAINER_MODE RTEMS_ENABLE_MULTILIB RTEMS_ENABLE_MULTIPROCESSING RTEMS_ENABLE_POSIX +RTEMS_ENABLE_CXX RTEMS_ENABLE_RTEMS_DEBUG RTEMS_ENABLE_NETWORKING RTEMS_ENABLE_PARAVIRT @@ -31,9 +32,10 @@ else fi RTEMS_PROG_CC_FOR_TARGET -RTEMS_PROG_CCAS -RTEMS_CANONICALIZE_TOOLS +RTEMS_PROG_CXX_FOR_TARGET AM_PROG_CC_C_O +RTEMS_CANONICALIZE_TOOLS +RTEMS_PROG_CCAS AC_PROG_RANLIB RTEMS_CHECK_NEWLIB diff --git a/testsuites/aclocal/enable-cxx.m4 b/testsuites/aclocal/enable-cxx.m4 index 759d81b..952f015 100644 --- a/testsuites/aclocal/enable-cxx.m4 +++ b/testsuites/aclocal/enable-cxx.m4 @@ -1,10 +1,11 @@ AC_DEFUN([RTEMS_ENABLE_CXX], [ AC_ARG_ENABLE(cxx, -[AS_HELP_STRING(--enable-cxx,enable C++ support and build the rtems++ library)], +[AS_HELP_STRING([--enable-cxx], +[enable C++ support])], [case "${enable_cxx}" in yes) RTEMS_HAS_CPLUSPLUS=yes ;; no) RTEMS_HAS_CPLUSPLUS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;; -esac], [RTEMS_HAS_CPLUSPLUS=no]) +esac], [RTEMS_HAS_CPLUSPLUS=yes]) ]) diff --git a/testsuites/aclocal/prog-cxx.m4 b/testsuites/aclocal/prog-cxx.m4 index c71bac9..91f2b7f 100644 --- a/testsuites/aclocal/prog-cxx.m4 +++ b/testsuites/aclocal/prog-cxx.m4 @@ -1,6 +1,6 @@ -dnl +dnl dnl Check for target g++ -dnl +dnl AC_DEFUN([RTEMS_PROG_CXX_FOR_TARGET], [ @@ -9,7 +9,7 @@ AC_REQUIRE([RTEMS_ENABLE_CXX]) RTEMS_CHECK_CPUOPTS([RTEMS_SMP]) # If CXXFLAGS is not set, default to CFLAGS -if test x"$rtems_cv_RTEMS_SMP" = x"yes" ; then +if test x"$rtems_cv_HAS_SMP" = x"yes" ; then CXXFLAGS=${CXXFLAGS-${CFLAGS} -std=gnu++11} else CXXFLAGS=${CXXFLAGS-${CFLAGS}} @@ -18,21 +18,26 @@ fi RTEMS_CHECK_TOOL(CXX,g++) if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then -dnl Only accept g++ -dnl NOTE: This might be too restrictive -test -z "$CXX" \ - && AC_MSG_ERROR([no acceptable c++ found in \$PATH]) -AC_PROG_CXX -AC_PROG_CXXCPP - - if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then - AC_MSG_ERROR([***] - [Inconsistency in compiler configuration:] - [Target C compiler and target C++ compiler] - [must both either be cross compilers or native compilers]) + dnl Only accept g++ + dnl NOTE: This might be too restrictive + if test -z "$CXX"; + then + RTEMS_HAS_CPLUSPLUS=no + HAS_CPLUSPLUS=no + ## Work-around to a bug in automake + AM_CONDITIONAL([am__fastdepCXX],[false]) + else + AC_PROG_CXX + AC_PROG_CXXCPP + if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then + AC_MSG_ERROR([***] + [Inconsistency in compiler configuration:] + [Target C compiler and target C++ compiler] + [must both either be cross compilers or native compilers]) + fi fi else -## Work-around to a bug in automake -AM_CONDITIONAL([am__fastdepCXX],[false]) + ## Work-around to a bug in automake + AM_CONDITIONAL([am__fastdepCXX],[false]) fi ]) diff --git a/testsuites/configure.ac b/testsuites/configure.ac index 963e05b..086f636 100644 --- a/testsuites/configure.ac +++ b/testsuites/configure.ac @@ -17,8 +17,12 @@ RTEMS_ENV_RTEMSBSP RTEMS_PROJECT_ROOT +RTEMS_PROG_CC_FOR_TARGET +RTEMS_PROG_CXX_FOR_TARGET +RTEMS_CANONICALIZE_TOOLS +AM_PROG_CC_C_O + RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP) -RTEMS_PROG_CC RTEMS_CHECK_CPUOPTS([RTEMS_POSIX_API]) RTEMS_CHECK_CPUOPTS([RTEMS_MULTIPROCESSING]) -- 2.4.6 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel