From 2588b26e0e0374bccd928e2d102e81a9e334fc0b Mon Sep 17 00:00:00 2001 From: Robert Mason Date: Sat, 3 Nov 2012 15:53:28 +0000 Subject: [PATCH] final patch for enabling VxWorks From-SVN: r193124 --- ChangeLog | 5 +++ configure.ac | 38 ++++++++++++++------- gcc/ChangeLog | 4 +++ gcc/gcov-io.c | 3 +- libstdc++-v3/ChangeLog | 5 +++ libstdc++-v3/config/os/vxworks/os_defines.h | 6 ++++ 6 files changed, 47 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index ffce6913488..961340b9997 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-11-03 Robert Mason + + * configure.ac: add --disable-libstdcxx configure option + and handle defaulted state only for VxWorks, ARM-wince-pe and AVR. + 2012-10-30 Ganesh Gopalasubramanian * MAINTAINERS (Write After Approval): Add myself. diff --git a/configure.ac b/configure.ac index c6665a1f33a..a21cd8a5488 100644 --- a/configure.ac +++ b/configure.ac @@ -427,6 +427,15 @@ AC_ARG_ENABLE(libssp, ENABLE_LIBSSP=$enableval, ENABLE_LIBSSP=yes) +AC_ARG_ENABLE(libstdcxx, +AS_HELP_STRING([--disable-libstdcxx], + [do not build libstdc++-v3 directory]), +ENABLE_LIBSTDCXX=$enableval, +ENABLE_LIBSTDCXX=default) +[if test "${ENABLE_LIBSTDCXX}" = "no" ; then + noconfigdirs="$noconfigdirs libstdc++-v3" +fi] + # Save it here so that, even in case of --enable-libgcj, if the Java # front-end isn't enabled, we still get libgcj disabled. libgcj_saved=$libgcj @@ -562,19 +571,22 @@ case "${target}" in esac # Disable libstdc++-v3 for some systems. -case "${target}" in - *-*-vxworks*) - # VxWorks uses the Dinkumware C++ library. - noconfigdirs="$noconfigdirs target-libstdc++-v3" - ;; - arm*-wince-pe*) - # the C++ libraries don't build on top of CE's C libraries - noconfigdirs="$noconfigdirs target-libstdc++-v3" - ;; - avr-*-*) - noconfigdirs="$noconfigdirs target-libstdc++-v3" - ;; -esac +# Allow user to override this if they pass --enable-libstdc++-v3 +if test "${ENABLE_LIBSTDCXX}" = "default" ; then + case "${target}" in + *-*-vxworks*) + # VxWorks uses the Dinkumware C++ library. + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; + arm*-wince-pe*) + # the C++ libraries don't build on top of CE's C libraries + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; + avr-*-*) + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; + esac +fi # Disable Fortran for some systems. case "${target}" in diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0043200c12c..e3eb2f26754 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-11-03 Robert Mason + + * gcov-io.c (gcov_open): Add file mode to open call (need for VxWorks) + 2012-11-03 Sandra Loosemore * doc/extend.texi: Copy-edit to use present tense except when diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c index d64fb42c3c2..f5626542521 100644 --- a/gcc/gcov-io.c +++ b/gcc/gcov-io.c @@ -92,7 +92,8 @@ gcov_open (const char *name, int mode) { /* Read-only mode - acquire a read-lock. */ s_flock.l_type = F_RDLCK; - fd = open (name, O_RDONLY); + /* pass mode (ignored) for compatibility */ + fd = open (name, O_RDONLY, S_IRUSR | S_IWUSR); } else { diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 75a3e11a8e8..3ceefae51f7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2012-11-03 Robert Mason + + * config/os/vxworks/os_defines.h: + Keep vxWorks from defining min()/max() as macros + 2012-11-03 Jonathan Wakely * doc/html/*: Regenerate. diff --git a/libstdc++-v3/config/os/vxworks/os_defines.h b/libstdc++-v3/config/os/vxworks/os_defines.h index c66063e5311..93ad1d4b01f 100644 --- a/libstdc++-v3/config/os/vxworks/os_defines.h +++ b/libstdc++-v3/config/os/vxworks/os_defines.h @@ -33,4 +33,10 @@ // System-specific #define, typedefs, corrections, etc, go here. This // file will come before all others. +//Keep vxWorks from defining min()/max() as macros +#ifdef NOMINMAX +#undef NOMINMAX +#endif +#define NOMINMAX 1 + #endif