-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
Expected behavior
When enabling the USE_MICRO build flag, builds complete successfully on various platforms.
Actual behavior
Enabling USE_MICRO build flag can be problematic on various platforms, including Windows (worked-around for now), MacOS, and other cross-compilation environments.
Details
StandaloneCrt.make builds a number of libraries when USE_MICRO is enabled. The object files and libraries are written to the host_standalone_crt directory in the TVM build directory. Only one of those libraries, libmicrotvm_rpc_common, is linked into the TVM runtime library. The other libraries in host standalone_ crt are built only to assure they are still buildable.
Additionally, StandaloneCrt.make copies a number of source files to the standalone_ crt in the build directory for use later by the microTVM Project API server as well as for building the libraries mentioned above.
The issue is that the both the makefile used to build those libraries as well as the commands to link in libmicrotvm_rpc_common to TVM in StandaloneCrt.cmake are tailored to only support GCC (or clang) and can cause issues on other platforms or in cross-compilation environments.