libgcov: report about a different timestamp (PR gcov-profile/85759).

2018-05-29  Martin Liska  <mliska@suse.cz>

        PR gcov-profile/85759
	* doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR
	env variables.
2018-05-29  Martin Liska  <mliska@suse.cz>

        PR gcov-profile/85759
	* libgcov-driver-system.c (gcov_error): Introduce usage of
        GCOV_EXIT_AT_ERROR env. variable.
	* libgcov-driver.c (merge_one_data): Print error that we
        overwrite a gcov file with a different timestamp.

From-SVN: r260895
This commit is contained in:
Martin Liska 2018-05-29 14:11:21 +02:00 committed by Martin Liska
parent e379122d1f
commit 0e8f29daae
5 changed files with 37 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2018-05-29 Martin Liska <mliska@suse.cz>
PR gcov-profile/85759
* doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR
env variables.
2018-05-29 Jakub Jelinek <jakub@redhat.com>
* tree-cfg.c (verify_gimple_assign_unary): Add checking for

View File

@ -801,6 +801,14 @@ as well as handlers registered with @code{atexit}.
If an executable loads a dynamic shared object via dlopen functionality,
@option{-Wl,--dynamic-list-data} is needed to dump all profile data.
Profiling run-time library reports various errors related to profile
manipulation and profile saving. Errors are printed into standard error output
or @samp{GCOV_ERROR_FILE} file, if environment variable is used.
In order to terminate immediately after an errors occurs
set @samp{GCOV_EXIT_AT_ERROR} environment variable.
That can help users to find profile clashing which leads
to a misleading profile.
@c man end
@node Gcov Data Files

View File

@ -1,3 +1,11 @@
2018-05-29 Martin Liska <mliska@suse.cz>
PR gcov-profile/85759
* libgcov-driver-system.c (gcov_error): Introduce usage of
GCOV_EXIT_AT_ERROR env. variable.
* libgcov-driver.c (merge_one_data): Print error that we
overwrite a gcov file with a different timestamp.
2018-05-23 Kalamatee <kalamatee@gmail.com>
* config/m68k/lb1sf68.S (Laddsf$nf): Fix sign bit handling in

View File

@ -62,8 +62,16 @@ gcov_error (const char *fmt, ...)
va_list argp;
va_start (argp, fmt);
ret = vfprintf (get_gcov_error_file (), fmt, argp);
FILE *f = get_gcov_error_file ();
ret = vfprintf (f, fmt, argp);
va_end (argp);
if (getenv ("GCOV_EXIT_AT_ERROR"))
{
fprintf (f, "profiling:exiting after an error\n");
exit (1);
}
return ret;
}

View File

@ -372,8 +372,12 @@ merge_one_data (const char *filename,
length = gcov_read_unsigned ();
if (length != gi_ptr->stamp)
/* Read from a different compilation. Overwrite the file. */
return 0;
{
/* Read from a different compilation. Overwrite the file. */
gcov_error ("profiling:%s:overwriting an existing profile data "
"with a different timestamp\n", filename);
return 0;
}
/* Look for program summary. */
for (f_ix = 0;;)