t66667@xxxxxxxxx wrote:
Kai Tietz wrote:
2009/8/22 Ozkan Sezer <sezeroz@xxxxxxxxx>:
Hello,
I hoped this issue was solved by recent modification to fstat/stat,
but sadly it doesn't seem so. To fix this driver bug (and it is a
driver bug only AFAIK), use for building gcc, g++, gfortan, etc for
CFLAGS=-O0
This solves this issue. The question here is what produces the issue
here. Maybe you could add to gcc's build the option
-Wstrict-aliasing=2 option, too (for -O2 build) and check if there are
any new strict aliasing failures are shown.
Best regards
Kai
>From line 813 libiberty/pex-win32.c
/* Create the child process. */ pid = win32_spawn (executable,
(flags & PEX_SEARCH) != 0,
argv, env, dwCreationFlags, &si, &pi);
if (pid == (pid_t) -1)
pid = spawn_script (executable, argv, env, dwCreationFlags,
&si, &pi);
if (pid == (pid_t) -1)
{
*err = ENOENT;
*errmsg = "CreateProcess";
}
This is where it started to failed apparently ...
There's a use of a function "alloca" in the win32_spawn() but this is
just a guess.
I also compiled target = host = x86_64-w64-mingw32 compiler with -O0 as
you suggested, indeed it worked on Vista 64bit.
I also compiled native compiler target = x86_64-w64-mingw32, host =
mingw32 and without the -O0 it does not have any trouble in
"CreateProcess" running on Vista 64-bit, so this bug is specific to the
gcc (w64 64-Bit binary).
Hopefully this may be of some interest when someone does hunt down this bug.
Thanks.
Regards.