@@ -83,7 +83,7 @@ TOOLCHAIN_FLAGS = $\
83
83
"RANLIB=$(STAGE0_TOOLS ) llvm-ranlib" $\
84
84
"CFLAGS+=$(PGO_CFLAGS ) " $\
85
85
"CXXFLAGS+=$(PGO_CXXFLAGS ) " $\
86
- "LDFLAGS+=$(PGO_LDFLAGS ) "
86
+ "LDFLAGS+=-fuse-ld=lld $(PGO_LDFLAGS ) "
87
87
88
88
$(STAGE0_BUILD ) $(STAGE1_BUILD ) $(STAGE2_BUILD ) :
89
89
$(MAKE ) -C $(JULIA_ROOT ) O=$@ configure
@@ -99,15 +99,15 @@ stage0: | $(STAGE0_BUILD)
99
99
$(STAGE1_BUILD ) : stage0
100
100
stage1 : PGO_CFLAGS:=-fprofile-generate=$(PGO_PROFILE_DIR ) -Xclang -mllvm -Xclang -vp-counters-per-site=$(COUNTERS_PER_SITE )
101
101
stage1 : PGO_CXXFLAGS:=-fprofile-generate=$(PGO_PROFILE_DIR ) -Xclang -mllvm -Xclang -vp-counters-per-site=$(COUNTERS_PER_SITE )
102
- stage1 : PGO_LDFLAGS:=-fuse-ld=lld - flto=thin -fprofile-generate=$(PGO_PROFILE_DIR )
102
+ stage1 : PGO_LDFLAGS:=-flto=thin -fprofile-generate=$(PGO_PROFILE_DIR )
103
103
stage1 : export USE_BINARYBUILDER_LLVM=0
104
104
stage1 : | $(STAGE1_BUILD )
105
105
$(MAKE ) -C $(STAGE1_BUILD ) $(TOOLCHAIN_FLAGS ) && touch $@
106
106
@echo $(AFTER_STAGE1_MESSAGE )
107
107
108
108
stage2 : PGO_CFLAGS:=-fprofile-use=$(PGO_PROFILE_FILE )
109
109
stage2 : PGO_CXXFLAGS:=-fprofile-use=$(PGO_PROFILE_FILE )
110
- stage2 : PGO_LDFLAGS:=-fuse-ld=lld - flto=thin -fprofile-use=$(PGO_PROFILE_FILE ) -Wl,--icf=safe
110
+ stage2 : PGO_LDFLAGS:=-flto=thin -fprofile-use=$(PGO_PROFILE_FILE ) -Wl,--icf=safe
111
111
stage2 : export USE_BINARYBUILDER_LLVM=0
112
112
stage2 : $(PGO_PROFILE_FILE ) | $(STAGE2_BUILD )
113
113
$(MAKE ) -C $(STAGE2_BUILD ) $(TOOLCHAIN_FLAGS ) $(BOLT_FLAGS ) julia-src-release julia-symlink julia-libccalltest \
@@ -135,10 +135,13 @@ bolt_instrument: copy_originals
135
135
136
136
# We don't want to rebuild julia-src as then we lose the bolt instrumentation
137
137
# So we have to manually build the sysimage and package image
138
+ finish_stage2 : PGO_CFLAGS:=-fprofile-use=$(PGO_PROFILE_FILE )
139
+ finish_stage2 : PGO_CXXFLAGS:=-fprofile-use=$(PGO_PROFILE_FILE )
140
+ finish_stage2 : PGO_LDFLAGS:=-flto=thin -fprofile-use=$(PGO_PROFILE_FILE ) -Wl,--icf=safe
138
141
finish_stage2 : stage2
139
- $(MAKE ) -C $(STAGE2_BUILD ) julia-base-cache && \
140
- $(MAKE ) -C $(STAGE2_BUILD ) -f sysimage.mk sysimg-release && \
141
- $(MAKE ) -C $(STAGE2_BUILD ) -f pkgimage.mk release
142
+ $(MAKE ) -C $(STAGE2_BUILD ) $( TOOLCHAIN_FLAGS ) julia-base-cache && \
143
+ $(MAKE ) -C $(STAGE2_BUILD ) $( TOOLCHAIN_FLAGS ) -f sysimage.mk sysimg-release && \
144
+ $(MAKE ) -C $(STAGE2_BUILD ) $( TOOLCHAIN_FLAGS ) -f pkgimage.mk release
142
145
143
146
merge_data : bolt_instrument
144
147
for file in $( FILES_TO_OPTIMIZE) ; do \
0 commit comments