GCC Bugzilla – Bug 17832
[4.0 Regression] Bootstrap broken by fixincludes failures
Last modified: 2004-10-27 20:17:30 UTC
Due to recent reorganization, fixincludes is now built unconditionally. Previously, it was not built for machines that did not need it, including Windows. Since fixincludes does not (and has never) built on native Windows, this breaks bootstrap for these hosts.
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02731.html>
Really fixinclude should just be fixed instead of working around the issue. See PR 14316. The reason why fixinclude should be fixed instead of working around the issue is because really not running it will make some targets not work correctly.
I agree, but it in the meantime, it would be nice for mainline to bootstrap. Since fixincludes has never built on Windows, this isn't a regression, but bootstrap failing definitely is. When fixincludes has been fixed, presumably after libiberty gets whatever changes needed to make collect2 work, mingw32 can be removed from the list of targets to not build fixincludes for. I don't know what the reason for disabling fixincludes on the other targets is, though.
Needs a configury maintainer. Bruce Korb said he's fine with it.
I think fixincludes is very close to building on Windows, and so probably should not be disabled after all for this target, since its needed in some configurations. Presumably the other targets still should be disabled. All that is needed to make it build is resolution to PR 17991, a patch to enable two-process fixincludes for i?86-*-mingw32*, and a patch that does the equivilent of <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01393.html>. I will probably resubmit a version of the latter tomorrow that addresses the comments here <http://gcc.gnu.org/ml/gcc-patches/2004-10/msg01045.html>.
See related bug #17462.
Subject: Bug 17832 CVSROOT: /cvs/gcc Module name: gcc Changes by: aaronwl@gcc.gnu.org 2004-10-20 08:21:10 Modified files: fixincludes : ChangeLog fixincl.c fixlib.h procopen.c Log message: PR bootstrap/17832 * fixincl.c (SIGCHLD): Remove definition. (initialize): Remove SIGIOT and SIGPIPE checks. (create_file): Fix mkdir() for Win32. (internal_fix): Use dup2() instead of fcntl(). * fixlib.h (SIGQUIT): Define if undefined. (SIGIOT): Same. (SIGPIPE): Same. (SIGALRM): Same. (SIGKILL): Same. * procopen.c (chain_open): Use dup2() instead of fcntl(). Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/fixincludes/ChangeLog.diff?cvsroot=gcc&r1=1.9&r2=1.10 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/fixincludes/fixincl.c.diff?cvsroot=gcc&r1=1.2&r2=1.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/fixincludes/fixlib.h.diff?cvsroot=gcc&r1=1.2&r2=1.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/fixincludes/procopen.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
One more patch left to be reviewed, besides PR17991: <http://gcc.gnu.org/ml/gcc-patches/2004-10/msg01618.html>.
Aaron, I'm assigning the PR to you because it is very close to being fixed, and I think it is easier if it is assigned to the author of the patch. I hope you don't mind. PR17991 is still assigned to me and it covers the bugs in moving fixincludes to the toplevel (hopefully the outstanding patch will be reviewed soon).
Well, I was a little confused earlier, and perhaps I still am. Should fixincludes be built on target=mingw bootstraps? I don't think so; as far as I know, its only needed for crosses. But perhaps there might be some good reason to enable it anyway?
*** Bug 17462 has been marked as a duplicate of this bug. ***
This is fixed now right?
Sorry, I missed putting the PR tag in the commit log. However, no, this bug really should not be closed yet. That patch just disabled building fixincludes. The real patch that needs to be committed is in #8, which will make fixincludes build appropriately when its needed, such as in *-mingw32's case, when crosscompiling. It needs to be reviewed by Bruce Korb, I think.
Subject: Bug 17832 CVSROOT: /cvs/gcc Module name: gcc Changes by: aaronwl@gcc.gnu.org 2004-10-27 20:13:58 Modified files: fixincludes : ChangeLog fixfixes.c Log message: PR bootstrap/17832 * fixfixes.c (main): Check for _PC_NAME_MAX. ---------------------------------------------------------------------- Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/fixincludes/ChangeLog.diff?cvsroot=gcc&r1=1.11&r2=1.12 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/fixincludes/fixfixes.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
Fixed on mainline. I think this is the end of fixincludes problems for Windows.