Commit cc863b02 authored by simonmar's avatar simonmar
Browse files

[project @ 2001-11-12 14:13:35 by simonmar]

Generate .a files into a temporary file before renaming to the actual
target, to avoid a problem whereby 'ar' could leave a partially-built
archive lying around.
parent c921f5e8
...@@ -437,20 +437,25 @@ ifneq "$(way)" "u" ...@@ -437,20 +437,25 @@ ifneq "$(way)" "u"
SRC_HC_OPTS += -split-objs SRC_HC_OPTS += -split-objs
# We generate the archive into a temporary file libfoo.a.tmp, then
# rename it at the end. This avoids the problem that ar may sometimes
# fail, leaving a partially built archive behind.
ifeq "$(ArSupportsInput)" "" ifeq "$(ArSupportsInput)" ""
define BUILD_LIB define BUILD_LIB
$(RM) $@ $(RM) $@ $@.tmp
(echo $(STUBOBJS); $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o') | xargs ar q $@ (echo $(STUBOBJS); $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o') | xargs ar q $@.tmp
$(RANLIB) $@ $(RANLIB) $@.tmp
$(MV) $@.tmp $@
endef endef
else else
define BUILD_LIB define BUILD_LIB
$(RM) $@ $(RM) $@ $@.tmp
echo $(STUBOBJS) > $@.list echo $(STUBOBJS) > $@.list
$(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o' >> $@.list $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o' >> $@.list
$(AR) $(AR_OPTS) $@ $(ArSupportsInput) $@.list $(AR) $(AR_OPTS) $@.tmp $(ArSupportsInput) $@.list
$(RM) $@.list $(RM) $@.list
$(RANLIB) $@ $(RANLIB) $@.tmp
$(MV) $@.tmp $@
endef endef
endif endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment