This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [PATCH, PR67627][RFC] broken libatomic multilib parallel build


On 12/17/2015 02:51 AM, Szabolcs Nagy wrote:
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)
Sorry for the delay.

Yes, you're correct, it appears that only libatomic has this issue.

The patch is fine for the trunk and any release branches you want to backport to.

Thanks,
jeff


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