Skip to content

Commit c5bdd65

Browse files
authored
Upgrade source-build to BB2 for Julia 1.3 (#450)
1. Remove obsoleted patches 2. Add new patches(LLVMBuilder at v6.0.1-7+nowasm) 3. Source-build enhancement for Julia 1.3 LLVM/Clang binaries from BB2 can be reused, but we do need to download and patch LLVM/Clang's source code for building libcxxffi.
1 parent d488dba commit c5bdd65

File tree

55 files changed

+9792
-3286
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+9792
-3286
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
.DS_Store
55
docs/build
66
docs/site
7+
deps/usr
8+
deps/deps.jl
79
deps/build.log
810
Manifest.toml

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Note that Windows support is still in its early stage, so feel free to submit fe
2121
### Build from source
2222
#### Build requirements
2323

24-
In addition to the [system requirements](https://github.com/JuliaLang/julia#required-build-tools-and-external-libraries) to build julia itself(note you need to build julia with `USE_BINARYBUILDER=0`), the following are required:
24+
In addition to the [system requirements](https://github.com/JuliaLang/julia#required-build-tools-and-external-libraries) to build julia itself, the following are required:
2525

2626
- *Debian/Ubuntu*: `libedit-dev`, `libncurses5-dev`
2727
- *RedHat/CentOS*: `libedit-devel`

deps/BuildBootstrap.Makefile

+95-157
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,99 @@
1-
JULIA_SRC := $(subst \,/,$(BASE_JULIA_SRC))
2-
JULIA_BIN := $(subst \,/,$(BASE_JULIA_BIN))
1+
# Cxx source build
2+
# download sources
3+
LLVM_VER := 6.0.1
4+
LLVM_URL_PREFIX := http://releases.llvm.org/$(LLVM_VER)
5+
LLVM_TAR := llvm-$(LLVM_VER).src.tar.xz
6+
CLANG_TAR := cfe-$(LLVM_VER).src.tar.xz
7+
COMPILER_RT_TAR := compiler-rt-$(LLVM_VER).src.tar.xz
8+
LIBCXX_TAR := libcxx-$(LLVM_VER).src.tar.xz
9+
LIBCXXABI_TAR := libcxxabi-$(LLVM_VER).src.tar.xz
10+
POLLY_TAR := polly-$(LLVM_VER).src.tar.xz
11+
LIBUNWIND_TAR := libunwind-$(LLVM_VER).src.tar.xz
12+
LLD_TAR := lld-$(LLVM_VER).src.tar.xz
13+
14+
TIMEOUT := 180
15+
CURL := curl -fkL --connect-timeout $(TIMEOUT) -y $(TIMEOUT)
16+
17+
usr/download:
18+
@[ -d usr ] || mkdir usr
19+
mkdir -p $@
320

4-
ifeq ($(LLVM_VER),)
5-
BUILDROOT=$(JULIA_BIN)/../..
6-
include $(JULIA_SRC)/deps/Versions.make
7-
ifeq (exists, $(shell [ -e $(BUILDROOT)/Make.user ] && echo exists ))
8-
include $(BUILDROOT)/Make.user
9-
endif
10-
endif
11-
include Make.inc
21+
LLVM_TARS := $(LLVM_TAR) $(CLANG_TAR) $(COMPILER_RT_TAR) $(LIBCXX_TAR) $(LIBCXXABI_TAR) $(POLLY_TAR) $(LIBUNWIND_TAR) $(LLD_TAR)
1222

13-
LLVM_VER_MAJ:=$(word 1, $(subst ., ,$(LLVM_VER)))
14-
LLVM_VER_MIN:=$(word 2, $(subst ., ,$(LLVM_VER)))
15-
# define a "short" LLVM version for easy comparisons
16-
ifeq ($(LLVM_VER),svn)
17-
LLVM_VER_SHORT:=svn
18-
else
19-
LLVM_VER_SHORT:=$(LLVM_VER_MAJ).$(LLVM_VER_MIN)
20-
endif
21-
LLVM_VER_PATCH:=$(word 3, $(subst ., ,$(LLVM_VER)))
22-
ifeq ($(LLVM_VER_PATCH),)
23-
LLVM_VER_PATCH := 0
24-
endif
23+
llvm_tars: usr/download
24+
@for tar in $(LLVM_TARS); do \
25+
if [ -e $</$$tar ]; then \
26+
echo "$$tar already exists, please delete it manually if you'd like to re-download it."; \
27+
else \
28+
$(CURL) -o $</$$tar $(LLVM_URL_PREFIX)/$$tar ; \
29+
fi \
30+
done
2531

26-
ifeq ($(LLVM_VER_SHORT),$(filter $(LLVM_VER_SHORT),3.3 3.4 3.5 3.6 3.7 3.8))
27-
LLVM_USE_CMAKE := 0
28-
else
29-
LLVM_USE_CMAKE := 1
30-
endif
32+
# unzip
33+
usr/src: usr/download
34+
mkdir -p $@
3135

32-
all: usr/lib/libcxxffi.$(SHLIB_EXT) usr/lib/libcxxffi-debug.$(SHLIB_EXT) build/clang_constants.jl
36+
llvm-$(LLVM_VER): usr/src llvm_tars
37+
@[ -d $</$@ ] || mkdir -p $</$@
38+
tar -C $</$@ --strip-components=1 -xf usr/download/$(LLVM_TAR)
39+
@[ -d $</$@/tools/clang ] || mkdir -p $</$@/tools/clang
40+
tar -C $</$@/tools/clang --strip-components=1 -xf usr/download/$(CLANG_TAR)
41+
@[ -d $</$@/tools/polly ] || mkdir -p $</$@/tools/polly
42+
tar -C $</$@/tools/polly --strip-components=1 -xf usr/download/$(POLLY_TAR)
43+
@[ -d $</$@/tools/lld ] || mkdir -p $</$@/tools/lld
44+
tar -C $</$@/tools/lld --strip-components=1 -xf usr/download/$(LLD_TAR)
45+
@[ -d $</$@/projects/compiler-rt ] || mkdir -p $</$@/projects/compiler-rt
46+
tar -C $</$@/projects/compiler-rt --strip-components=1 -xf usr/download/$(COMPILER_RT_TAR)
47+
@[ -d $</$@/projects/libcxx ] || mkdir -p $</$@/projects/libcxx
48+
tar -C $</$@/projects/libcxx --strip-components=1 -xf usr/download/$(LIBCXX_TAR)
49+
@[ -d $</$@/projects/libcxxabi ] || mkdir -p $</$@/projects/libcxxabi
50+
tar -C $</$@/projects/libcxxabi --strip-components=1 -xf usr/download/$(LIBCXXABI_TAR)
51+
@[ -d $</$@/projects/libunwind ] || mkdir -p $</$@/projects/libunwind
52+
tar -C $</$@/projects/libunwind --strip-components=1 -xf usr/download/$(LIBUNWIND_TAR)
53+
54+
# apply patches
55+
llvm-patched: llvm-$(LLVM_VER)
56+
cd usr/src/$< && \
57+
for p in ../../../llvm_patches/*.patch; do \
58+
echo "Applying patch $$p"; \
59+
patch -p1 < $$p ; \
60+
done
61+
62+
# build libcxxffi
63+
include Make.inc
64+
65+
JULIA_SRC := $(subst \,/,$(BASE_JULIA_SRC))
66+
JULIA_BIN := $(subst \,/,$(BASE_JULIA_BIN))
3367

3468
ifeq ($(OLD_CXX_ABI),1)
3569
CXX_ABI_SETTING=-D_GLIBCXX_USE_CXX11_ABI=0
3670
else
3771
CXX_ABI_SETTING=-D_GLIBCXX_USE_CXX11_ABI=1
3872
endif
3973

40-
CXXJL_CPPFLAGS = -I$(JULIA_SRC)/src/support -I$(BASE_JULIA_BIN)/../include
74+
JULIA_SOURCE_INCLUDE_DIRS := $(JULIA_SRC)/src/support
75+
JULIA_INCLUDE_DIRS := $(JULIA_BIN)/../include
76+
CLANG_SOURCE_INCLUDE_DIRS := usr/src/llvm-$(LLVM_VER)/tools/clang/include
77+
CLANG_SOURCE_INCLUDE_DIRS += usr/src/llvm-$(LLVM_VER)/tools/clang/lib
78+
CLANG_INCLUDE_DIRS := $(JULIA_BIN)/../include $(JULIA_BIN)/../include/clang
79+
INCLUDE_DIRS := $(JULIA_SOURCE_INCLUDE_DIRS) $(JULIA_INCLUDE_DIRS) $(CLANG_SOURCE_INCLUDE_DIRS) $(CLANG_INCLUDE_DIRS)
80+
CXXJL_CPPFLAGS = $(addprefix -I, $(INCLUDE_DIRS))
4181

42-
ifeq ($(JULIA_BINARY_BUILD),1)
43-
LIBDIR := $(BASE_JULIA_BIN)/../lib/julia
44-
else
45-
LIBDIR := $(BASE_JULIA_BIN)/../lib
46-
endif
47-
48-
CLANG_LIBS = clangFrontendTool clangBasic clangLex clangDriver clangFrontend clangParse \
49-
clangAST clangASTMatchers clangSema clangAnalysis clangEdit \
50-
clangRewriteFrontend clangRewrite clangSerialization clangStaticAnalyzerCheckers \
51-
clangStaticAnalyzerCore clangStaticAnalyzerFrontend clangTooling clangToolingCore \
52-
clangCodeGen clangARCMigrate clangFormat
53-
54-
ifneq ($(PREBUILT_CI_BINARIES),1)
55-
# If clang is not built by base julia, build it ourselves
56-
ifeq ($(BUILD_LLVM_CLANG),)
57-
ifeq ($(LLVM_VER),svn)
58-
$(error For julia built against llvm-svn, please built clang in tree)
59-
endif
60-
61-
LLVM_TAR_EXT:=$(LLVM_VER).src.tar.xz
62-
LLVM_CLANG_TAR:=src/cfe-$(LLVM_TAR_EXT)
63-
LLVM_SRC_TAR:=src/llvm-$(LLVM_TAR_EXT)
64-
LLVM_COMPILER_RT_TAR:=src/compiler-rt-$(LLVM_TAR_EXT)
65-
LLVM_SRC_URL := http://releases.llvm.org/$(LLVM_VER)
66-
67-
src:
68-
mkdir $@
69-
70-
# Also build a new copy of LLVM, so we get headers, tools, etc.
71-
ifeq ($(JULIA_BINARY_BUILD),1)
72-
LLVM_SRC_DIR := src/llvm-$(LLVM_VER)
73-
include llvm-patches/apply-llvm-patches.mk
74-
$(LLVM_SRC_TAR): | src
75-
curl -Lo $@ $(LLVM_SRC_URL)/$(notdir $@)
76-
src/llvm-$(LLVM_VER): $(LLVM_SRC_TAR)
77-
mkdir -p $@
78-
tar -C $@ --strip-components=1 -xf $<
79-
build/llvm-$(LLVM_VER)/Makefile: src/llvm-$(LLVM_VER) $(LLVM_PATCH_LIST)
80-
mkdir -p $(dir $@)
81-
cd $(dir $@) && \
82-
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="X86" \
83-
-DLLVM_BUILD_LLVM_DYLIB=ON -DCMAKE_BUILD_TYPE=Release \
84-
-DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_ENABLE_THREADS=OFF \
85-
-DCMAKE_CXX_COMPILER_ARG1="$(CXX_ABI_SETTING)" \
86-
../../src/llvm-$(LLVM_VER)
87-
build/llvm-$(LLVM_VER)/bin/llvm-config: build/llvm-$(LLVM_VER)/Makefile
88-
cd build/llvm-$(LLVM_VER) && $(MAKE)
89-
LLVM_HEADER_DIRS = src/llvm-$(LLVM_VER)/include build/llvm-$(LLVM_VER)/include
90-
CLANG_CMAKE_DEP = build/llvm-$(LLVM_VER)/bin/llvm-config
91-
LLVM_CONFIG = ../llvm-$(LLVM_VER)/bin/llvm-config
92-
else
93-
CLANG_CMAKE_OPTS += -DLLVM_TABLEGEN_EXE=$(BASE_JULIA_BIN)/../tools/llvm-tblgen
94-
endif
95-
96-
JULIA_LDFLAGS = -L$(BASE_JULIA_BIN)/../lib -L$(BASE_JULIA_BIN)/../lib/julia
82+
CLANG_LIBS := clangFrontendTool clangBasic clangLex clangDriver clangFrontend clangParse
83+
CLANG_LIBS += clangAST clangASTMatchers clangSema clangAnalysis clangEdit
84+
CLANG_LIBS += clangRewriteFrontend clangRewrite clangSerialization clangStaticAnalyzerCheckers
85+
CLANG_LIBS += clangStaticAnalyzerCore clangStaticAnalyzerFrontend clangTooling clangToolingCore
86+
CLANG_LIBS += clangCodeGen clangARCMigrate clangFormat
87+
LINKED_LIBS = $(addprefix -l,$(CLANG_LIBS))
9788

98-
$(LLVM_CLANG_TAR): | src
99-
curl -Lo $@ $(LLVM_SRC_URL)/$(notdir $@)
100-
$(LLVM_COMPILER_RT_TAR): | src
101-
$(JLDOWNLOAD) $@ $(LLVM_SRC_URL)/$(notdir $@)
102-
src/clang-$(LLVM_VER): $(LLVM_CLANG_TAR)
103-
mkdir -p $@
104-
tar -C $@ --strip-components=1 -xf $<
105-
build/clang-$(LLVM_VER)/Makefile: src/clang-$(LLVM_VER) $(CLANG_CMAKE_DEP)
106-
mkdir -p $(dir $@)
107-
cd $(dir $@) && \
108-
cmake -G "Unix Makefiles" \
109-
-DLLVM_BUILD_LLVM_DYLIB=ON -DCMAKE_BUILD_TYPE=Release \
110-
-DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_ENABLE_THREADS=OFF \
111-
-DCMAKE_CXX_COMPILER_ARG1="$(CXX_ABI_SETTING)" \
112-
-DLLVM_CONFIG=$(LLVM_CONFIG) $(CLANG_CMAKE_OPTS) ../../src/clang-$(LLVM_VER)
113-
build/clang-$(LLVM_VER)/lib/libclangCodeGen.a: build/clang-$(LLVM_VER)/Makefile
114-
cd build/clang-$(LLVM_VER) && $(MAKE)
115-
LIB_DEPENDENCY += build/clang-$(LLVM_VER)/lib/libclangCodeGen.a
116-
JULIA_LDFLAGS += -Lbuild/clang-$(LLVM_VER)/lib
117-
CXXJL_CPPFLAGS += -Isrc/clang-$(LLVM_VER)/lib -Ibuild/clang-$(LLVM_VER)/include \
118-
-Isrc/clang-$(LLVM_VER)/include
119-
else # BUILD_LLVM_CLANG
120-
JULIA_LDFLAGS = -L$(BASE_JULIA_BIN)/../lib -L$(BASE_JULIA_BIN)/../lib/julia
121-
CXXJL_CPPFLAGS += -I$(JULIA_SRC)/deps/srccache/llvm-$(LLVM_VER)/tools/clang/lib \
122-
-I$(JULIA_SRC)/deps/llvm-$(LLVM_VER)/tools/clang/lib
123-
endif
124-
else
125-
LLVM_SRC_DIR := src/llvm-$(LLVM_VER)
126-
CLANG_CMAKE_DEP = build/llvm-$(LLVM_VER)/bin/llvm-config
127-
LLVM_CONFIG = ../llvm-$(LLVM_VER)/bin/llvm-config
128-
JULIA_LDFLAGS += -Lbuild/clang-$(LLVM_VER)/lib
129-
LLVM_HEADER_DIRS = src/llvm-$(LLVM_VER)/include build/llvm-$(LLVM_VER)/include
130-
CXXJL_CPPFLAGS += -Isrc/clang-$(LLVM_VER)/lib -Ibuild/clang-$(LLVM_VER)/include \
131-
-Isrc/clang-$(LLVM_VER)/include
132-
JULIA_LDFLAGS += -L$(BASE_JULIA_BIN)/../lib -L$(BASE_JULIA_BIN)/../lib/julia
133-
endif # PREBUILD_CI_BINARIES
134-
135-
CXX_LLVM_VER := $(LLVM_VER)
136-
ifeq ($(CXX_LLVM_VER),svn)
137-
CXX_LLVM_VER := $(shell $(BASE_JULIA_BIN)/../tools/llvm-config --version)
89+
LIB_DIRS := $(JULIA_BIN)/../lib
90+
LIB_DIRS += $(JULIA_BIN)/../lib/julia
91+
ifneq ($(USEMSVC), 1)
92+
LIB_DIRS += $(JULIA_BIN)
13893
endif
94+
JULIA_LDFLAGS = $(addprefix -L,$(LIB_DIRS))
95+
# JULIA_LDFLAGS += -Lbuild/clang-$(LLVM_VER)/lib
13996

140-
ifneq ($(LLVM_HEADER_DIRS),)
141-
CXXJL_CPPFLAGS += $(addprefix -I,$(LLVM_HEADER_DIRS))
142-
endif
14397

14498
FLAGS = -std=c++11 $(CPPFLAGS) $(CFLAGS) $(CXXJL_CPPFLAGS)
14599

@@ -149,58 +103,42 @@ else
149103
CPP_STDOUT := $(CPP) -E
150104
endif
151105

152-
ifeq ($(LLVM_USE_CMAKE),1)
153106
LLVM_LIB_NAME := LLVM
154-
else ifeq ($(LLVM_VER),svn)
155-
LLVM_LIB_NAME := LLVM
156-
else
157-
LLVM_LIB_NAME := LLVM-$(CXX_LLVM_VER)
158-
endif
159107
LDFLAGS += -l$(LLVM_LIB_NAME)
108+
LIB_DEPENDENCY += $(JULIA_BIN)/../lib/lib$(LLVM_LIB_NAME).$(SHLIB_EXT)
109+
LLVM_EXTRA_CPPFLAGS = -DLLVM_NDEBUG
110+
JULIA_LIB := $(JULIA_BIN)/../lib/libjulia.$(SHLIB_EXT)
111+
JULIA_DEBUG_LIB := $(JULIA_BIN)/../lib/libjulia-debug.$(SHLIB_EXT)
160112

161-
LIB_DEPENDENCY += $(LIBDIR)/lib$(LLVM_LIB_NAME).$(SHLIB_EXT)
113+
all: usr/lib/libcxxffi.$(SHLIB_EXT) usr/lib/libcxxffi-debug.$(SHLIB_EXT) usr/clang_constants.jl
162114

163-
usr/lib:
164-
@mkdir -p $(CURDIR)/usr/lib/
165-
166-
build:
167-
@mkdir -p $(CURDIR)/build
168-
169-
LLVM_EXTRA_CPPFLAGS =
170-
ifneq ($(LLVM_ASSERTIONS),1)
171-
LLVM_EXTRA_CPPFLAGS += -DLLVM_NDEBUG
172-
endif
115+
usr/lib: usr/src
116+
mkdir $@
173117

174-
build/bootstrap.o: ../src/bootstrap.cpp BuildBootstrap.Makefile $(LIB_DEPENDENCY) | build
118+
usr/lib/bootstrap.o: ../src/bootstrap.cpp BuildBootstrap.Makefile $(LIB_DEPENDENCY) llvm-patched | usr/lib
175119
@$(call PRINT_CC, $(CXX) $(CXX_ABI_SETTING) -fno-rtti -DLIBRARY_EXPORTS -fPIC -O0 -g $(FLAGS) $(LLVM_EXTRA_CPPFLAGS) -c ../src/bootstrap.cpp -o $@)
176120

177-
178-
LINKED_LIBS = $(addprefix -l,$(CLANG_LIBS))
179-
ifeq ($(BUILD_LLDB),1)
180-
LINKED_LIBS += $(LLDB_LIBS)
181-
endif
182-
183-
ifneq (,$(wildcard $(BASE_JULIA_BIN)/../lib/libjulia.$(SHLIB_EXT)))
184-
usr/lib/libcxxffi.$(SHLIB_EXT): build/bootstrap.o $(LIB_DEPENDENCY) | usr/lib
121+
ifneq (,$(wildcard $(JULIA_LIB)))
122+
usr/lib/libcxxffi.$(SHLIB_EXT): usr/lib/bootstrap.o $(LIB_DEPENDENCY) | usr/lib
185123
@$(call PRINT_LINK, $(CXX) -shared -fPIC $(JULIA_LDFLAGS) -ljulia $(LDFLAGS) -o $@ $(WHOLE_ARCHIVE) $(LINKED_LIBS) $(NO_WHOLE_ARCHIVE) $< )
186124
else
187125
usr/lib/libcxxffi.$(SHLIB_EXT):
188126
@echo "Not building release library because corresponding julia RELEASE library does not exist."
189127
@echo "To build, simply run the build again once the library at"
190-
@echo $(build_libdir)/libjulia.$(SHLIB_EXT)
128+
@echo $(JULIA_LIB)
191129
@echo "has been built."
192130
endif
193131

194-
ifneq (,$(wildcard $(BASE_JULIA_BIN)/../lib/libjulia-debug.$(SHLIB_EXT)))
132+
ifneq (,$(wildcard $(JULIA_DEBUG_LIB)))
195133
usr/lib/libcxxffi-debug.$(SHLIB_EXT): build/bootstrap.o $(LIB_DEPENDENCY) | usr/lib
196134
@$(call PRINT_LINK, $(CXX) -shared -fPIC $(JULIA_LDFLAGS) -ljulia-debug $(LDFLAGS) -o $@ $(WHOLE_ARCHIVE) $(LINKED_LIBS) $(NO_WHOLE_ARCHIVE) $< )
197135
else
198136
usr/lib/libcxxffi-debug.$(SHLIB_EXT):
199137
@echo "Not building debug library because corresponding julia DEBUG library does not exist."
200138
@echo "To build, simply run the build again once the library at"
201-
@echo $(build_libdir)/libjulia-debug.$(SHLIB_EXT)
139+
@echo $(JULIA_DEBUG_LIB)
202140
@echo "has been built."
203141
endif
204142

205-
build/clang_constants.jl: ../src/cenumvals.jl.h usr/lib/libcxxffi.$(SHLIB_EXT)
143+
usr/clang_constants.jl: ../src/cenumvals.jl.h usr/lib/libcxxffi.$(SHLIB_EXT)
206144
@$(call PRINT_PERL, $(CPP_STDOUT) $(CXXJL_CPPFLAGS) -DJULIA ../src/cenumvals.jl.h > $@)

deps/build.jl

+9-21
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
11
using Libdl
22

3-
if haskey(ENV, "PREBUILT_CI_BINARIES") && ENV["PREBUILT_CI_BINARIES"] == "1"
4-
# Try to download pre-built binaries
5-
if !isdir("build") || length(readdir("build")) == 0
6-
os_tag = Sys.isapple() ? "osx" : "linux"
7-
run(`rm -rf build/ src/`)
8-
filename = "llvm-$(os_tag)-$(Base.libllvm_version).tgz"
9-
run(`wget https://s3.amazonaws.com/julia-cxx/$filename`)
10-
run(`tar xzf $filename --strip-components=1`)
11-
end
12-
end
13-
14-
#in case we have specified the path to the julia installation
15-
#that contains the headers etc, use that
16-
BASE_JULIA_BIN = get(ENV, "BASE_JULIA_BIN", Sys.BINDIR)
17-
BASE_JULIA_SRC = get(ENV, "BASE_JULIA_SRC", joinpath(BASE_JULIA_BIN, "..", ".."))
3+
# in case we have specified the path to the julia installation
4+
# that contains the headers etc, use that
5+
BASE_JULIA_BIN = get(ENV, "BASE_JULIA_BIN", Sys.BINDIR) |> normpath
6+
BASE_JULIA_SRC = get(ENV, "BASE_JULIA_SRC", joinpath(BASE_JULIA_BIN, "..", "..")) |> normpath
187

19-
#write a simple include file with that path
8+
# write a simple include file with that path
209
println("writing path.jl file")
2110
s = """
2211
const BASE_JULIA_BIN=$(sprint(show, BASE_JULIA_BIN))
@@ -28,21 +17,20 @@ export BASE_JULIA_SRC
2817

2918
println("Tuning for julia installation at $BASE_JULIA_BIN with sources possibly at $BASE_JULIA_SRC")
3019

31-
# Try to autodetect C++ ABI in use
20+
# try to autodetect C++ ABI in use
3221
llvm_path = Sys.iswindows() ? "LLVM" :
33-
(Sys.isapple() && Base.libllvm_version >= v"3.8") ? "libLLVM" : "libLLVM-$(Base.libllvm_version)"
34-
22+
Sys.isapple() ? "libLLVM" : "libLLVM-$(Base.libllvm_version)"
3523
llvm_lib_path = Libdl.dlpath(llvm_path)
3624
old_cxx_abi = findfirst("_ZN4llvm3sys16getProcessTripleEv", String(open(read, llvm_lib_path))) !== nothing
3725
old_cxx_abi && (ENV["OLD_CXX_ABI"] = "1")
3826

39-
llvm_config_path = joinpath(BASE_JULIA_BIN,"..","tools","llvm-config")
27+
llvm_config_path = joinpath(BASE_JULIA_BIN, "..", "tools", "llvm-config")
4028
if isfile(llvm_config_path)
4129
@info "Building julia source build"
4230
ENV["LLVM_CONFIG"] = llvm_config_path
4331
delete!(ENV,"LLVM_VER")
4432
make = Sys.isbsd() && !Sys.isapple() ? `gmake` : `make`
45-
run(`$make -j$(Sys.CPU_THREADS) -f BuildBootstrap.Makefile BASE_JULIA_BIN=$BASE_JULIA_BIN BASE_JULIA_SRC=$BASE_JULIA_SRC`)
33+
run(`$make all -j$(Sys.CPU_THREADS) -f BuildBootstrap.Makefile BASE_JULIA_BIN=$BASE_JULIA_BIN BASE_JULIA_SRC=$BASE_JULIA_SRC`)
4634
s = s * "\n const IS_BINARYBUILD = false"
4735
else
4836
@info "Building julia binary build"

deps/llvm-patches/README

-6
This file was deleted.

0 commit comments

Comments
 (0)