disable build/install of temp sysroot headers for native compilers

these are not needed since the cross toolchain being used to build the
native compiler already has its own libc and headers.

but more importantly, due to lack of certain dependency chains that
would be present for a cross compiler build, it was possible for two
invocations of musl's make process to occur in parallel (one for temp
sysroot headers, one for actual libc build). this could (and was
observed to) lead to a race condition where alltypes.h was momentarily
truncated in the middle of the libc build.
This commit is contained in:
Rich Felker 2016-07-07 00:41:13 +00:00
parent 8eeb57f5a5
commit 20ce424e65
1 changed files with 2 additions and 2 deletions

View File

@ -63,7 +63,7 @@ SYSROOT = /$(TARGET)
FULL_MUSL_CONFIG += CC="$(XGCC)" LIBCC="../obj_toolchain/$(TARGET)/libgcc/libgcc.a" FULL_MUSL_CONFIG += CC="$(XGCC)" LIBCC="../obj_toolchain/$(TARGET)/libgcc/libgcc.a"
MUSL_VARS = AR=../obj_toolchain/binutils/ar RANLIB=../obj_toolchain/binutils/ranlib MUSL_VARS = AR=../obj_toolchain/binutils/ar RANLIB=../obj_toolchain/binutils/ranlib
obj_musl/.lc_built: | obj_toolchain/$(TARGET)/libgcc/libgcc.a obj_musl/.lc_built: | obj_toolchain/$(TARGET)/libgcc/libgcc.a
obj_toolchain/.lc_built: | obj_sysroot/.lc_libs obj_toolchain/.lc_built: | obj_sysroot/.lc_libs obj_sysroot/.lc_headers
else else
SYSROOT = / SYSROOT = /
FULL_TOOLCHAIN_CONFIG += --host=$(TARGET) FULL_TOOLCHAIN_CONFIG += --host=$(TARGET)
@ -177,7 +177,7 @@ obj_sysroot/.lc_libs: | obj_musl/.lc_built
cd obj_musl && $(MAKE) $(MUSL_VARS) DESTDIR=$(PWD)/obj_sysroot install cd obj_musl && $(MAKE) $(MUSL_VARS) DESTDIR=$(PWD)/obj_sysroot install
touch $@ touch $@
obj_toolchain/.lc_built: | obj_toolchain/.lc_configured obj_sysroot/.lc_headers obj_toolchain/.lc_built: | obj_toolchain/.lc_configured
cd obj_toolchain && $(MAKE) MAKE="$(MAKE)" LC_ROOT=$(PWD) cd obj_toolchain && $(MAKE) MAKE="$(MAKE)" LC_ROOT=$(PWD)
touch $@ touch $@