@@ -17,7 +17,7 @@ JLDFLAGS += $(LDFLAGS)
17
17
FLAGS := \
18
18
-D_GNU_SOURCE -I$(BUILDDIR ) -I$(SRCDIR ) \
19
19
-I$(SRCDIR ) /flisp -I$(SRCDIR ) /support \
20
- -I$(LIBUV_INC ) -I$(build_includedir ) -DLIBRARY_EXPORTS \
20
+ -I$(LIBUV_INC ) -I$(build_includedir ) \
21
21
-I$(JULIAHOME ) /deps/valgrind
22
22
ifneq ($(USEMSVC ) , 1)
23
23
FLAGS += -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden -fno-common \
@@ -95,12 +95,13 @@ endif
95
95
96
96
# headers are used for dependency tracking, while public headers will be part of the dist
97
97
UV_HEADERS :=
98
- HEADERS := $(BUILDDIR ) /julia_version.h $(wildcard $(SRCDIR ) /support/* .h) $(addprefix $(SRCDIR ) /,julia.h julia_assert.h julia_threads.h julia_fasttls.h julia_locks.h julia_atomics.h julia_internal.h options.h timing.h) $(addprefix $(BUILDDIR ) /, $(DTRACE_HEADERS ) )
99
- PUBLIC_HEADERS := $(BUILDDIR ) /julia_version.h $(wildcard $(SRCDIR ) /support/* .h) $(addprefix $(SRCDIR ) /,julia.h julia_assert.h julia_threads.h julia_fasttls.h julia_locks.h julia_atomics.h julia_gcext.h)
100
98
ifeq ($(USE_SYSTEM_LIBUV ) ,0)
101
99
UV_HEADERS += uv.h
102
100
UV_HEADERS += uv/*.h
103
101
endif
102
+ PUBLIC_HEADERS := $(BUILDDIR ) /julia_version.h $(wildcard $(SRCDIR ) /support/* .h) $(addprefix $(SRCDIR ) /,julia.h julia_assert.h julia_threads.h julia_fasttls.h julia_locks.h julia_atomics.h)
103
+ HEADERS := $(PUBLIC_HEADERS ) $(addprefix $(SRCDIR ) /,julia_internal.h options.h timing.h) $(addprefix $(BUILDDIR ) /,$(DTRACE_HEADERS ) jl_internal_funcs.inc)
104
+ PUBLIC_HEADERS += $(addprefix $(SRCDIR ) /,julia_gcext.h)
104
105
PUBLIC_HEADER_TARGETS := $(addprefix $(build_includedir ) /julia/,$(notdir $(PUBLIC_HEADERS ) ) $(UV_HEADERS ) )
105
106
106
107
LLVM_LDFLAGS := $(shell $(LLVM_CONFIG_HOST ) --ldflags)
@@ -135,8 +136,8 @@ RELEASE_LIBS := $(COMMON_LIBPATHS) $(WHOLE_ARCHIVE) $(BUILDDIR)/flisp/libflisp.a
135
136
136
137
OBJS := $(SRCS:%=$(BUILDDIR ) /%.o )
137
138
DOBJS := $(SRCS:%=$(BUILDDIR ) /%.dbg.obj )
138
- DEBUGFLAGS += $(FLAGS )
139
- SHIPFLAGS += $(FLAGS )
139
+ DEBUGFLAGS += $(FLAGS ) -DLIBRARY_EXPORTS
140
+ SHIPFLAGS += $(FLAGS ) -DLIBRARY_EXPORTS
140
141
141
142
# if not absolute, then relative to the directory of the julia executable
142
143
SHIPFLAGS += "-DJL_SYSTEM_IMAGE_PATH=\"$(build_private_libdir_rel ) /sys.$(SHLIB_EXT ) \""
@@ -178,6 +179,13 @@ $(BUILDDIR)/%.h.gen : $(SRCDIR)/%.d
178
179
sed ' s/JULIA_/JL_PROBE_/' $@ > $@ .tmp
179
180
mv $@ .tmp $@
180
181
182
+ $(BUILDDIR ) /jl_internal_funcs.inc : $(SRCDIR ) /jl_exported_funcs.inc
183
+ # Generate `.inc` file that contains a list of `#define` macros to rename functions defined in `libjulia-internal`
184
+ # to have a `ijl_` prefix instead of `jl_`, to denote that they are coming from `libjulia-internal`. This avoids
185
+ # potential confusion with debugging tools, when inspecting a process that has both `libjulia` and `libjulia-internal`
186
+ # loaded at the same time.
187
+ grep ' XX(.\+)' $< | sed -E ' s/.*XX\((.+)\).*/#define \1 i\1/g' > $@
188
+
181
189
# source file rules
182
190
$(BUILDDIR ) /% .o : $(SRCDIR ) /% .c $(HEADERS ) | $(BUILDDIR )
183
191
@$(call PRINT_CC, $(CC ) $(JCPPFLAGS ) $(JCFLAGS ) $(SHIPFLAGS ) $(DISABLE_ASSERTIONS ) -c $< -o $@ )
213
221
JULIA_SPLITDEBUG := 0
214
222
endif
215
223
$(build_shlibdir ) /libccalltest.$(SHLIB_EXT ) : $(SRCDIR ) /ccalltest.c
216
- @$(call PRINT_CC, $(CC ) $(JCFLAGS ) $(JCPPFLAGS ) $(DEBUGFLAGS ) -O3 $< $(fPIC ) -shared -o $@ .tmp $(JLDFLAGS ) )
224
+ @$(call PRINT_CC, $(CC ) $(JCFLAGS ) $(JCPPFLAGS ) $(FLAGS ) -O3 $< $(fPIC ) -shared -o $@ .tmp $(LDFLAGS ) )
217
225
$(INSTALL_NAME_CMD ) libccalltest.$(SHLIB_EXT ) $@ .tmp
218
226
ifeq ($(JULIA_SPLITDEBUG ) ,1)
219
227
@# Create split debug info file for libccalltest stacktraces test
@@ -230,7 +238,7 @@ endif
230
238
$(INSTALL_NAME_CMD)libccalltest.$(SHLIB_EXT) $@
231
239
232
240
$(build_shlibdir ) /libllvmcalltest.$(SHLIB_EXT ) : $(SRCDIR ) /llvmcalltest.cpp $(LLVM_CONFIG_ABSOLUTE )
233
- @$(call PRINT_CC, $(CXX ) $(LLVM_CXXFLAGS ) $(JCXXFLAGS ) $(JCPPFLAGS ) $(DEBUGFLAGS ) -O3 $< $(fPIC ) -shared -o $@ $(JLDFLAGS ) -L $( build_shlibdir ) -L $( build_libdir ) $(NO_WHOLE_ARCHIVE ) $(LLVMLINK ) ) -lpthread
241
+ @$(call PRINT_CC, $(CXX ) $(LLVM_CXXFLAGS ) $(FLAGS ) $(CPPFLAGS ) $(CXXFLAGS ) -O3 $< $(fPIC ) -shared -o $@ $(LDFLAGS ) $( COMMON_LIBPATHS ) $(NO_WHOLE_ARCHIVE ) $(LLVMLINK ) ) -lpthread
234
242
235
243
julia_flisp.boot.inc.phony : $(BUILDDIR ) /julia_flisp.boot.inc
236
244
@@ -265,6 +273,7 @@ $(BUILDDIR)/llvm-alloc-opt.o $(BUILDDIR)/llvm-alloc-opt.dbg.obj: $(SRCDIR)/codeg
265
273
$(BUILDDIR ) /llvm-final-gc-lowering.o $(BUILDDIR ) /llvm-final-gc-lowering.dbg.obj : $(SRCDIR ) /llvm-pass-helpers.h
266
274
$(BUILDDIR ) /llvm-gc-invariant-verifier.o $(BUILDDIR ) /llvm-gc-invariant-verifier.dbg.obj : $(SRCDIR ) /codegen_shared.h
267
275
$(BUILDDIR ) /llvm-late-gc-lowering.o $(BUILDDIR ) /llvm-late-gc-lowering.dbg.obj : $(SRCDIR ) /llvm-pass-helpers.h
276
+ $(BUILDDIR ) /llvm-lower-handlers.o $(BUILDDIR ) /llvm-lower-handlers.dbg.obj : $(SRCDIR ) /codegen_shared.h
268
277
$(BUILDDIR ) /llvm-multiversioning.o $(BUILDDIR ) /llvm-multiversioning.dbg.obj : $(SRCDIR ) /codegen_shared.h
269
278
$(BUILDDIR ) /llvm-pass-helpers.o $(BUILDDIR ) /llvm-pass-helpers.dbg.obj : $(SRCDIR ) /llvm-pass-helpers.h $(SRCDIR ) /codegen_shared.h
270
279
$(BUILDDIR ) /llvm-ptls.o $(BUILDDIR ) /llvm-ptls.dbg.obj : $(SRCDIR ) /codegen_shared.h
@@ -367,7 +376,7 @@ $(build_shlibdir)/lib%Plugin.$(SHLIB_EXT): $(SRCDIR)/clangsa/%.cpp $(LLVM_CONFIG
367
376
install-analysis-deps :
368
377
$(MAKE ) -C $(JULIAHOME ) /deps install-llvm install-clang install-llvm-tools install-libuv install-utf8proc install-unwind
369
378
370
- analyzegc-deps-check : $(BUILDDIR ) /julia_version.h $(BUILDDIR ) /julia_flisp.boot.inc
379
+ analyzegc-deps-check : $(BUILDDIR ) /julia_version.h $(BUILDDIR ) /julia_flisp.boot.inc $( BUILDDIR ) /jl_internal_funcs.inc
371
380
ifeq ($(USE_BINARYBUILDER_LLVM ) ,0)
372
381
ifneq ($(BUILD_LLVM_CLANG ) ,1)
373
382
$(error Clang must be available to use the clang analyzer. Either build it (BUILD_LLVM_CLANG=1) or use BinaryBuilder)
0 commit comments