Hi, @esc . Today, I want to build llvmlite from source on my Mac laptop, but I failed...
Here is the process:
First, I use conda env create numbaenv, then I use conda install llvmdev as the llvmlite doc said.
(numbaenv) ➜ llvmlite (main) ✗)conda list
# packages in environment at /usr/local/anaconda3/envs/numbaenv:
#
# Name Version Build Channel
blas 1.0 mkl
bzip2 1.0.8 h1de35cc_0
c-ares 1.18.1 hca72f7f_0
ca-certificates 2022.4.26 hecd8cb5_0
certifi 2022.5.18.1 py38hecd8cb5_0
cffi 1.15.0 py38hc55c11b_1
cfgv 3.3.1 pypi_0 pypi
clang 12.0.0 hecd8cb5_2
clang-12 12.0.0 default_hfcad0e5_2
cmake 3.22.1 hbfa4a85_0
cudatoolkit 9.1 hd1db75b_0 numba
distlib 0.3.4 pypi_0 pypi
expat 2.4.4 he9d5cce_0
filelock 3.7.1 pypi_0 pypi
identify 2.5.1 pypi_0 pypi
importlib-metadata 4.11.3 pypi_0 pypi
importlib_metadata 4.11.3 hd3eb1b0_0
intel-openmp 2021.4.0 hecd8cb5_3538
jinja2 3.0.3 pyhd3eb1b0_0
krb5 1.19.2 hcd88c3b_0
libclang-cpp12 12.0.0 default_hfcad0e5_2
libcurl 7.82.0 h6dfd666_0
libcxx 12.0.0 h2f01273_0
libedit 3.1.20210910 hca72f7f_0
libev 4.33 h9ed2024_1
libffi 3.3 hb1e8313_2
libgfortran 3.0.1 h93005f0_2
libllvm12 12.0.0 h9b2ccf5_3
libnghttp2 1.46.0 ha29bfda_0
libssh2 1.10.0 h0a4fc7d_0
libuv 1.40.0 haf1e3a3_0
llvmdev 11.1.0 h01edc0c_4 numba
llvmlite 0.39.0dev0 py38_63 numba/label/dev
lz4-c 1.9.3 h23ab428_1
make 4.2.1 h3efe00b_1
markupsafe 2.0.1 py38h9ed2024_0
mkl 2021.4.0 hecd8cb5_637
mkl-service 2.4.0 py38h9ed2024_0
mkl_fft 1.3.1 py38h4ab4a9b_0
mkl_random 1.2.2 py38hb2f4e1b_0
ncurses 6.3 hca72f7f_2
nodeenv 1.6.0 pypi_0 pypi
numba 0.56.0.dev0+489.g63bb6c38b dev_0 <develop>
numpy 1.21.5 py38h2e5f0a9_1
numpy-base 1.21.5 py38h3b1a694_1
openssl 1.1.1o hca72f7f_0
pandas 1.4.2 pypi_0 pypi
pip 21.2.4 py38hecd8cb5_0
platformdirs 2.5.2 pypi_0 pypi
pre-commit 2.19.0 pypi_0 pypi
pycparser 2.21 pyhd3eb1b0_0
python 3.8.13 hdfd78df_0
python-dateutil 2.8.2 pypi_0 pypi
pytz 2022.1 pypi_0 pypi
pyyaml 6.0 pypi_0 pypi
readline 8.1.2 hca72f7f_1
rhash 1.4.1 hbcfaee0_1
scipy 1.7.3 py38h8c7af03_0
setuptools 62.6.0 pypi_0 pypi
six 1.16.0 pyhd3eb1b0_1
sqlite 3.38.3 h707629a_0
tk 8.6.11 h3fd3227_1
toml 0.10.2 pypi_0 pypi
virtualenv 20.14.1 pypi_0 pypi
wheel 0.37.1 pyhd3eb1b0_0
xz 5.2.5 hca72f7f_1
zipp 3.8.0 py38hecd8cb5_0
zlib 1.2.12 h4dc903c_2
zstd 1.5.2 hcb37349_0
Then I also cloned llvmlite source code, then I typed:
(numbaenv) ➜ llvmlite (main) ✗)LLVM_CONFIG=/usr/local/anaconda3/pkgs/llvmdev-11.1.0-h01edc0c_4/bin/llvm-config python setup.py build
/usr/local/anaconda3/envs/numbaenv/lib/python3.8/site-packages/setuptools/dist.py:516: UserWarning: Normalizing '0.39.0dev0+101.gbad554c' to '0.39.0.dev0+101.gbad554c'
warnings.warn(tmpl.format(**locals()))
running build
got version from VCS {'version': '0.39.0dev0+101.gbad554c', 'full': 'bad554cfcbd3b81ab984108137c7d7830fb3f272'}
running build_ext
/usr/local/anaconda3/envs/numbaenv/bin/python /Users/ld/Code/llvmlite/ffi/build.py
LLVM version... 11.1.0
SVML detected
MACOSX_DEPLOYMENT_TARGET=10.9 clang++ -std=c++11 -stdlib=libc++ -dynamiclib -I/usr/local/anaconda3/pkgs/llvmdev-11.1.0-h01edc0c_4/include -std=c++14 -stdlib=libc++ -fno-exceptions -fno-rtti -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -g -DHAVE_SVML assembly.cpp bitcode.cpp core.cpp initfini.cpp module.cpp value.cpp executionengine.cpp transforms.cpp passmanagers.cpp targets.cpp dylib.cpp linker.cpp object_file.cpp custom_passes.cpp -o libllvmlite.dylib "-Wl,-exported_symbol,_LLVMPY_*" -L/usr/local/anaconda3/pkgs/llvmdev-11.1.0-h01edc0c_4/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVMXRay -lLLVMWindowsManifest -lLLVMTableGen -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMOrcJIT -lLLVMOrcError -lLLVMJITLink -lLLVMObjectYAML -lLLVMMCA -lLLVMLTO -lLLVMPasses -lLLVMCoroutines -lLLVMObjCARCOpts -lLLVMExtensions -lLLVMLineEditor -lLLVMLibDriver -lLLVMInterpreter -lLLVMFuzzMutate -lLLVMMCJIT -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMDWARFLinker -lLLVMDlltoolDriver -lLLVMOption -lLLVMDebugInfoGSYM -lLLVMCoverage -lLLVMWebAssemblyDisassembler -lLLVMWebAssemblyCodeGen -lLLVMWebAssemblyDesc -lLLVMWebAssemblyAsmParser -lLLVMWebAssemblyInfo -lLLVMRISCVDisassembler -lLLVMRISCVCodeGen -lLLVMRISCVAsmParser -lLLVMRISCVDesc -lLLVMRISCVUtils -lLLVMRISCVInfo -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMMSP430Disassembler -lLLVMMSP430CodeGen -lLLVMMSP430AsmParser -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonAsmParser -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMBPFDisassembler -lLLVMBPFCodeGen -lLLVMBPFAsmParser -lLLVMBPFDesc -lLLVMBPFInfo -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMUtils -lLLVMARMInfo -lLLVMAMDGPUDisassembler -lLLVMAMDGPUCodeGen -lLLVMMIRParser -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMFrontendOpenMP -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAArch64Disassembler -lLLVMMCDisassembler -lLLVMAArch64CodeGen -lLLVMCFGuard -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoDWARF -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMObject -lLLVMTextAPI -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMAArch64AsmParser -lLLVMMCParser -lLLVMAArch64Desc -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMBinaryFormat -lLLVMAArch64Utils -lLLVMAArch64Info -lLLVMSupport -lLLVMDemangle -lz -lm
ld: unsupported tapi file type '!tapi-tbd' in YAML file '/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/usr/lib/libm.tbd' for architecture x86_64
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile.osx:16: all] Error 1
Traceback (most recent call last):
File "/Users/ld/Code/llvmlite/ffi/build.py", line 226, in <module>
main()
File "/Users/ld/Code/llvmlite/ffi/build.py", line 220, in main
main_posix('osx', '.dylib')
File "/Users/ld/Code/llvmlite/ffi/build.py", line 208, in main_posix
subprocess.check_call(['make', '-f', makefile] + makeopts)
File "/usr/local/anaconda3/envs/numbaenv/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-f', 'Makefile.osx', '-j12']' returned non-zero exit status 2.
error: command '/usr/local/anaconda3/envs/numbaenv/bin/python' failed with exit code 1
I think the important info is I pointed out the LLVM_CONFIG path to conda installed version, but when llvmlite begins to build, it uses clang-13 not clang-11.1.0. In fact, I check the path /usr/local/anaconda3/pkgs/llvmdev-11.1.0-h01edc0c_4/bin, llvmdev package doesn't contain clang binary in the bin folder.
(numbaenv) ➜ llvmlite (main) ✗)clang++ -v
Homebrew clang version 13.0.0
Target: x86_64-apple-darwin21.5.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
And my cmake is also installed using conda:
(numbaenv) ➜ llvmlite (main) ✗)conda list make
# packages in environment at /usr/local/anaconda3/envs/numbaenv:
#
# Name Version Build Channel
cmake 3.22.1 hbfa4a85_0
make 4.2.1 h3efe00b_1
I guess I need to brew install llvm@11 to get clang-11 and use it to build llvmlite? PS, I didn't change llvmlite source code at all, the ✗ shown in the terminal is because I use pycharm and it generated the .idea folder.
Many thanks in advance!
Hi, @esc . Today, I want to build llvmlite from source on my Mac laptop, but I failed...
Here is the process:
First, I use conda env create
numbaenv, then I use conda install llvmdev as the llvmlite doc said.Then I also cloned llvmlite source code, then I typed:
I think the important info is I pointed out the LLVM_CONFIG path to conda installed version, but when llvmlite begins to build, it uses clang-13 not clang-11.1.0. In fact, I check the path
/usr/local/anaconda3/pkgs/llvmdev-11.1.0-h01edc0c_4/bin, llvmdev package doesn't contain clang binary in the bin folder.And my cmake is also installed using conda:
I guess I need to
brew install llvm@11to getclang-11and use it to build llvmlite? PS, I didn't change llvmlite source code at all, the✗shown in the terminal is because I use pycharm and it generated the.ideafolder.Many thanks in advance!