You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tvm.apache.org by Wookey <wo...@wookware.org> on 2022/03/17 03:32:34 UTC

tvm API stability?

[please cc me, I am not yet subscribed to this list]

I am packaging tvm for debian and noticed that the project does not appear to use SONAMES on the libraries.
 (i.e. it's just libtvm.so not libtvm.so.0 or 0.8  etc)
I guess this may be because it's relatively new so API stability has not been worried about much?

Do you currently make any claims about API stability or otherwise? Do
you plan to use semantic versioning to indicate API compatibility at some point?

I've patched cmake to add an SONAME, which is simple enough. It's
generally a good idea for projects to version their library APIs, but
maybe this is premature still?

--- tvm-0.8.0.orig/CMakeLists.txt
+++ tvm-0.8.0/CMakeLists.txt
@@ -477,6 +477,7 @@ add_library(tvm_libinfo_objs OBJECT ${LI
 add_library(tvm SHARED $<TARGET_OBJECTS:tvm_objs> $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
 set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}")
 set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}")
+set_property(TARGET tvm APPEND PROPERTY SOVERSION 0 )
 if(BUILD_STATIC_RUNTIME)
   add_library(tvm_runtime STATIC $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
   set(NOTICE_MULTILINE
@@ -490,6 +491,7 @@ else()
   set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}")
 endif()
 set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}")
+set_property(TARGET tvm_runtime APPEND PROPERTY SOVERSION 0 )

 target_compile_definitions(tvm_objs PUBLIC DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
 target_compile_definitions(tvm_runtime_objs PUBLIC DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/