[llvm-commits] [126737] Fix the race condition where a dylib is used before it' s actually created.
bwendlin at apple.com
bwendlin at apple.com
Mon Apr 30 12:14:36 PDT 2007
Revision: 126737
Author: bwendlin
Date: 2007-04-30 12:14:35 -0700 (Mon, 30 Apr 2007)
Log Message:
-----------
Fix the race condition where a dylib is used before it's actually created.
Naming it a unique name for each stage will fix this.
Modified Paths:
--------------
apple-local/branches/llvm/gcc/Makefile.in
Modified: apple-local/branches/llvm/gcc/Makefile.in
===================================================================
--- apple-local/branches/llvm/gcc/Makefile.in 2007-04-30 19:04:35 UTC (rev 126736)
+++ apple-local/branches/llvm/gcc/Makefile.in 2007-04-30 19:14:35 UTC (rev 126737)
@@ -1124,16 +1124,16 @@
# llvm-linker-hack.cpp
DYLIB_COMPILE_FLAGS := $(filter-out -mdynamic-no-pic, \
$(ALL_CXXFLAGS) $(ALL_CPPFLAGS))
-libllvmgcc.dylib: llvm-linker-hack.cpp $(LLVMLIBFILES)
+libllvmgcc$(LLVM_STAGE).dylib: llvm-linker-hack.cpp $(LLVMLIBFILES)
echo $(LLVMLIBFILES)
$(CXX) $(DYLIB_COMPILE_FLAGS) $(INCLUDES) -o $@ \
$< $(LLVMLIBFILES) -dynamiclib -single_module \
-install_name @executable_path/$@
-LLVMBACKENDFILES := libllvmgcc.dylib
+LLVMBACKENDFILES := libllvmgcc$(LLVM_STAGE).dylib
# Make sure that 'make install' knows about the dylib.
-EXTRA_PROGRAMS += libllvmgcc.dylib
+EXTRA_PROGRAMS += libllvmgcc$(LLVM_STAGE).dylib
# APPLE LOCAL begin LLVM - set DYLD path
SET_DYLIB_PATH=1
@@ -4073,7 +4073,8 @@
$(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
CFLAGS="$(STAGE1_CFLAGS) $(STAGE1_CHECKING)" \
MAKEINFO="$(MAKEINFO)" MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
- COVERAGE_FLAGS= OBJS-onestep="$(OBJS)"
+ COVERAGE_FLAGS= OBJS-onestep="$(OBJS)" \
+ LLVM_STAGE="-stage1"
$(STAMP) stage1_build
echo stage1_build > stage_last
@@ -4083,13 +4084,11 @@
echo stage2_build > stage_last
stage2_build: stage1_copy
- if test "${SET_DYLIB_PATH}" = "1"; then \
- DYLD_LIBRARY_PATH="`${PWD_COMMAND}`/stage1"; \
- fi; \
$(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
STAGE_PREFIX=stage1/ \
$(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
+ $(STAGE2_FLAGS_TO_PASS) \
+ LLVM_STAGE="-stage2"
$(STAMP) stage2_build
echo stage2_build > stage_last
@@ -4099,13 +4098,11 @@
echo stage3_build > stage_last
stageprofile_build: stage1_copy
- if test "${SET_DYLIB_PATH}" = "1"; then \
- DYLD_LIBRARY_PATH="`${PWD_COMMAND}`/stage1"; \
- fi; \
$(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
STAGE_PREFIX=stage1/ \
$(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGEPROFILE_FLAGS_TO_PASS)
+ $(STAGEPROFILE_FLAGS_TO_PASS) \
+ LLVM_STAGE="-stage_profile"
$(STAMP) stageprofile_build
echo stageprofile_build > stage_last
@@ -4115,24 +4112,20 @@
echo stagefeedback_build > stage_last
stage3_build: stage2_copy
- if test "${SET_DYLIB_PATH}" = "1"; then \
- DYLD_LIBRARY_PATH="`${PWD_COMMAND}`/stage2"; \
- fi; \
$(MAKE) CC="$(STAGE_CC_WRAPPER) stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" \
STAGE_PREFIX=stage2/ \
$(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
+ $(STAGE2_FLAGS_TO_PASS) \
+ LLVM_STAGE=""
$(STAMP) stage3_build
echo stage3_build > stage_last
stagefeedback_build: stageprofile_copy stage1_copy
- if test "${SET_DYLIB_PATH}" = "1"; then \
- DYLD_LIBRARY_PATH="`${PWD_COMMAND}`/stage1"; \
- fi; \
$(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
STAGE_PREFIX=stage1/ \
$(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGEFEEDBACK_FLAGS_TO_PASS)
+ $(STAGEFEEDBACK_FLAGS_TO_PASS) \
+ LLVM_STAGE="-stage_feedback"
$(STAMP) stagefeedback_build
echo stagefeedback_build > stage_last
@@ -4148,9 +4141,6 @@
echo stage4_build > stage_last
stage4_build: stage3_copy
- if test "${SET_DYLIB_PATH}" = "1"; then \
- DYLD_LIBRARY_PATH="`${PWD_COMMAND}`/stage3"; \
- fi; \
$(MAKE) CC="$(STAGE_CC_WRAPPER) stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" \
STAGE_PREFIX=stage3/ \
$(POSTSTAGE1_FLAGS_TO_PASS) \
More information about the llvm-commits
mailing list