Hello Everyone,
I have ten patches which are approved or obvious but waiting on commit,
each of which is attached to this email. Feel free to consider this a
ping, HOWEVER, they are rebased onto the latest trunk so they're no
longer stale. Additionally, I updated the commit messages and with
complete proposed changelog entries. They all (inside the patch file)
have a link to their approval message and the original proposal message.
Note that ANY patch that touches fixincludes has a dependency on the
first patch (0001...), as fixincludes WILL NOT RUN without this patch on
a vxworks platform.
Sorry for the long latency period but I did not have access to a
computer for a substantial period of time over the summer. I've just
been able to get everything back up and running.
--
Robert Mason
>From 991c277c1be41dff96b474a1e8bb9d297042ac70 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Wed, 30 May 2012 08:16:57 -0400
Subject: [PATCH 01/10] Add ability to skip the machine_name fixincludes fix.
On some platforms, machine_name is overzealous, or even breaks things.
This patch adds the functionality to skip the machine_name 'fix' by
giving it an empty macro list.
It also removes vxworks from the list of no-op fix platforms so that
fixincludes will run on that platform (it needs it).
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00383.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[gcc]
configure.ac: Add target-based selection of new exported
variable skip_machine_name_fix
configure: Regenerate
Makefile.in: add check for SKIP_MACHINE_NAME_FIX
[fixincludes]
mkfixinc.sh: Remove vxworks from the list of no-op
fixincludes platforms as it needs some fixes
---
fixincludes/mkfixinc.sh | 1 -
gcc/Makefile.in | 15 +++++++++++----
gcc/configure.ac | 14 ++++++++++++++
3 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/fixincludes/mkfixinc.sh b/fixincludes/mkfixinc.sh
index 89e8ab7..6653fed 100755
--- a/fixincludes/mkfixinc.sh
+++ b/fixincludes/mkfixinc.sh
@@ -15,7 +15,6 @@ case $machine in
i?86-*-mingw32* | \
x86_64-*-mingw32* | \
i?86-*-interix* | \
- *-*-vxworks* | \
powerpc-*-eabisim* | \
powerpc-*-eabi* | \
powerpc-*-rtems* | \
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index dddffb6..31b36eb 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -237,6 +237,9 @@ LINKER = $(CC)
LINKER_FLAGS = $(CFLAGS)
endif
+# Whether or not to run the machine_name fixincludes fix
+SKIP_MACHINE_NAME_FIX = @skip_machine_name_fix@
+
# -------------------------------------------
# Programs which operate on the build machine
# -------------------------------------------
@@ -4045,10 +4048,14 @@ install-gcc-tooldir:
macro_list: s-macro_list; @true
s-macro_list : $(GCC_PASSES)
- echo | $(GCC_FOR_TARGET) -E -dM - | \
- sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
- -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
- sort -u > tmp-macro_list
+ @if test "$(SKIP_MACHINE_NAME_FIX)" != "yes" ; then \
+ echo | $(GCC_FOR_TARGET) -E -dM - | \
+ sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
+ -e 's/^#define
\(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
+ sort -u > tmp-macro_list ; \
+ else \
+ echo > tmp-macro_list ; \
+ fi
$(SHELL) $(srcdir)/../move-if-change tmp-macro_list macro_list
$(STAMP) s-macro_list
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 7042c91..f5ff61c 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5121,6 +5121,20 @@ if test x"${LINKER_HASH_STYLE}" != x; then
[The linker hash style])
fi
+# Check whether to enable the fixincludes machine_name hack on this platform
+case "${target}" in
+ *-*-vxworks*)
+ skip_machine_name_fix="yes"
+ ;;
+ *)
+ # Note that some platforms have fixincludes disabled by default so
+ # this will make no difference
+ skip_machine_name_fix="no"
+ ;;
+esac
+AC_SUBST(skip_machine_name_fix)
+
+
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
--
1.7.10.4
>From 5dd13cf6ae3cc76df8e51cbabf9ac6d7a879b880 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Mon, 4 Jun 2012 13:18:10 -0400
Subject: [PATCH 02/10] Added assert fixinclude hack for VxWorks.
VxWorks's assert.h relies on adjacent string tokens being joined,
and uses macros for some of the strings (e.g. __FILE__). However,
it does not put a space after the end quote and before the macro,
so instead of replacing the macro, gcc >= 4.7.x thinks it's a
user-defined literal token, and since the lookup obviously fails,
compilation of libstdc++ dies.
This patch just replaces the assert.h header with another one that
will work. It preserves the same format, just changes the spacing.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00385.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[fixincludes]
inclhack.def (AAB_vxworks_assert): Added fix.
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 82792af..a9d582d 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -354,6 +354,46 @@ fix = {
_EndOfHeader_;
};
+/*
+ * Fix assert.h on VxWorks:
+ */
+fix = {
+ hackname = AAB_vxworks_assert;
+ files = assert.h;
+ mach = "*-*-vxworks*";
+
+ replace = <<- _EndOfHeader_
+ #ifndef _ASSERT_H
+ #define _ASSERT_H
+
+ #ifdef assert
+ #undef assert
+ #endif
+
+ #if defined(__STDC__) || defined(__cplusplus)
+ extern void __assert (const char*);
+ #else
+ extern void __assert ();
+ #endif
+
+ #ifdef NDEBUG
+ #define assert(ign) ((void)0)
+ #else
+
+ #define ASSERT_STRINGIFY(str) ASSERT_STRINGIFY_HELPER(str)
+ #define ASSERT_STRINGIFY_HELPER(str) #str
+
+ #define assert(test) ((void) \
+ ((test) ? ((void)0) : \
+ __assert("Assertion failed: " ASSERT_STRINGIFY(test) ", file " \
+ __FILE__ ", line " ASSERT_STRINGIFY(__LINE__) "\n")))
+
+ #endif
+
+ #endif
+ _EndOfHeader_;
+};
+
/*
* complex.h on AIX 5 and AIX 6 define _Complex_I and I in terms of __I,
--
1.7.10.4
>From a01e0e159dfc313e5fa544fa45b31093982928f4 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Mon, 4 Jun 2012 14:16:26 -0400
Subject: [PATCH 03/10] Add hack for ioctl() on VxWorks.
ioctl() is supposed to be variadic, but VxWorks only has a three
argument version with the third argument of type int. This messes
up when the third argument is not implicitly convertible to int.
This adds a macro which wraps around ioctl() and explicitly casts
the third argument to an int. This way, the most common use case
of ioctl (with a const char * for the third argument) will compile
in C++, where pointers must be explicitly casted to int.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00389.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[fixincludes]
inclhack.def (vxworks_ioctl_macro): Added fix
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index a9d582d..470b569 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -4411,6 +4411,22 @@ fix = {
"#endif /* __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__ */\n";
};
+/*
+ * Wrap VxWorks ioctl to keep everything pretty
+ */
+fix = {
+ hackname = vxworks_ioctl_macro;
+ files = ioLib.h;
+ mach = "*-*-vxworks*";
+
+ c_fix = format;
+ c_fix_arg = "%0\n"
+ "#define ioctl(fd, func, arg) ((ioctl)((fd), (func),
((int)(arg))))\n";
+ c_fix_arg = "extern[\t ]+int[\t ]+ioctl[\t ]*\([\t
,[:alnum:]]\);";
+
+ test_text = "extern int ioctl ( int asdf1234, int jkl , int
qwerty ) ;";
+};
+
/*
* Fix VxWorks <time.h> to not require including <vxTypes.h>.
--
1.7.10.4
>From d079e0e0b6ccc07af1bee4615df8ab1861694a14 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Sat, 23 Jun 2012 17:38:41 -0400
Subject: [PATCH 04/10] Added vxworks_mkdir_macro fix
This adds a macro to POSIX-ify VxWorks' mkdir() function by
including a macro that wraps the function and takes an (ignored,
but still evaluated) mode argument.
When combined with another patch this patch resolves 53462
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg01548.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg01591.html
Changes:
[fixincludes]
inclhack.def (vxworks_mkdir_macro): add hack
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 470b569..0970abf 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -4427,6 +4427,27 @@ fix = {
test_text = "extern int ioctl ( int asdf1234, int jkl , int
qwerty ) ;";
};
+/*
+ * Wrap VxWorks mkdir to be posix compliant
+ */
+fix = {
+ hackname = vxworks_mkdir_macro;
+ files = sys/stat.h;
+ mach = "*-*-vxworks*";
+
+ c_fix = format;
+ c_fix_arg = "%0\n"
+ "#ifdef IN_GCC\n"
+ "#define mkdir(dir, mode) ((mode), (mkdir)(dir))\n"
+ "#endif\n";
+ c_fix_arg = "extern[\t ]+STATUS[\t ]+mkdir[\t ]*"
+ "\\([\t ]*const[\t ]+char[\t ]*\\*[\t ]*" /*
arg type */
+ "(|[_[:alpha:]][_[:alnum:]]*)" /* arg name
(optional) */
+ "\\)[\t ]*;";
+
+ test_text = "extern STATUS mkdir (const char * _qwerty) ;";
+};
+
/*
* Fix VxWorks <time.h> to not require including <vxTypes.h>.
--
1.7.10.4
>From 405f4b08e8362df1e2ebe4ce6ac9b0bdc0a39496 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Mon, 4 Jun 2012 14:07:32 -0400
Subject: [PATCH 05/10] Add fix to prevent inclusion of regs.h on VxWorks.
VxWorks has it's own regs.h that conflicts with GCC's regs.h, so
just make any replace any references to regs.h in VxWorks with
references to arch/../regs.h, which includes the VxWorks header,
not GCC's header.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00388.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[fixincludes]
inclhack.def (vxworks_regs): Added fix
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 0970abf..f602d27 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -4481,6 +4481,20 @@ fix = {
"# define\t__INCstath <sys/stat.h>";
};
+/*
+ * Make it so VxWorks does not include gcc/regs.h accidentally
+ */
+fix = {
+ hackname = vxworks_regs;
+ mach = "*-*-vxworks*";
+
+ select = "#[\t ]*include[\t ]+<regs.h>";
+ c_fix = format;
+ c_fix_arg = "#include <arch/../regs.h>";
+
+ test_text = "#include <regs.h>\n";
+};
+
/*
* Another bad dependency in VxWorks 5.2 <time.h>.
--
1.7.10.4
>From 540f5544add5b3cdc73c47f624fbacea7c9e55e5 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Mon, 4 Jun 2012 13:26:57 -0400
Subject: [PATCH 06/10] Add stdint.h wrapper for VxWorks.
Vxworks stdint.h doesn't have all the typedefs needed for standards
compliance, so add a hack that adds all of the needed typedefs to be
fully compliant to the standard. Fixes broken libstdc++.
There was additional discussion of adding the necessary macros to get
gcc to have built-in recognition of the types, but I could not get that
to work. That is also non-essential to this patch, which is primarily
to fix a bug caused by relying on types in stdint.h that vxworks does
not define.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00386.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[fixincludes]
inclhack.def (AAB_vxworks_stdint): Added fix
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index f602d27..67a6eb9 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -396,6 +396,50 @@ fix = {
/*
+ * Make VxWorks stdint.h a bit more compliant - add typedefs
+ */
+fix = {
+ hackname = AAB_vxworks_stdint;
+ files = stdint.h;
+ mach = "*-*-vxworks*";
+
+ replace = <<- _EndOfHeader_
+ #ifndef _STDINT_H
+ #define _STDINT_H
+ /* get int*_t, uint*_t */
+ #include <types/vxTypes.h>
+
+ typedef long intptr_t;
+ typedef unsigned long uintptr_t;
+
+ typedef int64_t intmax_t;
+ typedef uint64_t uintmax_t;
+
+ typedef int8_t int_least8_t;
+ typedef int16_t int_least16_t;
+ typedef int32_t int_least32_t;
+ typedef int64_t int_least64_t;
+
+ typedef uint8_t uint_least8_t;
+ typedef uint16_t uint_least16_t;
+ typedef uint32_t uint_least32_t;
+ typedef uint64_t uint_least64_t;
+
+ typedef int8_t int_fast8_t;
+ typedef int int_fast16_t;
+ typedef int32_t int_fast32_t;
+ typedef int64_t int_fast64_t;
+
+ typedef uint8_t uint_fast8_t;
+ typedef unsigned int uint_fast16_t;
+ typedef uint32_t uint_fast32_t;
+ typedef uint64_t uint_fast64_t;
+ #endif
+ _EndOfHeader_;
+};
+
+
+/*
* complex.h on AIX 5 and AIX 6 define _Complex_I and I in terms of __I,
* which only is provided by AIX xlc C99.
*/
--
1.7.10.4
>From 08d51c3fccff09ea10fcbdf649ac536f2199b82b Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Mon, 4 Jun 2012 14:02:08 -0400
Subject: [PATCH 07/10] Add unistd.h wrapper for VxWorks.
On VxWorks, unistd.h doesn't define everything it should, like
read/write, etc. This wrapper adds the things it should define
so everything can be compliant and compile correctly without
manual modification.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00387.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[fixincludes]
inclhack.def (AAB_vxworks_unistd): Added fix
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 67a6eb9..9df216e 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -438,6 +438,32 @@ fix = {
_EndOfHeader_;
};
+/*
+ * This hack makes makes unistd.h more POSIX-compliant on VxWorks
+ */
+fix = {
+ hackname = AAB_vxworks_unistd;
+ files = unistd.h;
+ mach = "*-*-vxworks*";
+
+ replace = <<- _EndOfHeader_
+ #ifndef _UNISTD_H
+ #define _UNISTD_H
+ #include_next <unistd.h>
+ #include <ioLib.h>
+ #ifndef STDIN_FILENO
+ #define STDIN_FILENO 0
+ #endif
+ #ifndef STDOUT_FILENO
+ #define STDOUT_FILENO 1
+ #endif
+ #ifndef STDERR_FILENO
+ #define STDERR_FILENO 2
+ #endif
+ #endif /* _UNISTD_H */
+ _EndOfHeader_;
+};
+
/*
* complex.h on AIX 5 and AIX 6 define _Complex_I and I in terms of __I,
--
1.7.10.4
>From e753fd1a11f65215e5838ebb5cfefe5dcc24b2c5 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Mon, 4 Jun 2012 14:21:37 -0400
Subject: [PATCH 08/10] Add fix to make write() const correct on VxWorks
VxWorks' write() takes its second argument as non-const, so the
compiler complains if one tries to pass a const pointer to it.
This simply changes the prototype to say it is const so everything
works. I believe that the prototype is non-const for backwards
compatibility with old verisons of vxworks, but these versions are
not supported by modern GCC, so causing potential bugs on those
platforms is a non-issue. Modern vxworks will not modify the string
passed to it, so just changing the prototype will work silently.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00390.html
Approved by Nathan Sidwell:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00549.html
Approved by Bruce Korb: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00552.html
Changes:
[fixincludes]
inclhack.def (vxworks_write_const): Added fix
fixincl.x: Regenerate
---
fixincludes/inclhack.def | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 9df216e..e5dcd36 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -4592,6 +4592,23 @@ fix = {
"#define VOIDFUNCPTR (void(*)())";
};
+/*
+ * This hack makes write const-correct on VxWorks
+ */
+fix = {
+ hackname = vxworks_write_const;
+ files = ioLib.h;
+ mach = "*-*-vxworks*";
+
+ c_fix = format;
+ c_fix_arg = "extern int write (int, const char*, size_t);";
+ c_fix_arg = "extern[\t ]+int[\t ]+write[\t ]*\("
+ "[\t ]*int[\t ]*,"
+ "[\t ]*char[\t ]*\*[\t ]*,"
+ "[\t ]*size_t[\t ]*\)[\t ]*;";
+
+ test_text = "extern int write ( int , char * , size_t ) ;";
+};
/*
* There are several name conflicts with C++ reserved words in X11 header
--
1.7.10.4
>From b1d4095c17f04e62386cddddf69e4f43828c5caf Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Tue, 22 May 2012 16:32:02 -0400
Subject: [PATCH 09/10] Added --enable-libstdc++-v3 option.
This patch allows the user to force enable/disable building of
libstdc++-v3 with a --enable-libstdc++-v3 option to be congruent
with the other runtime library options.
The side effect of this, and the main motivation for this patch, is
to allow the user to force compilation of libstdc++-v3 for targets
that do not currently enable building libstdc++-v3 by default. The
configure-time override is useful when trying to override the stock
runtime library on embedded systems that have their own C++ library.
Please note that although this is a patch that pertains to libstdc++-v3,
it is a patch over top-level configure, NOT libstdc++-v3/configure.
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01525.html
Approved by Paolo Bonzini:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00585.html
Changes:
configure.ac: add --enable-libstdc++-v3 option
configure: regenerate
---
configure.ac | 38 +++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)
diff --git a/configure.ac b/configure.ac
index 27692b4..f8d9c50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -426,6 +426,15 @@ AC_ARG_ENABLE(libssp,
ENABLE_LIBSSP=$enableval,
ENABLE_LIBSSP=yes)
+AC_ARG_ENABLE(libstdc++-v3,
+AS_HELP_STRING([--disable-libstdc++-v3],
+ [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
@@ -545,19 +554,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
--
1.7.10.4
>From 9714994a8199842879f354e6ab159ec250b8aef7 Mon Sep 17 00:00:00 2001
From: rbmj <r...@verizon.net>
Date: Wed, 22 Aug 2012 17:29:39 -0400
Subject: [PATCH 10/10] Make open() call more compatible in gcc/gcov-io.c
In gcc/gcov-io.c, the call to open() only has two arguments. This
is fine, as long as the system open() is standards compliant.
However, on at least one system (vxworks real time processes),
open() is a non-variadic function, so the call fails. This adds
a third argument passed unconditionally to open for compatibility
with non-variadic open(). On systems with variadic open(), the
extra argument should just be ignored anyway.
When combined with one other patch this patch resolves 53264
Proposed by Robert Mason:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg01508.html
Approved by None (Obvious)
Changes:
[gcc]
gcov-io.c (gcov_open): Pass mode to open() unconditionally
---
gcc/gcov-io.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
index 37c1c3e..28ed52f 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
{
--
1.7.10.4