-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Closed
Labels
needs-triagePRs or issues that need to be investigated by maintainers to find the right assignees to address itPRs or issues that need to be investigated by maintainers to find the right assignees to address ittype: bug
Description
When running FFI unittests under /path-to-tvm/ffi/ via:
pytest -svv tests/python/test_*I noticed that all cpp.load_inline-related tests failed on macOS.
Error message
tests/python/test_load_inline.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
python/tvm_ffi/cpp/load_inline.py:396: in load_inline
_build_ninja(build_dir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
build_dir = '/Users/jshao/.cache/tvm-ffi/hello_e822416553bed865'
def _build_ninja(build_dir: str) -> None:
"""Build the module in the given build directory using ninja."""
command = ["ninja", "-v"]
num_workers = os.environ.get("MAX_JOBS", None)
if num_workers is not None:
command += ["-j", num_workers]
status = subprocess.run(args=command, cwd=build_dir, capture_output=True)
if status.returncode != 0:
msg = ["ninja exited with status {}".format(status.returncode)]
if status.stdout:
msg.append("stdout:\n{}".format(status.stdout.decode("utf-8")))
if status.stderr:
msg.append("stderr:\n{}".format(status.stderr.decode("utf-8")))
> raise RuntimeError("\n".join(msg))
E RuntimeError: ninja exited with status 1
E stdout:
E [1/2] c++ -MMD -MF main.o.d -std=c++17 -fPIC -O2 -I/Users/jshao/Projects/tvm-dev/ffi/python/tvm_ffi/../../include -I/Users/jshao/Projects/tvm-dev/ffi/python/tvm_ffi/../../3rdparty/dlpack/include -c /Users/jshao/.cache/tvm-ffi/hello_e822416553bed865/main.cpp -o main.o
E [2/2] c++ main.o -shared -o hello.so
E FAILED: [code=1] hello.so
E c++ main.o -shared -o hello.so
E Undefined symbols for architecture arm64:
E "_TVMFFIErrorSetRaised", referenced from:
E ___tvm_ffi_add_one_cpu in main.o
E ___tvm_ffi_add_one_cpu in main.o
E "_TVMFFIGetTypeInfo", referenced from:
E tvm::ffi::TypeIndexToTypeKey(int) in main.o
E "_TVMFFITraceback", referenced from:
E add_one_cpu(DLTensor*, DLTensor*) in main.o
E add_one_cpu(DLTensor*, DLTensor*) in main.o
E add_one_cpu(DLTensor*, DLTensor*) in main.o
E add_one_cpu(DLTensor*, DLTensor*) in main.o
E add_one_cpu(DLTensor*, DLTensor*) in main.o
E ___tvm_ffi_add_one_cpu in main.o
E ___tvm_ffi_add_one_cpu in main.o
E ___tvm_ffi_add_one_cpu in main.o
E ...
E "_TVMFFITypeGetOrAllocIndex", referenced from:
E ___cxx_global_var_init in main.o
E ___cxx_global_var_init.1 in main.o
E ___cxx_global_var_init.2 in main.o
E ___cxx_global_var_init.3 in main.o
E ld: symbol(s) not found for architecture arm64
E clang++: error: linker command failed with exit code 1 (use -v to see invocation)
E ninja: build stopped: subcommand failed.
Environment
- OS: macOS 15.6.1, arm64
- C++ toolchain
>>> c++ --version
Apple clang version 17.0.0 (clang-1700.0.13.5)
Target: arm64-apple-darwin24.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
- Python toolchain: venv via uv
>>> python --version
Python 3.13.1
>>> uv pip list
Package Version Editable project location
-------------- ------- ---------------------------------
apache-tvm-ffi 0.1.0a8 /Users/jshao/Projects/tvm-dev/ffi
iniconfig 2.1.0
numpy 2.3.3
packaging 25.0
pluggy 1.6.0
pygments 2.19.2
pytest 8.4.2
Metadata
Metadata
Assignees
Labels
needs-triagePRs or issues that need to be investigated by maintainers to find the right assignees to address itPRs or issues that need to be investigated by maintainers to find the right assignees to address ittype: bug