[Bug other/67627] New: libatomic parallel build failure
nsz at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 18 14:28:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67627
Bug ID: 67627
Summary: libatomic parallel build failure
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
Assignee: unassigned at gcc dot gnu.org
Reporter: nsz at gcc dot gnu.org
Target Milestone: ---
hard to reproduce, but the failure is
make[5]: Entering directory `/XX/obj/gcc4/arm-none-linux-gnueabihf/libatomic'
.deps/fsub_8_.lo.Ppo:87: *** missing separator. Stop.
and the cause is that .deps/fsub_8_.lo.Ppo is a makefile fragment generated by
a compilation step that is run concurrently with another make reading this
file.
some relevant bits from libatomic/Makefile.in:
### begin
LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
toolexeclib_LTLIBRARIES = libatomic.la
noinst_LTLIBRARIES = libatomic_convenience.la
libatomic_la_DEPENDENCIES = $(libatomic_la_LIBADD) $(libatomic_version_dep)
libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
_$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
$(am__append_3)
M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
libatomic.la: $(libatomic_la_OBJECTS) $(libatomic_la_DEPENDENCIES)
$(EXTRA_libatomic_la_DEPENDENCIES).
$(libatomic_la_LINK) -rpath $(toolexeclibdir) $(libatomic_la_OBJECTS)
$(libatomic_la_LIBADD) $(LIBS)
all-multi:
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
all-am: Makefile $(LTLIBRARIES) all-multi auto-config.h
-include $(wildcard $(DEPDIR)/*.Ppo)
%_.lo: Makefile
$(LTCOMPILE) $(M_DEPS) $(M_SIZE) $(M_IFUNC) -c -o $@ $(M_SRC)
### end
when all-am is built, building $(LTLIBRARIES) (the *_.lo targets) can run in
parallel with all-multi.
the all-multi target rereads the Makefile so reevaluates "-include $(wildcard
$(DEPDIR)/*.Ppo)", but those files are generated in a non-atomic way by gcc -MF
during the build of *_.lo targets.
More information about the Gcc-bugs
mailing list