re PR bootstrap/71400 (profiledbootstrap failed)

PR libgcc/71400
	* libgcov-driver-system.c (__gcov_error_file): Disable if IN_GCOV_TOOL.
	(get_gcov_error_file): Check __gcov_error_file before trying to
	initialize it.
	(gcov_error): Always use get_gcov_error_file.

Co-Authored-By: Nathan Sidwell <nathan@acm.org>

From-SVN: r237135
This commit is contained in:
Aaron Conole 2016-06-06 15:24:24 +00:00 committed by Nathan Sidwell
parent 93671519e2
commit 0a0ec53d12
2 changed files with 22 additions and 15 deletions

View File

@ -1,3 +1,12 @@
2016-06-05 Aaron Conole <aconole@redhat.com>
Nathan Sidwell <nathan@acm.org>
PR libgcc/71400
* libgcov-driver-system.c (__gcov_error_file): Disable if IN_GCOV_TOOL.
(get_gcov_error_file): Check __gcov_error_file before trying to
initialize it.
(gcov_error): Always use get_gcov_error_file.
2016-06-02 Aaron Conole <aconole@redhat.com>
* libgcov-driver-system.c (__gcov_error_file): New.

View File

@ -23,31 +23,32 @@ a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#if !IN_GCOV_TOOL
/* Configured via the GCOV_ERROR_FILE environment variable;
it will either be stderr, or a file of the user's choosing.
Non-static to prevent multiple gcov-aware shared objects from
instantiating their own copies. */
FILE *__gcov_error_file = NULL;
#endif
/* A utility function to populate the __gcov_error_file pointer.
This should NOT be called outside of the gcov system driver code. */
static FILE *
get_gcov_error_file(void)
get_gcov_error_file (void)
{
#if !IN_GCOV_TOOL
#if IN_GCOV_TOOL
return stderr;
#else
char *gcov_error_filename = getenv ("GCOV_ERROR_FILE");
if (gcov_error_filename)
{
FILE *openfile = fopen (gcov_error_filename, "a");
if (openfile)
__gcov_error_file = openfile;
}
if (!__gcov_error_file)
__gcov_error_file = stderr;
{
const char *gcov_error_filename = getenv ("GCOV_ERROR_FILE");
if (gcov_error_filename)
__gcov_error_file = fopen (gcov_error_filename, "a");
if (!__gcov_error_file)
__gcov_error_file = stderr;
}
return __gcov_error_file;
#endif
}
@ -60,11 +61,8 @@ gcov_error (const char *fmt, ...)
int ret;
va_list argp;
if (!__gcov_error_file)
__gcov_error_file = get_gcov_error_file ();
va_start (argp, fmt);
ret = vfprintf (__gcov_error_file, fmt, argp);
ret = vfprintf (get_gcov_error_file (), fmt, argp);
va_end (argp);
return ret;
}