Revision a4641c8b75b93ce30b706fceed7d2af976f8e578 authored by Jameson Nash on 06 May 2020, 19:12:05 UTC, committed by GitHub on 06 May 2020, 19:12:05 UTC
Ensures that we are holding some lock (a new one) while mutating the
internal global `jl_current_modules` table.

While reading these binding values is not memory-safe to do
simultaneously (it may invent pointers from thin-air and segfault), this
commit ensures that a data conflict during the writes to them will
not corrupt the values written into memory.
1 parent c3d6a46
Raw File
objconv.mk
## objconv ##

ifneq ($(USE_BINARYBUILDER_OBJCONV),1)

$(SRCCACHE)/objconv.zip: | $(SRCCACHE)
	$(JLDOWNLOAD) $@ http://www.agner.org/optimize/objconv.zip

$(BUILDDIR)/objconv/source-extracted: $(SRCCACHE)/objconv.zip
	-rm -r $(dir $@)
	mkdir -p $(BUILDDIR)
	unzip -d $(dir $@) $<
	cd $(dir $@) && unzip source.zip
	echo 1 > $@

$(BUILDDIR)/objconv/build-compiled: $(BUILDDIR)/objconv/source-extracted
	cd $(dir $<) && $(CXX) -o objconv -O2 *.cpp
	echo 1 > $@

$(eval $(call staged-install, \
	objconv,objconv, \
	BINFILE_INSTALL,$$(BUILDDIR)/objconv/objconv,,))

clean-objconv:
	-rm $(BUILDDIR)/objconv/build-compiled $(build_depsbindir)/objconv

distclean-objconv:
	-rm -rf $(SRCCACHE)/objconv.zip $(BUILDDIR)/objconv


get-objconv: $(SRCCACHE)/objconv.zip
extract-objconv: $(BUILDDIR)/objconv/source-extracted
configure-objconv: extract-objconv
compile-objconv: $(BUILDDIR)/objconv/build-compiled
fastcheck-objconv: check-objconv
check-objconv: compile-objconv

else

OBJCONV_BB_URL_BASE := https://github.com/JuliaPackaging/Yggdrasil/releases/download/Objconv-v$(OBJCONV_VER)-$(OBJCONV_BB_REL)
OBJCONV_BB_NAME := Objconv.v$(OBJCONV_VER)
$(eval $(call bb-install,objconv,OBJCONV,false))

endif
back to top