This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/35752] [4.3/4.4 Regression]: Combined gcc + binutils source tree doesn't bootstrap with --enable-shared
- From: "bonzini at gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Apr 2008 14:39:20 -0000
- Subject: [Bug bootstrap/35752] [4.3/4.4 Regression]: Combined gcc + binutils source tree doesn't bootstrap with --enable-shared
- References: <bug-35752-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #47 from bonzini at gnu dot org 2008-04-21 14:39 -------
Subject: Re: [4.3/4.4 Regression]: Combined gcc + binutils
source tree doesn't bootstrap with --enable-shared
> It is probably possible to generate the wrapper script atomically.
> But this solution can become ugly: on w32 we may generate also a wrapper
> executable.
For win32 it suffices to:
1) create wrapper executable under random name
2) create wrapper script under random name
3) move wrapper script to correct name
4) move wrapper executable to correct name
If you invert 1 and 2, the patch is a mess because you have to move
around a lot of code. :-) If you invert 3 and 4, the executable may
fail because of not finding a script -- this is actually another problem
with the current code.
(BTW, were you libtool maintainers aware of this race/these races?)
> I still don't see a convincing argument why you don't use -no-fast-install.
> If the problem is that you don't like the relink to happen at 'make install'
> time, then why don't you generate two 'ld' programs, one for installation
> and one for use uninstalled, with -no-fast-install, or even -no-install.
The problem is that you want to make a combined tree with released gcc
and binutils, and since this is arguably a gcc bug you want the latest
gcc without the bug to compile a combined tree with any released
binutils version.
At worse, we could just pass --disable-fast-install in the toplevel
configure when gcc is present. That could be a solution for 4.3 actually.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35752