I think this is a good idea. It reduces the configuration options a bit and doesn't add any run time code. It barely adds any build time.
On Aug 9, 2016 10:11 PM, "Chris Johns" <chr...@rtems.org> wrote: > 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 >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel