26
26
include $(SRCDIR ) /llvm-options.mk
27
27
LLVM_LIB_FILE := libLLVMCodeGen.a
28
28
29
- ifeq ($(LLVM_VER ) , 3.3)
30
- LLVM_TAR_EXT: =$(LLVM_VER ) .src.tar.gz
31
- else
32
29
LLVM_TAR_EXT: =$(LLVM_VER ) .src.tar.xz
33
- endif # LLVM_VER == 3.3
34
30
35
31
ifneq ($(LLVM_VER ) ,svn)
36
32
LLVM_TAR: =$(SRCDIR ) /srccache/llvm-$(LLVM_TAR_EXT )
54
50
endif # LLVM_VER != svn
55
51
56
52
# Figure out which targets to build
57
- ifeq ($(LLVM_VER_SHORT ) ,$(filter $(LLVM_VER_SHORT ) ,3.3 3.4 3.5 3.6 3.7 3.8) )
58
- LLVM_TARGETS := host
59
- else
60
53
LLVM_TARGETS := host;NVPTX
61
- endif
62
54
63
55
LLVM_CFLAGS :=
64
56
LLVM_CXXFLAGS :=
@@ -115,10 +107,6 @@ ifeq ($(USE_LLVM_SHLIB),1)
115
107
# against libLLVM) but there doesn't seem to be a CMake counterpart option
116
108
LLVM_FLAGS += --enable-shared
117
109
LLVM_CMAKE += -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON -DLLVM_LINK_LLVM_DYLIB:BOOL=ON
118
- # NOTE: starting with LLVM 3.8, all symbols are exported
119
- ifeq ($(LLVM_VER_SHORT ) ,$(filter $(LLVM_VER_SHORT ) ,3.3 3.4 3.5 3.6 3.7) )
120
- LLVM_CMAKE += -DLLVM_DYLIB_EXPORT_ALL:BOOL=ON
121
- endif
122
110
endif
123
111
ifeq ($(USE_INTEL_JITEVENTS ) , 1)
124
112
LLVM_FLAGS += --with-intel-jitevents
@@ -156,22 +144,7 @@ ifneq (,$(filter $(ARCH), powerpc64le ppc64le))
156
144
LLVM_CXXFLAGS += -mminimal-toc
157
145
endif
158
146
159
- # LLVM bug #24157
160
- ifeq ($(USE_LLVM_SHLIB ) ,1)
161
- ifeq ($(LLVM_USE_CMAKE ) ,1)
162
- ifeq ($(LLVM_VER_SHORT ) ,$(filter $(LLVM_VER_SHORT ) ,3.3 3.4 3.5 3.6 3.7) )
163
- $(error USE_LLVM_SHLIB=1 with LLVM_USE_CMAKE=1 requires LLVM > 3.7.x)
164
- endif
165
- endif
166
- endif
167
-
168
147
ifeq ($(LLVM_SANITIZE ) ,1)
169
- # autotools doesn't provide a sanitation build mode (linking libLLVM will fail)
170
- ifeq ($(USE_LLVM_SHLIB ) ,1)
171
- ifeq ($(LLVM_USE_CMAKE ) ,0)
172
- $(error LLVM_SANITIZE=1 with USE_LLVM_SHLIB=1 requires LLVM_USE_CMAKE=1)
173
- endif
174
- endif
175
148
ifeq ($(SANITIZE_MEMORY ) ,1)
176
149
LLVM_CFLAGS += -fsanitize=memory -fsanitize-memory-track-origins
177
150
LLVM_LDFLAGS += -fsanitize=memory -fsanitize-memory-track-origins
@@ -230,25 +203,16 @@ LLVM_MFLAGS += OPTIONAL_PARALLEL_DIRS=clang
230
203
else
231
204
# block default building of Clang
232
205
LLVM_MFLAGS += OPTIONAL_PARALLEL_DIRS=
233
- ifeq ($(LLVM_VER_SHORT ) ,$(filter $(LLVM_VER_SHORT ) ,3.3 3.4 3.5 3.6 3.7) )
234
- LLVM_CMAKE += -DLLVM_EXTERNAL_CLANG_BUILD=OFF
235
- LLVM_CMAKE += -DLLVM_EXTERNAL_COMPILER_RT_BUILD=OFF
236
- else
237
206
LLVM_CMAKE += -DLLVM_TOOL_CLANG_BUILD=OFF
238
207
LLVM_CMAKE += -DLLVM_TOOL_COMPILER_RT_BUILD=OFF
239
208
endif
240
- endif
241
209
ifeq ($(BUILD_LLDB ) ,1)
242
210
LLVM_MFLAGS += OPTIONAL_DIRS=lldb
243
211
else
244
212
# block default building of lldb
245
213
LLVM_MFLAGS += OPTIONAL_DIRS=
246
- ifeq ($(LLVM_VER_SHORT ) ,$(filter $(LLVM_VER_SHORT ) ,3.3 3.4 3.5 3.6 3.7) )
247
- LLVM_CMAKE += -DLLVM_EXTERNAL_LLDB_BUILD=OFF
248
- else
249
214
LLVM_CMAKE += -DLLVM_TOOL_LLDB_BUILD=OFF
250
215
endif
251
- endif
252
216
253
217
LLVM_SRC_URL := http://releases.llvm.org/$(LLVM_VER )
254
218
@@ -472,59 +436,7 @@ $$(LLVM_SRC_DIR)/$1.patch-applied: $$(LLVM_SRC_DIR)/source-extracted | $$(SRCDIR
472
436
LLVM_PATCH_PREV := $$(LLVM_SRC_DIR ) /$1.patch-applied
473
437
endef
474
438
475
- ifeq ($(LLVM_VER ) ,3.3)
476
- $(eval $(call LLVM_PATCH,llvm-3.3))
477
- $(eval $(call LLVM_PATCH,instcombine-llvm-3.3))
478
- $(eval $(call LLVM_PATCH,int128-vector.llvm-3.3))
479
- $(eval $(call LLVM_PATCH,osx-10.10.llvm-3.3))
480
- $(eval $(call LLVM_PATCH,win64-int128.llvm-3.3))
481
- else ifeq ($(LLVM_VER_SHORT),3.7)
482
- ifeq ($(LLVM_VER ) ,3.7.0)
483
- $(eval $(call LLVM_PATCH,llvm-3.7.0))
484
- endif
485
- $(eval $(call LLVM_PATCH,llvm-3.7.1))
486
- $(eval $(call LLVM_PATCH,llvm-3.7.1_2))
487
- $(eval $(call LLVM_PATCH,llvm-3.7.1_3))
488
- $(eval $(call LLVM_PATCH,llvm-3.7.1_symlinks))
489
- $(eval $(call LLVM_PATCH,llvm-3.8.0_bindir))
490
- $(eval $(call LLVM_PATCH,llvm-D14260))
491
- $(eval $(call LLVM_PATCH,llvm-nodllalias))
492
- $(eval $(call LLVM_PATCH,llvm-D21271-instcombine-tbaa-3.7))
493
- $(eval $(call LLVM_PATCH,llvm-win64-reloc-dwarf))
494
- $(eval $(call LLVM_PATCH,llvm-3.7.1_destsharedlibdir))
495
- $(eval $(call LLVM_PATCH,llvm-arm-fix-prel31))
496
- else ifeq ($(LLVM_VER_SHORT),3.8)
497
- ifeq ($(LLVM_VER ) ,3.8.0)
498
- $(eval $(call LLVM_PATCH,llvm-D17326_unpack_load))
499
- endif
500
- ifeq ($(LLVM_VER ) ,3.8.1)
501
- $(eval $(call LLVM_PATCH,llvm-3.8.1-version))
502
- endif
503
- $(eval $(call LLVM_PATCH,llvm-3.7.1_3)) # Remove for 3.9
504
- $(eval $(call LLVM_PATCH,llvm-D14260))
505
- $(eval $(call LLVM_PATCH,llvm-3.8.0_bindir)) # Remove for 3.9
506
- $(eval $(call LLVM_PATCH,llvm-3.8.0_winshlib)) # Remove for 3.9
507
- $(eval $(call LLVM_PATCH,llvm-D25865-cmakeshlib))
508
- $(eval $(call LLVM_PATCH,llvm-nodllalias)) # Remove for 3.9
509
- # Cygwin and openSUSE still use win32-threads mingw, https://llvm.org/bugs/show_bug.cgi?id=26365
510
- $(eval $(call LLVM_PATCH,llvm-3.8.0_threads))
511
- # fix replutil test on unix
512
- $(eval $(call LLVM_PATCH,llvm-D17165-D18583)) # Remove for 3.9
513
- # Segfault for aggregate load
514
- $(eval $(call LLVM_PATCH,llvm-D17712)) # Remove for 3.9
515
- $(eval $(call LLVM_PATCH,llvm-PR26180)) # Remove for 3.9
516
- $(eval $(call LLVM_PATCH,llvm-PR27046)) # Remove for 3.9
517
- $(eval $(call LLVM_PATCH,llvm-3.8.0_ppc64_SUBFC8)) # Remove for 3.9
518
- $(eval $(call LLVM_PATCH,llvm-D21271-instcombine-tbaa-3.8)) # Remove for 3.9
519
- $(eval $(call LLVM_PATCH,llvm-win64-reloc-dwarf))
520
- $(eval $(call LLVM_PATCH,llvm-arm-fix-prel31))
521
- else ifeq ($(LLVM_VER_SHORT),3.9)
522
- ifeq ($(LLVM_VER ) ,3.9.0)
523
- # fix lowering for atomics on ppc
524
- $(eval $(call LLVM_PATCH,llvm-rL279933-ppc-atomicrmw-lowering)) # Remove for 4.0
525
- $(eval $(call LLVM_PATCH,llvm-r282182)) # Remove for 4.0
526
- $(eval $(call LLVM_PATCH,llvm-3.9.0_cygwin)) # R283427, Remove for 4.0
527
- endif
439
+ ifeq ($(LLVM_VER_SHORT ) ,3.9)
528
440
$(eval $(call LLVM_PATCH,llvm-PR22923)) # Remove for 4.0
529
441
$(eval $(call LLVM_PATCH,llvm-arm-fix-prel31)) # Remove for 4.0
530
442
$(eval $(call LLVM_PATCH,llvm-D25865-cmakeshlib)) # Remove for 4.0
@@ -556,18 +468,8 @@ $(eval $(call LLVM_PATCH,llvm-D33179))
556
468
$(eval $(call LLVM_PATCH,llvm-PR29010-i386-xmm)) # Remove for 4.0
557
469
endif # LLVM_VER
558
470
559
- ifeq ($(LLVM_VER ) ,3.7.1)
560
- ifeq ($(BUILD_LLDB ) ,1)
561
- $(eval $(call LLVM_PATCH,lldb-3.7.1))
562
- endif
563
- ifeq ($(BUILD_LLVM_CLANG ) ,1)
564
- $(eval $(call LLVM_PATCH,compiler-rt-3.7.1))
565
- endif
566
- endif
567
471
$(LLVM_BUILDDIR_withtype ) /build-configured : $(LLVM_PATCH_PREV )
568
472
569
- ifeq ($(LLVM_USE_CMAKE ) ,1)
570
-
571
473
$(LLVM_BUILDDIR_withtype ) /build-configured : $(LLVM_SRC_DIR ) /source-extracted | $(llvm_python_workaround ) $(LIBCXX_DEPENDENCY )
572
474
mkdir -p $(dir $@ )
573
475
cd $(dir $@ ) && \
@@ -584,45 +486,21 @@ $(LLVM_BUILDDIR_withtype)/build-compiled: $(LLVM_BUILDDIR_withtype)/build-config
584
486
$(CMAKE ) --build .)
585
487
echo 1 > $@
586
488
587
- else
588
-
589
- $(LLVM_BUILDDIR_withtype ) /build-configured : $(LLVM_SRC_DIR ) /source-extracted | $(llvm_python_workaround ) $(LIBCXX_DEPENDENCY )
590
- mkdir -p $(dir $@ )
591
- cd $(dir $@ ) && \
592
- export PATH=$(llvm_python_workaround ) :$$ PATH && \
593
- $(LLVM_SRC_DIR ) /configure $(CONFIGURE_COMMON ) $(LLVM_FLAGS )
594
- echo 1 > $@
595
-
596
- $(LLVM_BUILDDIR_withtype ) /build-compiled : $(LLVM_BUILDDIR_withtype ) /build-configured | $(llvm_python_workaround )
597
- cd $(LLVM_BUILDDIR_withtype ) && \
598
- export PATH=$(llvm_python_workaround ) :$$ PATH && \
599
- $(MAKE ) $(LLVM_MFLAGS ) $(MAKE_COMMON )
600
- echo 1 > $@
601
-
602
- endif # LLVM_USE_CMAKE
603
-
604
489
$(LLVM_BUILDDIR_withtype ) /build-checked : $(LLVM_BUILDDIR_withtype ) /build-compiled | $(llvm_python_workaround )
605
490
ifeq ($(OS ) ,$(BUILD_OS ) )
606
491
cd $(LLVM_BUILDDIR_withtype) && \
607
492
export PATH=$(llvm_python_workaround):$$PATH && \
608
- $(if $(filter $(LLVM_USE_CMAKE),1), \
609
- $(CMAKE) --build . --target check, \
610
- $(MAKE) $(LLVM_MFLAGS) check)
493
+ $(CMAKE) --build . --target check
611
494
endif
612
495
echo 1 > $@
613
496
614
497
$(build_prefix ) /manifest/llvm : | $(llvm_python_workaround )
615
498
616
- ifeq ($(LLVM_USE_CMAKE ) ,1)
617
499
LLVM_INSTALL = \
618
500
cd $1 && $$(CMAKE ) -DCMAKE_INSTALL_PREFIX="$2$$(build_prefix ) " -P cmake_install.cmake
619
501
ifeq ($(OS ) , WINNT)
620
502
LLVM_INSTALL += && cp $2$$(build_shlibdir ) /LLVM.dll $2$$(build_depsbindir )
621
503
endif
622
- else
623
- LLVM_INSTALL = \
624
- $(call MAKE_INSTALL,$1,$2,$3 $$(LLVM_MFLAGS ) PATH="$$(llvm_python_workaround ) :$$$$PATH" DestSharedLibDir="$2$$(build_shlibdir ) ")
625
- endif # LLVM_USE_CMAKE
626
504
627
505
$(eval $(call staged-install,llvm,llvm-$$(LLVM_VER)/build_$$(LLVM_BUILDTYPE), \
628
506
LLVM_INSTALL,,,))
0 commit comments