Index: README.configure
===================================================================
--- README.configure	(revision aa8a8c726b7ab83024fae1d7d7c01c8eb464d694)
+++ README.configure	(revision e81ef51bf1826fe65cb75449ba2f6f1bc7899233)
@@ -24,5 +24,5 @@
 	--disable-tests
 	--disable-ka9q
-        --enable-cpp
+        --enable-cxx
         --enable-gcc28               (also use enable-libcdir when disabled)
         --enable-gmake-print-directory
@@ -43,5 +43,5 @@
 
 By default, the RTEMS support of C++ is disabled.  It can be enabled
-with the --enable-cpp option. If the rtems++ C++ library is installed
+with the --enable-cxx option. If the rtems++ C++ library is installed
 it will also be build.
 
Index: aclocal.m4
===================================================================
--- aclocal.m4	(revision aa8a8c726b7ab83024fae1d7d7c01c8eb464d694)
+++ aclocal.m4	(revision e81ef51bf1826fe65cb75449ba2f6f1bc7899233)
@@ -1,10 +1,5 @@
-dnl some macros for rtems host configuration checks
-dnl
-dnl Author: Ralf Corsepius (corsepiu@faw.uni-ulm.de), 97/11/29
-dnl 
-dnl Last Modified: 98/01/10
-dnl
-dnl  $Id$
-dnl
+dnl aclocal.m4 generated automatically by aclocal 1.2
+
+dnl $Id$
 
 dnl macro to detect mkdir
@@ -45,8 +40,277 @@
 ])
 
+
+dnl $Id$
+
+dnl canonicalize target name
+dnl NOTE: Most rtems targets do not fullfil autoconf's
+dnl target naming conventions "processor-vendor-os"
+dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
+dnl and we have to fix it for rtems ourselves 
+
+AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
+[AC_MSG_CHECKING(rtems target cpu)
+changequote(<<, >>)dnl
+target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
+changequote([, ])dnl
+AC_MSG_RESULT($target_cpu)
+])
+
+dnl
+dnl $Id$
+dnl 
+dnl Check for target gcc
+dnl
+dnl Adaptation of autoconf-2.12's AC_PROG_CC to rtems
+dnl
+dnl 98/02/10 Ralf Corsepius 	(corsepiu@faw.uni-ulm.de)
+dnl
+
+AC_DEFUN(RTEMS_PROG_CC,
+[
+AC_BEFORE([$0], [AC_PROG_CPP])dnl
+AC_BEFORE([$0], [AC_PROG_CC])dnl
+AC_CHECK_PROG(CC, gcc, gcc)
+if test -z "$CC"; then
+  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
+  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
+fi
+
+RTEMS_PROG_CC_WORKS
+AC_PROG_CC_GNU
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+dnl Check whether -g works, even if CFLAGS is set, in case the package
+dnl plays around with CFLAGS (such as to build both debugging and
+dnl normal versions of a library), tasteless as that idea is.
+  ac_test_CFLAGS="${CFLAGS+set}"
+  ac_save_CFLAGS="$CFLAGS"
+  CFLAGS=
+  AC_PROG_CC_G
+  if test "$ac_test_CFLAGS" = set; then
+    CFLAGS="$ac_save_CFLAGS"
+  elif test $ac_cv_prog_cc_g = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-O2"
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+CC_FOR_TARGET=$CC
+rtems_cv_prog_gcc=$ac_cv_prog_gcc
+rtems_cv_prog_cc_g=$ac_cv_prog_cc_g
+
+dnl restore initial values
+unset CC
+unset ac_cv_prog_gcc
+unset ac_cv_prog_cc_g
+unset ac_cv_prog_CC
+])
+
+
+dnl Almost identical to AC_PROG_CC_WORKS
+dnl added malloc to program fragment, because rtems has its own malloc
+dnl which is not available while bootstrapping rtems
+
+AC_DEFUN(RTEMS_PROG_CC_WORKS,
+[AC_MSG_CHECKING([whether the target C compiler ($CC $CFLAGS $LDFLAGS) works])
+AC_LANG_SAVE
+AC_LANG_C
+AC_TRY_COMPILER(
+[void *malloc() { return 0; } 
+ main(){return(0);}], 
+rtems_cv_prog_cc_works, rtems_cv_prog_cc_cross)
+AC_LANG_RESTORE
+AC_MSG_RESULT($rtems_cv_prog_cc_works)
+if test $rtems_cv_prog_cc_works = no; then
+  AC_MSG_ERROR([installation or configuration problem: target C compiler cannot create executables.])
+fi
+AC_MSG_CHECKING([whether the target C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
+AC_MSG_RESULT($rtems_cv_prog_cc_cross)
+])
+
+dnl
+dnl $Id$
+dnl
+dnl Check whether the target compiler accepts -specs
+dnl
+dnl 98/02/11 Ralf Corsepius 	corsepiu@faw.uni-ulm.de
+dnl
+
+AC_DEFUN(RTEMS_GCC_SPECS,
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
+[touch confspec
+echo 'void f(){}' >conftest.c
+if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
+  rtems_cv_gcc_specs=yes
+else
+  rtems_cv_gcc_specs=no
+fi
+rm -f confspec conftest*
+])])
+
+dnl
+dnl $Id$
+dnl
+dnl Check whether the target compiler accepts -pipe
+dnl
+dnl 98/02/11 Ralf Corsepius     corsepiu@faw.uni-ulm.de
+dnl
+
+AC_DEFUN(RTEMS_GCC_PIPE,
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
+[
+echo 'void f(){}' >conftest.c
+if test -z "`${CC_FOR_TARGET} --pipe -c conftest.c 2>&1`";then
+  rtems_cv_gcc_pipe=yes
+else
+  rtems_cv_gcc_pipe=no
+fi
+rm -f conftest*
+])])
+
+dnl
+dnl $Id$
+dnl 
+dnl Check for target g++
+dnl 
+dnl Adaptation of autoconf-2.12's AC_PROG_CXX to rtems
+dnl
+dnl 98/02/10 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
+dnl
+ 
+AC_DEFUN(RTEMS_PROG_CXX,
+[
+AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
+AC_BEFORE([$0], [AC_PROG_CXX])dnl
+AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
+
+RTEMS_PROG_CXX_WORKS
+AC_PROG_CXX_GNU
+
+if test $ac_cv_prog_gxx = yes; then
+  GXX=yes
+dnl Check whether -g works, even if CXXFLAGS is set, in case the package
+dnl plays around with CXXFLAGS (such as to build both debugging and
+dnl normal versions of a library), tasteless as that idea is.
+  ac_test_CXXFLAGS="${CXXFLAGS+set}"
+  ac_save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS=
+  AC_PROG_CXX_G
+  if test "$ac_test_CXXFLAGS" = set; then
+    CXXFLAGS="$ac_save_CXXFLAGS"
+  elif test $ac_cv_prog_cxx_g = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-O2"
+  fi
+else
+  GXX=
+  test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
+fi
+CXX_FOR_TARGET=$CXX
+
+dnl restore initial values
+unset CXX
+unset ac_cv_prog_gxx
+])
+
+
+dnl Almost identical to AC_PROG_CXX_WORKS
+dnl Additional handling of malloc
+dnl NOTE: using newlib with a native compiler is cross-compiling, indeed.
+AC_DEFUN(RTEMS_PROG_CXX_WORKS,
+[AC_MSG_CHECKING([whether the target C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+dnl this fails if rtems uses newlib, because rtems has its own malloc which
+dnl is not available at bootstrap
+AC_TRY_COMPILER(
+  [main(){return(0);}], 
+  rtems_cv_prog_cxx_works, rtems_cv_prog_cxx_cross)
+if test "$rtems_cv_prog_cxx_works" = "no"; then
+  dnl now retry with our own version of malloc
+  AC_TRY_COMPILER(
+    [extern "C" void *malloc(); 
+     void *malloc() { return (0); }
+     main(){return(0);}],
+    rtems_cv_prog_cxx_works, rtems_cv_prog_cxx_cross)
+fi
+AC_LANG_RESTORE
+AC_MSG_RESULT($rtems_cv_prog_cxx_works)
+if test $rtems_cv_prog_cxx_works = no; then
+  AC_MSG_ERROR([installation or configuration problem: target C++ compiler cannot create executables.])
+fi
+AC_MSG_CHECKING([whether the target C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
+AC_MSG_RESULT($rtems_cv_prog_cxx_cross)
+])
+
+dnl $Id$
+dnl
+dnl Set target tools
+dnl
+dnl 98/02/12 Ralf Corsepius	(corsepiu@faw.uni-ulm.de)
+dnl
+
+AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
+[AC_REQUIRE([RTEMS_PROG_CC])dnl
+if test "$rtems_cv_prog_gcc" = "yes" ; then
+  dnl We are using gcc, now ask it about its tools
+  dnl Necessary if gcc was configured to use the target's native tools
+  dnl or uses prefixes for gnutools (e.g. gas instead of as)
+  AR_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ar`
+  AS_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=as`
+  LD_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ld`
+  NM_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=nm`
+  RANLIB_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ranlib`
+fi
+
+dnl check whether the tools exist
+dnl FIXME: What shall be done if they don't exist?
+
+dnl NOTE: CC_FOR_TARGET should always be valid at this point, 
+dnl       cf. RTEMS_PROG_CC  
+AC_PATH_PROG(CC_FOR_TARGET,"$program_prefix"gcc,no)
+
+dnl FIXME: This may fail if the compiler has not been recognized as gcc
+dnl       and uses tools with different names
+AC_PATH_PROG(AR_FOR_TARGET,"$program_prefix"ar,no)
+AC_PATH_PROG(AS_FOR_TARGET,"$program_prefix"as,no)
+AC_PATH_PROG(NM_FOR_TARGET,"$program_prefix"nm,no)
+AC_PATH_PROG(LD_FOR_TARGET,"$program_prefix"ld,no)
+
+dnl NOTE: This is doubtful, but should not disturb all current rtems'
+dnl 	  targets (remark: solaris fakes ranlib!!)
+AC_PATH_PROG(RANLIB_FOR_TARGET,"$program_prefix"ranlib,no)
+
+dnl NOTE: These may not be available, if not using gnutools
+AC_PATH_PROG(OBJCOPY_FOR_TARGET,"$program_prefix"objcopy,no)
+AC_PATH_PROG(SIZE_FOR_TARGET,"$program_prefix"size,no)
+])
+
+dnl $Id$
+
+dnl RTEMS_CHECK_MAKEFILE(path)
+dnl Search for Makefile.in's within the directory starting
+dnl at path and append an entry for Makefile to global variable 
+dnl "makefiles" (from configure.in) for each Makefile.in found
+dnl 
+AC_DEFUN(RTEMS_CHECK_MAKEFILE,
+[RTEMS_CHECK_FILES_IN($1,Makefile,makefiles)
+])
+
+dnl $Id$
+
 dnl RTEMS_CHECK_FILES_IN(path,file,var)
 dnl path .. path relative to srcdir, where to start searching for files
 dnl file .. name of the files to search for
-dnl var  .. shell variable to append found files
+dnl var  .. shell variable to append files found
 AC_DEFUN(RTEMS_CHECK_FILES_IN,
 [
@@ -64,24 +328,3 @@
 ])
 
-dnl RTEMS_CHECK_MAKEFILE(path)
-dnl Search for Makefile.in's within the directory starting
-dnl at path and append an entry for Makefile to global variable 
-dnl "makefiles" (from configure.in) for each Makefile.in found
-dnl 
-AC_DEFUN(RTEMS_CHECK_MAKEFILE,
-[RTEMS_CHECK_FILES_IN($1,Makefile,makefiles)
-])
-
-dnl canonicalize target name
-dnl NOTE: Most rtems targets do not fullfil autoconf's
-dnl target naming conventions "processor-vendor-os"
-dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
-dnl and we have to fix it for rtems ourselves 
-
-AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
-[AC_MSG_CHECKING(rtems target cpu)
-changequote(<<, >>)dnl
-target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
-changequote([, ])dnl
-AC_MSG_RESULT($target_cpu)
-])
+
Index: c/src/make/compilers/gcc-target-default.cfg
===================================================================
--- c/src/make/compilers/gcc-target-default.cfg	(revision aa8a8c726b7ab83024fae1d7d7c01c8eb464d694)
+++ c/src/make/compilers/gcc-target-default.cfg	(revision e81ef51bf1826fe65cb75449ba2f6f1bc7899233)
@@ -159,18 +159,15 @@
 # NOTE: we override COMPILE.c
 #
-# NOTE: Remove -pipe if it causes you problems.  Using it can decrease
-#       compile time.
-#
 
 COMPILE.c=$(CC) $(CFLAGS) $(XCFLAGS) -c
 
 ${ARCH}/%.o: %.c
-	${COMPILE.c} -pipe -o $@ $<
+	${COMPILE.c} -o $@ $<
 
 ${ARCH}/%.o: %.cc
-	${COMPILE.c} -pipe -o $@ $<
+	${COMPILE.c} -o $@ $<
 
 ${ARCH}/%.o: %.S
-	${COMPILE.c} -pipe -DASM -o $@ $<
+	${COMPILE.c} -DASM -o $@ $<
 
 # strip out C++ style comments.
@@ -225,18 +222,4 @@
 endif
 
-
-# List (possibly empty) of required managers
-# We require:
-#    region  -- used by lib/libcsupport for malloc()
-#    ext     -- used by libc for libc reentrancy hooks
-
-MANAGERS_REQUIRED=region ext sem
-
-# Create a RTEMS executable based on MANAGERS which was set in
-#  app's Makefile
-
-MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS), $(MANAGER_LIST))
-MANAGERS_NOT_WANTED:=$(filter-out $(MANAGERS_REQUIRED), $(MANAGERS_NOT_WANTED))
-
 # spell out all the LINK_FILE's, rather than using -lbsp, so
 #  that $(LINK_FILES) can be a dependency
Index: make/compilers/gcc-portsw.cfg
===================================================================
--- make/compilers/gcc-portsw.cfg	(revision aa8a8c726b7ab83024fae1d7d7c01c8eb464d694)
+++ make/compilers/gcc-portsw.cfg	(revision e81ef51bf1826fe65cb75449ba2f6f1bc7899233)
@@ -229,16 +229,4 @@
 endif
 
-# List (possibly empty) of required managers
-# We require:
-#    region  -- used by lib/libcsupport for malloc()
-#    ext     -- used by libc for libc reentrancy hooks
-
-MANAGERS_REQUIRED=region ext sem
-
-# Create a RTEMS executable based on MANAGERS which was set in
-#  app's Makefile
-
-MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS), $(MANAGER_LIST))
-MANAGERS_NOT_WANTED:=$(filter-out $(MANAGERS_REQUIRED), $(MANAGERS_NOT_WANTED))
 
 # spell out all the LINK_FILE's, rather than using -lbsp, so
Index: make/compilers/gcc-target-default.cfg
===================================================================
--- make/compilers/gcc-target-default.cfg	(revision aa8a8c726b7ab83024fae1d7d7c01c8eb464d694)
+++ make/compilers/gcc-target-default.cfg	(revision e81ef51bf1826fe65cb75449ba2f6f1bc7899233)
@@ -159,18 +159,15 @@
 # NOTE: we override COMPILE.c
 #
-# NOTE: Remove -pipe if it causes you problems.  Using it can decrease
-#       compile time.
-#
 
 COMPILE.c=$(CC) $(CFLAGS) $(XCFLAGS) -c
 
 ${ARCH}/%.o: %.c
-	${COMPILE.c} -pipe -o $@ $<
+	${COMPILE.c} -o $@ $<
 
 ${ARCH}/%.o: %.cc
-	${COMPILE.c} -pipe -o $@ $<
+	${COMPILE.c} -o $@ $<
 
 ${ARCH}/%.o: %.S
-	${COMPILE.c} -pipe -DASM -o $@ $<
+	${COMPILE.c} -DASM -o $@ $<
 
 # strip out C++ style comments.
@@ -225,18 +222,4 @@
 endif
 
-
-# List (possibly empty) of required managers
-# We require:
-#    region  -- used by lib/libcsupport for malloc()
-#    ext     -- used by libc for libc reentrancy hooks
-
-MANAGERS_REQUIRED=region ext sem
-
-# Create a RTEMS executable based on MANAGERS which was set in
-#  app's Makefile
-
-MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS), $(MANAGER_LIST))
-MANAGERS_NOT_WANTED:=$(filter-out $(MANAGERS_REQUIRED), $(MANAGERS_NOT_WANTED))
-
 # spell out all the LINK_FILE's, rather than using -lbsp, so
 #  that $(LINK_FILES) can be a dependency
