| Summary: | undefined reference to `onnx::OpSchema::SetDomain(char const*)' | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Arseny Maslennikov <arseny> |
| Component: | libonnx-devel | Assignee: | Anton Zhukharev <ancieg> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | ancieg |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
|
Description
Arseny Maslennikov
2025-07-30 13:37:07 MSK
Этот апстрим (https://github.com/onnx/onnx), кажется, тоже отбитый. :( Нашёл в истории проекта вот такое: commit 222a04e0fa9443e53ae6dbf366d740d4ab3567c8 tree f3b43e6fbcec39b7b4aa522c1e2adffe1f843422 parent 1989d57f4814366eb6e7ef43c88e2bac3f7f5b5f author cyyever <cyyever@outlook.com> Fri Sep 27 15:47:18 2024 +0800 committer GitHub <noreply@github.com> Fri Sep 27 07:47:18 2024 +0000 Set hidden visibility on onnx target (#6393) ### Description <!-- - Describe your changes. --> Don't leak symbols. ### Motivation and Context For better code. <!-- - Why is this change required? What problem does it solve? --> <!-- - If it fixes an open issue, please link to the issue here. --> Signed-off-by: cyy <cyyever@outlook.com> diff --git a/CMakeLists.txt b/CMakeLists.txt index d6a3450b..13b062d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -522,6 +522,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "AIX") else() add_library(onnx ${ONNX_SRCS}) endif() +set_target_properties(onnx PROPERTIES CXX_VISIBILITY_PRESET hidden) +set_target_properties(onnx PROPERTIES VISIBILITY_INLINES_HIDDEN 1) target_include_directories(onnx PUBLIC $<BUILD_INTERFACE:${ONNX_ROOT}> Намекают внешним проектам, что "вас здесь не стояло". :( Или, не напрягаясь обосновать, рекомендуют тащить себе дистрибутив исходников и собираться с ним вместе Rust/Golang-style, мол, при статической линковке никаких скрытых символов нет. Тем не менее, представители проекта onnx-mlir на этой неделе оказались в похожей ситуации и решили что-то изменить: https://github.com/onnx/onnx/pull/7179 В итоге анекдот: половину символов раскрыли (по принципу "от балды"), половину не раскрыли. Придётся, видимо, следуя за рекомендациями апстрима onnxruntime, просто завендорить исходники onnx. По существу, неприятны тут только две вещи: 1) это надо делать руками в gear-репозитории => малый градус верифицируемости действий; 2) у нас нет общего механизма взять исходники именно пакета onnx в нашем репозитории, а не просто какой-то тарболл или, как у них по умолчанию, .zip с гитхаба. |