From ad3b2df4d172eea2e0edfd61153133b25a7ed640 Mon Sep 17 00:00:00 2001
From: rbmj <rbmj@verizon.net>
Date: Wed, 30 May 2012 08:42:37 -0400
Subject: [PATCH 3/5] Make changes to gcov to allow compilation targeting
 vxworks.

gcc/gcov-io.c: add mode argument to open() on vxworks
libgcc/libgcov.c: fall back to single argument mkdir() on vxworks
---
 gcc/ChangeLog    |    5 +++++
 gcc/gcov-io.c    |    4 ++++
 libgcc/ChangeLog |    5 +++++
 libgcc/libgcov.c |    2 +-
 4 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71451d2..c362fc6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-30  Robert Mason  <rbmj@verizon.net>
     
+	* gcov-io.c (gcov_open):  VxWorks does not have variadic open(), so pass
+	in a mode argument (ignored for O_RDONLY) on that platform.
+
+2012-05-30  Robert Mason  <rbmj@verizon.net>
+    
 	* config/rs6000/vxworks.h: Fix bad macro SUBSUBTARGET_OVERRIDE_OPTIONS.
 
 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
index 37c1c3e..823067a 100644
--- a/gcc/gcov-io.c
+++ b/gcc/gcov-io.c
@@ -92,7 +92,11 @@ gcov_open (const char *name, int mode)
     {
       /* Read-only mode - acquire a read-lock.  */
       s_flock.l_type = F_RDLCK;
+#ifdef __VXWORKS__
+      fd = open (name, O_RDONLY, 0666);
+#else
       fd = open (name, O_RDONLY);
+#endif
     }
   else
     {
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 5c048f5..04a6653 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-30  Robert Mason  <rbmj@verizon.net>
+    
+    * libgcov.c (create_file_directory):  VxWorks does not have two-argument
+    mkdir, so fall back to the single-argument call on that platform.
+
 2012-05-25  Ian Lance Taylor  <iant@google.com>
 
 	* config/i386/morestack.S (__morestack_non_split): Check whether
diff --git a/libgcc/libgcov.c b/libgcc/libgcov.c
index 8ed8971..27117b4 100644
--- a/libgcc/libgcov.c
+++ b/libgcc/libgcov.c
@@ -133,7 +133,7 @@ create_file_directory (char *filename)
 
         /* Try to make directory if it doesn't already exist.  */
         if (access (filename, F_OK) == -1
-#ifdef TARGET_POSIX_IO
+#if defined(TARGET_POSIX_IO) && !defined(__VXWORKS__)
             && mkdir (filename, 0755) == -1
 #else
             && mkdir (filename) == -1
-- 
1.7.5.4

