This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/33652] New: Problem in libgcov.c (__gcov_execve) for target x86_64-pc-mingw32
- From: "nightstrike at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Oct 2007 04:30:28 -0000
- Subject: [Bug c++/33652] New: Problem in libgcov.c (__gcov_execve) for target x86_64-pc-mingw32
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Building g++ for target x86_64-pc-mingw32 currently fails. Here is the
description from Kai Tietz, along with his proposed patch:
An interesting issue is that there is problem related that in c case the
type char * const[] is not equivalent to type char *const *. Is this done
by intention ?
For the w64 target the parameter of exec(??) methods are using 'const char
* const *' but gcc uses the type 'char * const []' for argp and envp
arguments. In earlier versions the types were equivalent.
See other report: http://gcc.gnu.org/ml/gcc-help/2007-10/msg00008.html
So I suggest the following patch for w64 in libgcov.c:
ChangeLog:
2007-10-02 Kai Tietz <kai.tietz@onevision.com>
* libgcov.c: (__gcov_execve): Special case for x86_64-pc-mingw32.
Index: gcc/gcc/libgcov.c
===================================================================
--- gcc.orig/gcc/libgcov.c
+++ gcc/gcc/libgcov.c
@@ -945,7 +945,11 @@ int
__gcov_execve (const char *path, char *const argv[], char *const envp[])
{
__gcov_flush ();
+#ifdef _WIN64
+ return execve (path, (const char * const *) argv, (const char * const *)
envp);
+#else
return execve (path, argv, envp);
+#endif
}
#endif
#endif /* inhibit_libc */
=
--
Summary: Problem in libgcov.c (__gcov_execve) for target x86_64-
pc-mingw32
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nightstrike at gmail dot com
GCC target triplet: x86_64-pc-mingw32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33652