Pedro,

Some time ago, you suggested I replaced the GCOV_CROSS_PREFIX
environment variable approach by a gcc command line option.

Here's a proposed patch for that. Documentation (for the gcc/doc
directory) and ChangeLog are still missing. Also the old code is simply
#if'fed away, instead of deleting it.

What do you think ?

        Danny
-- 
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info
Index: toplev.h
===================================================================
--- toplev.h	(revision 888)
+++ toplev.h	(working copy)
@@ -132,6 +132,7 @@
 extern int flag_unswitch_loops;
 extern int flag_cprop_registers;
 extern int time_report;
+extern char *coverage_base;
 
 /* Things to do with target switches.  */
 extern void print_version (FILE *, const char *);
Index: opts.c
===================================================================
--- opts.c	(revision 888)
+++ opts.c	(working copy)
@@ -836,6 +836,10 @@
       fix_register (arg, 0, 0);
       break;
 
+    case OPT_fcoverage_base_:
+      coverage_base = xstrdup(arg);
+      break;
+
     case OPT_fdiagnostics_show_location_:
       if (!strcmp (arg, "once"))
 	diagnostic_prefixing_rule (global_dc) = DIAGNOSTICS_SHOW_PREFIX_ONCE;
Index: coverage.c
===================================================================
--- coverage.c	(revision 888)
+++ coverage.c	(working copy)
@@ -89,6 +89,7 @@
 static char *bbg_file_name;
 static unsigned bbg_file_opened;
 static int bbg_function_announced;
+char *coverage_base = NULL;
 
 /* Name of the count data file.  */
 static char *da_file_name;
@@ -776,7 +777,9 @@
   unsigned n_fns;
   const struct function_list *fn;
   tree string_type;
+#if USE_GCOV_PREFIX
   char *gcov_cross_prefix;
+#endif
 
   /* Count the number of active counters.  */
   for (n_ctr_types = 0, ix = 0; ix != GCOV_COUNTERS; ix++)
@@ -816,6 +819,14 @@
   /*
    * Additional environment variable for cross-development.
    */
+  if (coverage_base)
+    {
+      filename = concat (coverage_base, "/", da_file_name, NULL);
+      filename_len = strlen (filename);
+      filename_string = build_string (filename_len + 1, filename);
+    }
+  else
+#if USE_GCOV_PREFIX
   if (gcov_cross_prefix = getenv ("GCOV_CROSS_PREFIX"))
     {
       filename = concat (gcov_cross_prefix, "/", da_file_name, NULL);
@@ -823,6 +834,7 @@
       filename_string = build_string (filename_len + 1, filename);
     }
   else
+#endif
     {
       filename = getpwd ();
       filename = (filename && da_file_name[0] != '/'
Index: common.opt
===================================================================
--- common.opt	(revision 888)
+++ common.opt	(working copy)
@@ -309,6 +309,10 @@
 Common Report Var(flag_no_common,0)
 Do not put uninitialized globals in the common section
 
+fcoverage-base=
+Common Joined Var(flag_coverage_base)
+Directory to put coverage analysis files in, for cross-compiler environments
+
 fcprop-registers
 Common Report Var(flag_cprop_registers)
 Perform a register copy-propagation optimization pass
Index: libgcov.c
===================================================================
--- libgcov.c	(revision 888)
+++ libgcov.c	(working copy)
@@ -322,8 +322,8 @@
             wchar_t	x[256];
 	    int		l = strlen(gi_filename);
 	    l = (l < 256) ? l : 255;
-	    wcstombs(x, gi_filename, l);
-	    MessageBoxW(0, L"gcov_open", x, 0);
+	    mbstowcs(x, gi_filename, l);
+	    MessageBoxW(0, x, L"gcov_open couldn't open file", 0);
 	  }
 #endif
 	  if (!gcov_open (gi_filename))

Attachment: signature.asc
Description: This is a digitally signed message part

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to