This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] Fix race condition in libstdc++-v3/configure.ac


On Tue, Sep 1, 2009 at 1:49 PM, Ralf Wildenhues<Ralf.Wildenhues@gmx.de> wrote:
> * Paolo Bonzini wrote on Tue, Sep 01, 2009 at 10:06:06AM CEST:
>> On 08/31/2009 11:26 PM, Ralf Wildenhues wrote:
>> >I wasn't quite sure whether the 'cd include&& ?make' is necessary each
>> >time include/Makefile is changed, or only when config.status is invoked
>> >without arguments (i.e., after configure runs). ?The patch assumes the
>> >latter and introduces a 'generate-headers' tag for this.
>>
>> It seems safest to invoke "make -C include pch_build=" on every
>> include/Makefile change, and leave the pch to be created by the
>> recursive make invocation. ?In principle, the task of
>> include/Makefile could be done all by AC_CONFIG_LINKS, but not pch
>> creation.
>
> So you are saying that the fact that the precompiled headers are created
> early is by accident, not intentional? ?Doesn't the rest of the build
> then possibly *use* these precompiled headers for compilation, and thus
> possibly behave differently when they are not present? ?(Yes, I
> understand that that would be a bug in the pch, but it seems useful to
> expose such a bug.)
>
> One problem with entering include and running 'make' there right after
> creating include/Makefile is that config.h typically does not exist yet,
> because we build config files before config headers. ?config.h is
> required by bits/c++config.h. ?That's why the patch below is broken.
>
>> Also, you probably need to modify the configure-[+prefix+][+module+]
>> definition in the toplevel, and add a : $(MAKE) there.
>
> Probably. ?Adding $(MAKE) in this case makes
> ?make -n configure-foodir
>
> less useful (as it will change files, not just show what would happen)
> but OTOH it would allow parallel make to work in libstdc++-v3/include
> (when triggered from config.status). ?Tough choice. ?(Hmm, maybe I
> should report this to bug-make again.)
>
> Cheers,
> Ralf
>
> v3: fix config.status instantiation of subdir makefiles.
>
> libstdc++-v3/ChangeLog:
> 2009-09-01 ?Ralf Wildenhues ?<Ralf.Wildenhues@gmx.de>
>
> ? ? ? ?* configure.ac: Replace AC_CONFIG_COMMANDS([default])
> ? ? ? ?instantiation with additional commands issued for each Makefile
> ? ? ? ?in glibcxx_SUBDIRS, so `./config.status subdir/Makefile' also
> ? ? ? ?runs these commands. ?When generating include/Makefile, also
> ? ? ? ?run `make' in include.
> ? ? ? ?* configure: Regenerate.
>

This breaks 32bit libstdc++ on Linux/x86-64.  The 32bit
bits/c++config.h is missing:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41280

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]