Skip to content

Commit 6b934f9

Browse files
vchuravynalimilan
andauthored
Add ITTAPI source for offline (#49022)
* Add ITTAPI sources for offline build Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr>
1 parent fa6db2f commit 6b934f9

File tree

9 files changed

+82
-3
lines changed

9 files changed

+82
-3
lines changed

Make.inc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ WITH_GC_DEBUG_ENV := 0
8989
# Enable DTrace support
9090
WITH_DTRACE := 0
9191

92+
# Enable ITTAPI integration
93+
WITH_ITTAPI := 0
94+
9295
# Enable Tracy support
9396
WITH_TRACY := 0
9497

@@ -728,6 +731,12 @@ JCFLAGS += -DUSE_DTRACE
728731
DTRACE := dtrace
729732
endif
730733

734+
ifeq ($(WITH_ITTAPI), 1)
735+
JCXXFLAGS += -DUSE_ITTAPI
736+
JCFLAGS += -DUSE_ITTAPI
737+
LIBITTAPI:=-littnotify
738+
endif
739+
731740
ifeq ($(WITH_TRACY), 1)
732741
JCXXFLAGS += -DUSE_TRACY -DTRACY_ENABLE
733742
JCFLAGS += -DUSE_TRACY -DTRACY_ENABLE

THIRDPARTY.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ own licenses:
2424
- [LLVM](https://releases.llvm.org/12.0.1/LICENSE.TXT) [APACHE 2.0 with LLVM Exception]
2525
- [UTF8PROC](https://github.com/JuliaStrings/utf8proc) [MIT]
2626

27+
and optionally:
28+
29+
- [ITTAPI](https://github.com/intel/ittapi/blob/master/LICENSES/BSD-3-Clause.txt) [BSD-3]
30+
2731
Julia's `stdlib` uses the following external libraries, which have their own licenses:
2832

2933
- [DSFMT](https://github.com/MersenneTwister-Lab/dSFMT/blob/master/LICENSE.txt) [BSD-3]

contrib/refresh_checksums.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ BB_PROJECTS=mbedtls libssh2 nghttp2 mpfr curl libgit2 pcre libuv unwind llvmunwi
2828
BB_GCC_EXPANDED_PROJECTS=openblas csl
2929
BB_CXX_EXPANDED_PROJECTS=gmp llvm clang llvm-tools lld
3030
# These are non-BB source-only deps
31-
NON_BB_PROJECTS=patchelf mozillacert lapack libwhich utf8proc
31+
NON_BB_PROJECTS=patchelf mozillacert lapack libwhich utf8proc ittapi
3232

3333
ifneq ($(VERBOSE),1)
3434
QUIET_MAKE := -s

deps/Makefile

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,16 @@ ifeq ($(USE_SYSTEM_P7ZIP), 0)
155155
DEP_LIBS += p7zip
156156
endif
157157

158+
ifeq ($(USE_INTEL_JITEVENTS), 1)
159+
ifeq ($(USE_BINARYBUILDER_LLVM), 0)
160+
DEP_LIBS += ittapi
161+
endif
162+
endif
163+
164+
ifeq ($(WITH_ITTAPI),1)
165+
DEP_LIBS += ittapi
166+
endif
167+
158168

159169
# Only compile standalone LAPACK if we are not using OpenBLAS.
160170
# OpenBLAS otherwise compiles LAPACK as part of its build.
@@ -178,7 +188,7 @@ DEP_LIBS_STAGED := $(DEP_LIBS)
178188
DEP_LIBS_STAGED_ALL := llvm llvm-tools clang llvmunwind unwind libuv pcre \
179189
openlibm dsfmt blastrampoline openblas lapack gmp mpfr patchelf utf8proc \
180190
objconv mbedtls libssh2 nghttp2 curl libgit2 libwhich zlib p7zip csl \
181-
libsuitesparse lld libtracyclient
191+
libsuitesparse lld libtracyclient ittapi
182192
DEP_LIBS_ALL := $(DEP_LIBS_STAGED_ALL)
183193

184194
ifneq ($(USE_BINARYBUILDER_OPENBLAS),0)
@@ -213,6 +223,7 @@ distcleanall: $(addprefix distclean-, $(DEP_LIBS_ALL))
213223
getall: $(addprefix get-, $(DEP_LIBS_ALL))
214224

215225
include $(SRCDIR)/csl.mk
226+
include $(SRCDIR)/ittapi.mk
216227
include $(SRCDIR)/llvm.mk
217228
include $(SRCDIR)/libuv.mk
218229
include $(SRCDIR)/pcre.mk

deps/checksums/ittapi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ittapi-0014aec56fea2f30c1374f40861e1bccdd53d0cb.tar.gz/md5/932501cdb0e1c7841e23c12da7740419
2+
ittapi-0014aec56fea2f30c1374f40861e1bccdd53d0cb.tar.gz/sha512/4dd3343837398ada0cdcdaaff630d8d91738d166897d86b77770facde30da99dbb90931b58a4a887399e6bc9a7a1c245057d0a0f63762230d577d71da871701f

deps/ittapi.mk

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
## ittapi ##
2+
include $(SRCDIR)/ittapi.version
3+
4+
ITTAPI_GIT_URL := https://github.com/intel/ittapi.git
5+
ITTAPI_TAR_URL = https://api.github.com/repos/intel/ittapi/tarball/$1
6+
$(eval $(call git-external,ittapi,ITTAPI,CMakeLists.txt,,$(SRCCACHE)))
7+
8+
ITTAPI_OPTS := $(CMAKE_COMMON) -DCMAKE_BUILD_TYPE=Release -DITT_API_IPT_SUPPORT= -DITT_API_FORTRAN_SUPPORT=0
9+
10+
$(BUILDDIR)/$(ITTAPI_SRC_DIR)/build-configured: $(SRCCACHE)/$(ITTAPI_SRC_DIR)/source-extracted
11+
mkdir -p $(dir $@)
12+
cd $(dir $@) && \
13+
$(CMAKE) $(dir $<) $(ITTAPI_OPTS)
14+
echo 1 > $@
15+
16+
$(BUILDDIR)/$(ITTAPI_SRC_DIR)/build-compiled: $(BUILDDIR)/$(ITTAPI_SRC_DIR)/build-configured
17+
$(MAKE) -C $(dir $<)
18+
echo 1 > $@
19+
20+
define ITTAPI_INSTALL
21+
mkdir -p $2/$$(build_libdir)
22+
mkdir -p $2/$$(build_includedir)/ittapi
23+
cp -a $1/bin/libittnotify.a $2/$$(build_libdir)
24+
cp -a $1/bin/libjitprofiling.a $2/$$(build_libdir)
25+
# cp -a $1/bin/libadvisor.a $2/$$(build_libdir)
26+
cp -a $(SRCCACHE)/$(ITTAPI_SRC_DIR)/include/ittnotify.h $2/$$(build_includedir)/ittapi/
27+
cp -a $(SRCCACHE)/$(ITTAPI_SRC_DIR)/include/ittnotify-zca.h $2/$$(build_includedir)/ittapi/
28+
cp -a $(SRCCACHE)/$(ITTAPI_SRC_DIR)/include/jitprofiling.h $2/$$(build_includedir)/ittapi/
29+
endef
30+
31+
$(eval $(call staged-install, \
32+
ittapi,$(ITTAPI_SRC_DIR), \
33+
ITTAPI_INSTALL,,,))
34+
35+
get-ittapi: $(ITTAPI_SRC_FILE)
36+
extract-ittapi: $(SRCCACHE)/$(ITTAPI_SRC_DIR)/source-extracted
37+
configure-ittapi: $(BUILDDIR)/$(ITTAPI_SRC_DIR)/build-configured
38+
compile-ittapi: $(BUILDDIR)/$(ITTAPI_SRC_DIR)/build-compiled
39+
fastcheck-ittapi: #none
40+
check-ittapi: #none
41+
42+
clean-ittapi:
43+
-rm -f $(BUILDDIR)/$(ITTAPI_SRC_DIR)/build-compiled $(build_libdir)/libopenlibm.a

deps/ittapi.version

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## source build
2+
ITTAPI_BRANCH=v3.24.0
3+
ITTAPI_SHA1=0014aec56fea2f30c1374f40861e1bccdd53d0cb

deps/llvm.mk

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ ifeq ($(USE_LLVM_SHLIB),1)
120120
LLVM_CMAKE += -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON -DLLVM_LINK_LLVM_DYLIB:BOOL=ON
121121
endif
122122
ifeq ($(USE_INTEL_JITEVENTS), 1)
123-
LLVM_CMAKE += -DLLVM_USE_INTEL_JITEVENTS:BOOL=ON
123+
LLVM_CMAKE += -DLLVM_USE_INTEL_JITEVENTS:BOOL=ON -DITTAPI_SOURCE_DIR=$(SRCCACHE)/$(ITTAPI_SRC_DIR)
124124
endif # USE_INTEL_JITEVENTS
125125

126126
ifeq ($(USE_OPROFILE_JITEVENTS), 1)
@@ -286,6 +286,11 @@ configure-llvm: $(LLVM_BUILDDIR_withtype)/build-configured
286286
compile-llvm: $(LLVM_BUILDDIR_withtype)/build-compiled
287287
fastcheck-llvm: #none
288288
check-llvm: $(LLVM_BUILDDIR_withtype)/build-checked
289+
290+
ifeq ($(USE_INTEL_JITEVENTS),1)
291+
extract-llvm: $(SRCCACHE)/$(ITTAPI_SRC_DIR)/source-extracted
292+
endif
293+
289294
#todo: LLVM make check target is broken on julia.mit.edu (and really slow elsewhere)
290295

291296
else # USE_BINARYBUILDER_LLVM

doc/src/devdocs/build/build.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ uses are listed in [`deps/$(libname).version`](https://github.com/JuliaLang/juli
187187
- **[mbedtls]** — library used for cryptography and transport layer security, used by libssh2
188188
- **[utf8proc]** — a library for processing UTF-8 encoded Unicode strings.
189189
- **[LLVM libunwind]** — LLVM's fork of [libunwind], a library that determines the call-chain of a program.
190+
- **[ITTAPI]** — Intel's Instrumentation and Tracing Technology and Just-In-Time API.
190191

191192
[GNU make]: https://www.gnu.org/software/make
192193
[patch]: https://www.gnu.org/software/patch
@@ -222,6 +223,7 @@ uses are listed in [`deps/$(libname).version`](https://github.com/JuliaLang/juli
222223
[pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config/
223224
[powershell]: https://docs.microsoft.com/en-us/powershell/scripting/wmf/overview
224225
[which]: https://carlowood.github.io/which/
226+
[ITTAPI]: https://github.com/intel/ittapi
225227

226228
## Build dependencies
227229

0 commit comments

Comments
 (0)