[PATCH, PR67627][RFC] broken libatomic multilib parallel build

Szabolcs Nagy szabolcs.nagy@arm.com
Thu Dec 17 09:51:00 GMT 2015


On 16/12/15 17:06, Jeff Law wrote:
> On 12/04/2015 05:39 AM, Szabolcs Nagy wrote:
>> As described in pr other/67627, the all-multi target can be
>> built in parallel with the %_.lo targets which generate make
>> dependencies that are parsed during the build of all-multi.
>>
>> gcc -MD does not generate the makefile dependencies in an
>> atomic way so make can fail if it concurrently parses those
>> half-written files.
>> (not observed on x86, but happens on arm native builds.)
>>
>> this workaround forces all-multi to only run after the *_.lo
>> targets are done, but there might be a better solution using
>> automake properly. (automake should know about the generated
>> make dependency files that are included into the makefile so
>> no manual tinkering is needed to get the right build order,
>> but i don't know how to do that.)
>>
>> 2015-12-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
>>
>>      PR other/67627
>>      * Makefile.am (all-multi): Add dependency.
>>      * Makefile.in: Regenerate.
> So looking at the patch, it looks like you're adding
> a dependency in Makefile.am to pass it through to
> Makefile.in, which is fine.
>
> So I think you just need to replicate that fix across
> the other libraries which have this problem.
>

i don't see other libraries that use all-multi and
include auto-dependency generated makefiles as well.

only libatomic has both.

is it ok to commit and backport?
(gcc-5 and 4.9 have the same issue)



More information about the Gcc-patches mailing list