mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 05:37:54 +00:00
parent
61140380ee
commit
720919bc14
@ -5,6 +5,7 @@ GCOV_DIR := $(GCOV_PORT_DIR)/src/gcov
|
||||
SRC_CC = diagnostic.cc \
|
||||
diagnostic-color.cc \
|
||||
diagnostic-show-locus.cc \
|
||||
edit-context.cc \
|
||||
ggc-none.cc \
|
||||
hash-table.cc \
|
||||
input.cc \
|
||||
|
@ -11,13 +11,18 @@ SRC_C = argv.c \
|
||||
fopen_unlocked.c \
|
||||
hashtab.c \
|
||||
lbasename.c \
|
||||
md5.c \
|
||||
obstack.c \
|
||||
rust-demangle.c \
|
||||
safe-ctype.c \
|
||||
splay-tree.c \
|
||||
vprintf-support.c \
|
||||
xexit.c \
|
||||
xmalloc.c \
|
||||
xmemdup.c \
|
||||
xstrdup.c \
|
||||
xstrerror.c \
|
||||
xstrndup.c \
|
||||
xvasprintf.c
|
||||
|
||||
CC_OPT += -DHAVE_CONFIG_H
|
||||
|
@ -1 +1 @@
|
||||
d990698e760e811ad4ac174d07c0bde6de48db77
|
||||
67d83ba99db93c0e67eda26b33e167aecf48d60d
|
||||
|
@ -1,18 +1,19 @@
|
||||
LICENSE := GPLv2
|
||||
VERSION := 6.3.0
|
||||
VERSION := 8.3.0
|
||||
DOWNLOADS := gcov.archive generated.git
|
||||
|
||||
URL(gcov) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.bz2
|
||||
SHA(gcov) := f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
|
||||
URL(gcov) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
|
||||
SHA(gcov) := 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
|
||||
DIR(gcov) := src/gcov
|
||||
SIG(gcov) := ${URL(gcov)}
|
||||
KEY(gcov) := GNU
|
||||
|
||||
URL(generated) := https://github.com/cproc/genode-generated.git
|
||||
REV(generated) := c0b4333a7df8de45036506b9542b57349796775d
|
||||
REV(generated) := 21d621a326ac3f074647c0555144d1638ee495a8
|
||||
DIR(generated) := include
|
||||
|
||||
TAR_OPT(gcov) := gcc-$(VERSION)/gcc/coretypes.h \
|
||||
TAR_OPT(gcov) := gcc-$(VERSION)/gcc/color-macros.h \
|
||||
gcc-$(VERSION)/gcc/coretypes.h \
|
||||
gcc-$(VERSION)/gcc/defaults.h \
|
||||
gcc-$(VERSION)/gcc/diagnostic.c \
|
||||
gcc-$(VERSION)/gcc/diagnostic-color.c \
|
||||
@ -22,8 +23,12 @@ TAR_OPT(gcov) := gcc-$(VERSION)/gcc/coretypes.h \
|
||||
gcc-$(VERSION)/gcc/diagnostic.h \
|
||||
gcc-$(VERSION)/gcc/diagnostic-show-locus.c \
|
||||
gcc-$(VERSION)/gcc/double-int.h \
|
||||
gcc-$(VERSION)/gcc/dumpfile.h \
|
||||
gcc-$(VERSION)/gcc/edit-context.h \
|
||||
gcc-$(VERSION)/gcc/edit-context.c \
|
||||
gcc-$(VERSION)/gcc/fixed-value.h \
|
||||
gcc-$(VERSION)/gcc/flag-types.h \
|
||||
gcc-$(VERSION)/gcc/gcc-rich-location.h \
|
||||
gcc-$(VERSION)/gcc/gcov.c \
|
||||
gcc-$(VERSION)/gcc/gcov-counter.def \
|
||||
gcc-$(VERSION)/gcc/gcov-io.c \
|
||||
@ -49,13 +54,18 @@ TAR_OPT(gcov) := gcc-$(VERSION)/gcc/coretypes.h \
|
||||
gcc-$(VERSION)/gcc/mem-stats.h \
|
||||
gcc-$(VERSION)/gcc/mem-stats-traits.h \
|
||||
gcc-$(VERSION)/gcc/mode-classes.def \
|
||||
gcc-$(VERSION)/gcc/poly-int.h \
|
||||
gcc-$(VERSION)/gcc/poly-int-types.h \
|
||||
gcc-$(VERSION)/gcc/pretty-print.c \
|
||||
gcc-$(VERSION)/gcc/pretty-print.h \
|
||||
gcc-$(VERSION)/gcc/real.h \
|
||||
gcc-$(VERSION)/gcc/selftest.h \
|
||||
gcc-$(VERSION)/gcc/selftest-diagnostic.h \
|
||||
gcc-$(VERSION)/gcc/signop.h \
|
||||
gcc-$(VERSION)/gcc/statistics.h \
|
||||
gcc-$(VERSION)/gcc/system.h \
|
||||
gcc-$(VERSION)/gcc/tsystem.h \
|
||||
gcc-$(VERSION)/gcc/typed-splay-tree.h \
|
||||
gcc-$(VERSION)/gcc/vec.c \
|
||||
gcc-$(VERSION)/gcc/vec.h \
|
||||
gcc-$(VERSION)/gcc/version.c \
|
||||
@ -68,8 +78,8 @@ TAR_OPT(gcov) := gcc-$(VERSION)/gcc/coretypes.h \
|
||||
gcc-$(VERSION)/gcc/config/newlib-stdint.h \
|
||||
gcc-$(VERSION)/gcc/config/vxworks-dummy.h \
|
||||
gcc-$(VERSION)/gcc/config/arm/aout.h \
|
||||
gcc-$(VERSION)/gcc/config/arm/arm-cores.def \
|
||||
gcc-$(VERSION)/gcc/config/arm/arm.h \
|
||||
gcc-$(VERSION)/gcc/config/arm/arm-flags.h \
|
||||
gcc-$(VERSION)/gcc/config/arm/arm-opts.h \
|
||||
gcc-$(VERSION)/gcc/config/arm/bpabi.h \
|
||||
gcc-$(VERSION)/gcc/config/arm/elf.h \
|
||||
@ -89,8 +99,10 @@ TAR_OPT(gcov) := gcc-$(VERSION)/gcc/coretypes.h \
|
||||
gcc-$(VERSION)/include/filenames.h \
|
||||
gcc-$(VERSION)/include/hashtab.h \
|
||||
gcc-$(VERSION)/include/libiberty.h \
|
||||
gcc-$(VERSION)/include/md5.h \
|
||||
gcc-$(VERSION)/include/obstack.h \
|
||||
gcc-$(VERSION)/include/safe-ctype.h \
|
||||
gcc-$(VERSION)/include/splay-tree.h \
|
||||
gcc-$(VERSION)/libcpp/internal.h \
|
||||
gcc-$(VERSION)/libcpp/line-map.c \
|
||||
gcc-$(VERSION)/libcpp/system.h \
|
||||
@ -115,14 +127,19 @@ TAR_OPT(gcov) := gcc-$(VERSION)/gcc/coretypes.h \
|
||||
gcc-$(VERSION)/libiberty/fopen_unlocked.c \
|
||||
gcc-$(VERSION)/libiberty/hashtab.c \
|
||||
gcc-$(VERSION)/libiberty/lbasename.c \
|
||||
gcc-$(VERSION)/libiberty/md5.c \
|
||||
gcc-$(VERSION)/libiberty/obstack.c \
|
||||
gcc-$(VERSION)/libiberty/rust-demangle.c \
|
||||
gcc-$(VERSION)/libiberty/safe-ctype.c \
|
||||
gcc-$(VERSION)/libiberty/splay-tree.c \
|
||||
gcc-$(VERSION)/libiberty/vprintf-support.c \
|
||||
gcc-$(VERSION)/libiberty/vprintf-support.h \
|
||||
gcc-$(VERSION)/libiberty/xexit.c \
|
||||
gcc-$(VERSION)/libiberty/xmalloc.c \
|
||||
gcc-$(VERSION)/libiberty/xmemdup.c \
|
||||
gcc-$(VERSION)/libiberty/xstrdup.c \
|
||||
gcc-$(VERSION)/libiberty/xstrerror.c \
|
||||
gcc-$(VERSION)/libiberty/xstrndup.c \
|
||||
gcc-$(VERSION)/libiberty/xvasprintf.c \
|
||||
gcc-$(VERSION)/COPYING \
|
||||
--strip-components=1
|
||||
@ -140,6 +157,7 @@ symlinks: $(DOWNLOADS)
|
||||
$(VERBOSE)ln -s diagnostic-color.c ${DIR(gcov)}/gcc/diagnostic-color.cc
|
||||
$(VERBOSE)ln -s diagnostic-show-locus.c ${DIR(gcov)}/gcc/diagnostic-show-locus.cc
|
||||
$(VERBOSE)ln -s diagnostic.c ${DIR(gcov)}/gcc/diagnostic.cc
|
||||
$(VERBOSE)ln -s edit-context.c ${DIR(gcov)}/gcc/edit-context.cc
|
||||
$(VERBOSE)ln -s gcov.c ${DIR(gcov)}/gcc/gcov.cc
|
||||
$(VERBOSE)ln -s ggc-none.c ${DIR(gcov)}/gcc/ggc-none.cc
|
||||
$(VERBOSE)ln -s hash-table.c ${DIR(gcov)}/gcc/hash-table.cc
|
||||
|
@ -9,7 +9,7 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
2 files changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gcc/diagnostic-show-locus.c b/gcc/diagnostic-show-locus.c
|
||||
index bf95666..b68b700 100644
|
||||
index 9c567bd..c307120 100644
|
||||
--- a/gcc/diagnostic-show-locus.c
|
||||
+++ b/gcc/diagnostic-show-locus.c
|
||||
@@ -24,7 +24,9 @@ along with GCC; see the file COPYING3. If not see
|
||||
@ -21,9 +21,9 @@ index bf95666..b68b700 100644
|
||||
+#endif
|
||||
#include "diagnostic.h"
|
||||
#include "diagnostic-color.h"
|
||||
|
||||
#include "gcc-rich-location.h"
|
||||
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
|
||||
index 8106172..85d5eb0 100644
|
||||
index c61e0c4..fea960f 100644
|
||||
--- a/gcc/diagnostic.c
|
||||
+++ b/gcc/diagnostic.c
|
||||
@@ -28,7 +28,9 @@ along with GCC; see the file COPYING3. If not see
|
||||
@ -35,8 +35,8 @@ index 8106172..85d5eb0 100644
|
||||
+#endif
|
||||
#include "diagnostic.h"
|
||||
#include "diagnostic-color.h"
|
||||
|
||||
@@ -345,7 +347,7 @@ static const char * const bt_stop[] =
|
||||
#include "edit-context.h"
|
||||
@@ -376,7 +378,7 @@ static const char * const bt_stop[] =
|
||||
};
|
||||
|
||||
/* A callback function passed to the backtrace_full function. */
|
||||
@ -45,16 +45,16 @@ index 8106172..85d5eb0 100644
|
||||
static int
|
||||
bt_callback (void *data, uintptr_t pc, const char *filename, int lineno,
|
||||
const char *function)
|
||||
@@ -425,7 +427,7 @@ bt_err_callback (void *data ATTRIBUTE_UNUSED, const char *msg, int errnum)
|
||||
@@ -456,7 +458,7 @@ bt_err_callback (void *data ATTRIBUTE_UNUSED, const char *msg, int errnum)
|
||||
fprintf (stderr, "%s%s%s\n", msg, errnum == 0 ? "" : ": ",
|
||||
errnum == 0 ? "" : xstrerror (errnum));
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
/* Take any action which is expected to happen after the diagnostic
|
||||
is written out. This function does not always return. */
|
||||
void
|
||||
@@ -467,14 +469,17 @@ diagnostic_action_after_output (diagnostic_context *context,
|
||||
/* Check if we've met the maximum error limit, and if so fatally exit
|
||||
with a message. CONTEXT is the context to check, and FLUSH
|
||||
indicates whether a diagnostic_finish call is needed. */
|
||||
@@ -511,14 +513,17 @@ diagnostic_action_after_output (diagnostic_context *context,
|
||||
case DK_ICE:
|
||||
case DK_ICE_NOBT:
|
||||
{
|
||||
|
@ -8,16 +8,19 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
1 file changed, 132 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/gcc/gcov.c b/gcc/gcov.c
|
||||
index 50061c7..06d3c97 100644
|
||||
index c7c52ce..e039ef0 100644
|
||||
--- a/gcc/gcov.c
|
||||
+++ b/gcc/gcov.c
|
||||
@@ -41,10 +41,13 @@ along with Gcov; see the file COPYING3. If not see
|
||||
@@ -47,6 +47,8 @@ along with Gcov; see the file COPYING3. If not see
|
||||
|
||||
#include <getopt.h>
|
||||
|
||||
+#include <dirent.h>
|
||||
+
|
||||
#define IN_GCOV 1
|
||||
#include "md5.h"
|
||||
|
||||
using namespace std;
|
||||
@@ -55,6 +57,7 @@ using namespace std;
|
||||
#include "gcov-io.h"
|
||||
#include "gcov-io.c"
|
||||
|
||||
@ -25,7 +28,7 @@ index 50061c7..06d3c97 100644
|
||||
/* The gcno file is generated by -ftest-coverage option. The gcda file is
|
||||
generated by a program compiled with -fprofile-arcs. Their formats
|
||||
are documented in gcov-io.h. */
|
||||
@@ -299,6 +302,11 @@ static unsigned bbg_stamp;
|
||||
@@ -436,6 +439,11 @@ static unsigned bbg_supports_has_unexecuted_blocks;
|
||||
|
||||
static char *da_file_name;
|
||||
|
||||
@ -37,7 +40,7 @@ index 50061c7..06d3c97 100644
|
||||
/* Data file is missing. */
|
||||
|
||||
static int no_data_file;
|
||||
@@ -350,6 +358,16 @@ static int flag_all_blocks = 0;
|
||||
@@ -504,6 +512,16 @@ static int flag_human_readable_numbers = 0;
|
||||
|
||||
static int flag_function_summary = 0;
|
||||
|
||||
@ -54,9 +57,9 @@ index 50061c7..06d3c97 100644
|
||||
/* Object directory file prefix. This is the directory/file where the
|
||||
graph and data files are looked for, if nonzero. */
|
||||
|
||||
@@ -407,6 +425,43 @@ static void release_structures (void);
|
||||
static void release_function (function_t *);
|
||||
extern int main (int, char **);
|
||||
@@ -750,6 +768,43 @@ get_cycles_count (line_info &linfo, bool handle_negative_cycles = true)
|
||||
return count;
|
||||
}
|
||||
|
||||
+void process_files(const char *dir_path)
|
||||
+{
|
||||
@ -98,8 +101,8 @@ index 50061c7..06d3c97 100644
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
@@ -437,7 +492,7 @@ main (int argc, char **argv)
|
||||
sources = XNEWVEC (source_t, a_sources);
|
||||
@@ -775,13 +830,25 @@ main (int argc, char **argv)
|
||||
expandargv (&argc, &argv);
|
||||
|
||||
argno = process_args (argc, argv);
|
||||
- if (optind == argc)
|
||||
@ -107,53 +110,52 @@ index 50061c7..06d3c97 100644
|
||||
print_usage (true);
|
||||
|
||||
if (argc - argno > 1)
|
||||
@@ -445,6 +500,18 @@ main (int argc, char **argv)
|
||||
multiple_files = 1;
|
||||
|
||||
first_arg = argno;
|
||||
|
||||
+
|
||||
+ if (flag_genode_autopilot) {
|
||||
+
|
||||
+ /* search .gcda files and process each one */
|
||||
+ process_files("/");
|
||||
+
|
||||
+ process_all_functions();
|
||||
+ generate_results(NULL);
|
||||
+
|
||||
+ release_structures();
|
||||
+
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
|
||||
for (; argno != argc; argno++)
|
||||
{
|
||||
if (flag_display_progress)
|
||||
@@ -488,7 +555,8 @@ print_usage (int error_p)
|
||||
fnotice (file, " -r, --relative-only Only show data for relative sources\n");
|
||||
fnotice (file, " -s, --source-prefix DIR Source prefix to elide\n");
|
||||
@@ -833,7 +900,8 @@ print_usage (int error_p)
|
||||
fnotice (file, " -u, --unconditional-branches Show unconditional branch counts too\n");
|
||||
- fnotice (file, " -v, --version Print version number, then exit\n");
|
||||
+ fnotice (file, " -v, --version Print version number, then exit\n\n");
|
||||
fnotice (file, " -v, --version Print version number, then exit\n");
|
||||
fnotice (file, " -w, --verbose Print verbose informations\n");
|
||||
- fnotice (file, " -x, --hash-filenames Hash long pathnames\n");
|
||||
+ fnotice (file, " -x, --hash-filenames Hash long pathnames\n\n");
|
||||
+ fnotice (file, " -g, --genode-autopilot Genode autopilot mode\n");
|
||||
fnotice (file, "\nFor bug reporting instructions, please see:\n%s.\n",
|
||||
bug_report_url);
|
||||
exit (status);
|
||||
@@ -528,6 +596,7 @@ static const struct option options[] =
|
||||
{ "source-prefix", required_argument, NULL, 's' },
|
||||
{ "unconditional-branches", no_argument, NULL, 'u' },
|
||||
@@ -877,6 +945,7 @@ static const struct option options[] =
|
||||
{ "display-progress", no_argument, NULL, 'd' },
|
||||
{ "hash-filenames", no_argument, NULL, 'x' },
|
||||
{ "use-colors", no_argument, NULL, 'k' },
|
||||
+ { "genode-autopilot", no_argument, NULL, 'g' },
|
||||
{ 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
@@ -538,7 +607,7 @@ process_args (int argc, char **argv)
|
||||
@@ -887,7 +956,7 @@ process_args (int argc, char **argv)
|
||||
{
|
||||
int opt;
|
||||
|
||||
- while ((opt = getopt_long (argc, argv, "abcdfhilmno:s:pruv", options, NULL)) !=
|
||||
+ while ((opt = getopt_long (argc, argv, "abcdfghilmno:s:pruv", options, NULL)) !=
|
||||
-1)
|
||||
- const char *opts = "abcdfhijklmno:prs:uvwx";
|
||||
+ const char *opts = "abcdfghijklmno:prs:uvwx";
|
||||
while ((opt = getopt_long (argc, argv, opts, options, NULL)) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
@@ -555,6 +624,9 @@ process_args (int argc, char **argv)
|
||||
@@ -904,6 +973,9 @@ process_args (int argc, char **argv)
|
||||
case 'f':
|
||||
flag_function_summary = 1;
|
||||
break;
|
||||
@ -163,9 +165,9 @@ index 50061c7..06d3c97 100644
|
||||
case 'h':
|
||||
print_usage (false);
|
||||
/* print_usage will exit. */
|
||||
@@ -784,18 +856,51 @@ process_file (const char *file_name)
|
||||
@@ -1234,11 +1306,43 @@ process_all_functions (void)
|
||||
static void
|
||||
output_gcov_file (const char *file_name, source_t *src)
|
||||
output_gcov_file (const char *file_name, source_info *src)
|
||||
{
|
||||
+ if (flag_genode_autopilot) {
|
||||
+
|
||||
@ -208,16 +210,17 @@ index 50061c7..06d3c97 100644
|
||||
if (gcov_file)
|
||||
{
|
||||
fnotice (stdout, "Creating '%s'\n", gcov_file_name);
|
||||
output_lines (gcov_file, src);
|
||||
@@ -1246,7 +1350,8 @@ output_gcov_file (const char *file_name, source_info *src)
|
||||
if (ferror (gcov_file))
|
||||
fnotice (stderr, "Error writing output file '%s'\n", gcov_file_name);
|
||||
fnotice (stderr, "Error writing output file '%s'\n",
|
||||
gcov_file_name);
|
||||
- fclose (gcov_file);
|
||||
+ if (!flag_genode_autopilot)
|
||||
+ fclose (gcov_file);
|
||||
}
|
||||
else
|
||||
fnotice (stderr, "Could not open output file '%s'\n", gcov_file_name);
|
||||
@@ -879,7 +984,10 @@ generate_results (const char *file_name)
|
||||
@@ -1329,7 +1434,10 @@ generate_results (const char *file_name)
|
||||
function_summary (&src->coverage, "File");
|
||||
total_lines += src->coverage.lines;
|
||||
total_executed += src->coverage.lines_executed;
|
||||
@ -229,7 +232,7 @@ index 50061c7..06d3c97 100644
|
||||
{
|
||||
if (flag_intermediate_format)
|
||||
/* Output the intermediate format without requiring source
|
||||
@@ -968,7 +1076,8 @@ create_file_names (const char *file_name)
|
||||
@@ -1384,7 +1492,8 @@ create_file_names (const char *file_name)
|
||||
/* Free previous file names. */
|
||||
free (bbg_file_name);
|
||||
free (da_file_name);
|
||||
@ -239,7 +242,7 @@ index 50061c7..06d3c97 100644
|
||||
bbg_file_time = 0;
|
||||
bbg_stamp = 0;
|
||||
|
||||
@@ -1014,6 +1123,10 @@ create_file_names (const char *file_name)
|
||||
@@ -1430,6 +1539,10 @@ create_file_names (const char *file_name)
|
||||
strcpy (da_file_name, name);
|
||||
strcpy (da_file_name + length, GCOV_DATA_SUFFIX);
|
||||
|
||||
@ -250,7 +253,7 @@ index 50061c7..06d3c97 100644
|
||||
free (name);
|
||||
return;
|
||||
}
|
||||
@@ -1114,6 +1227,18 @@ find_source (const char *file_name)
|
||||
@@ -1486,6 +1599,18 @@ find_source (const char *file_name)
|
||||
#endif
|
||||
&& IS_DIR_SEPARATOR (src->coverage.name[source_length]))
|
||||
src->coverage.name += source_length + 1;
|
||||
|
@ -8,7 +8,7 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/gcc/tsystem.h b/gcc/tsystem.h
|
||||
index 7dc4b54..c7a09df 100644
|
||||
index 969b105..529dfe3 100644
|
||||
--- a/gcc/tsystem.h
|
||||
+++ b/gcc/tsystem.h
|
||||
@@ -90,7 +90,9 @@ extern void *memset (void *, int, size_t);
|
||||
|
@ -8,12 +8,12 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
|
||||
index 17fcae0..269196a 100644
|
||||
index 3fe1e61..c4cc246 100644
|
||||
--- a/gcc/gcov-io.c
|
||||
+++ b/gcc/gcov-io.c
|
||||
@@ -217,7 +217,9 @@ gcov_open (const char *name, int mode)
|
||||
return 0;
|
||||
#endif
|
||||
@@ -192,7 +192,9 @@ gcov_open (const char *name, int mode)
|
||||
|
||||
gcov_var.mode = mode ? mode : 1;
|
||||
|
||||
+#if 0
|
||||
setbuf (gcov_var.file, (char *)0);
|
||||
|
Loading…
Reference in New Issue
Block a user