Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

riscv64-unknown-linux-musl 交叉编译报错libonnxruntime.so: undefined reference xxx #1842

Open
bjNong opened this issue Feb 11, 2025 · 11 comments

Comments

@bjNong
Copy link

bjNong commented Feb 11, 2025

你好,我使用sherpa-onnx-1.10.43的代码,编译riscv64平台时遇到以下问题

/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-g++ -Wl,-rpath='/opt/toolschain/zam70/riscv64-linux-musl-x86_64/sysroot/lib' -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -O3 -DNDEBUG -flto -fno-fat-lto-objects CMakeFiles/sherpa-onnx.dir/sherpa-onnx.cc.o -o ../../bin/sherpa-onnx -Wl,-rpath,"$ORIGIN:/home/nongbojian/workcode/numbers/kokoro/sherpa-onnx-1.10.43/sherpa-onnx-1.10.43/build-riscv64-linux-musl/_deps/onnxruntime-src/lib:" ../../lib/libsherpa-onnx-core.a -Wl,-rpath,$ORIGIN/../lib -Wl,-rpath,$ORIGIN/../../../sherpa_onnx/lib ../../lib/libkaldi-native-fbank-core.a ../../lib/libkaldi-decoder-core.a ../../lib/libsherpa-onnx-kaldifst-core.a ../../lib/libssentencepiece_core.a -lpthread ../../_deps/onnxruntime-src/lib/libonnxruntime.so -lm ../../lib/libsherpa-onnx-fstfar.a ../../lib/libsherpa-onnx-fst.a ../../lib/libpiper_phonemize.a ../../lib/libespeak-ng.a -Wl,-rpath,$ORIGIN -lm ../../lib/libucd.a -pthread -latomic
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libdl.so.2, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: librt.so.1, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libpthread.so.0, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libm.so.6, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libc.so.6, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: ld-linux-riscv64xthead-lp64d.so.1, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to acos@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to fminf@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to sincos@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to clock_gettime@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to nanosleep@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to strnlen@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to stderr@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to strcpy@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to pthread_setaffinity_np@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to log@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to truncf@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to dlclose@GLIBC_2.27'
....


编译器版本
root@zkteco:/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin# ./riscv64-unknown-linux-musl-gcc -v
Using built-in specs.
COLLECT_GCC=./riscv64-unknown-linux-musl-gcc
COLLECT_LTO_WRAPPER=/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../libexec/gcc/riscv64-unknown-linux-musl/10.2.0/lto-wrapper
Target: riscv64-unknown-linux-musl
Configured with: /mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-musl --with-gmp=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpfr=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpc=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libexpat-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libmpfr-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-pkgversion='Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906' CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=2.6.1 ' --prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1 --with-sysroot=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medany'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906)

root@zkteco:/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin# ./riscv64-unknown-linux-musl-g++ -v
Using built-in specs.
COLLECT_GCC=./riscv64-unknown-linux-musl-g++
COLLECT_LTO_WRAPPER=/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../libexec/gcc/riscv64-unknown-linux-musl/10.2.0/lto-wrapper
Target: riscv64-unknown-linux-musl
Configured with: /mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-musl --with-gmp=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpfr=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpc=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libexpat-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libmpfr-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-pkgversion='Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906' CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=2.6.1 ' --prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1 --with-sysroot=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medany'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906)

@csukuangfj
Copy link
Collaborator

我们提供的 onnxruntime 库,不是 musl 的.

你是不是需要自己编译一个支持 musl 的 onnxruntime 库?

@csukuangfj
Copy link
Collaborator

编译riscv64平台时遇到以下问题

你必须要用 riscv64-unknown-linux-musl 这个工具吗? 是否试过我们文档里的方法?

@bjNong bjNong marked this as a duplicate of #1843 Feb 11, 2025
@bjNong
Copy link
Author

bjNong commented Feb 11, 2025

编译riscv64平台时遇到以下问题

你必须要用 riscv64-unknown-linux-musl 这个工具吗? 是否试过我们文档里的方法?

目前手上的产品用的是这个工具,想验证一下可行性

@csukuangfj
Copy link
Collaborator

是否试过我们文档里的方法?

@bjNong
Copy link
Author

bjNong commented Feb 11, 2025

是否试过我们文档里的方法?

请问是哪个文档里面的方法?我这个工具看起来需要全部自己编译一遍依赖的so,我看脚本里面拉取的都是预编译的了。

@csukuangfj
Copy link
Collaborator

额,你连安装文档都不看呀

https://k2-fsa.github.io/sherpa/onnx/install/riscv64-embedded-linux.html

是这个

@bjNong
Copy link
Author

bjNong commented Feb 11, 2025

额,你连安装文档都不看呀

https://k2-fsa.github.io/sherpa/onnx/install/riscv64-embedded-linux.html

是这个

我是根据这个来的,把sh脚本和camke里面的编译器换成riscv64-unknown-linux-musl。就遇到了现在的问题。

看起来这样是不行,有一些so都是预编译,和我的编译器不同。

@csukuangfj
Copy link
Collaborator

额,就是说,你完全按照文档来,不用你这个工具,可不可以?

@csukuangfj
Copy link
Collaborator

编译riscv64平台时遇到以下问题

你必须要用 riscv64-unknown-linux-musl 这个工具吗? 是否试过我们文档里的方法?

就是最开始说的这个

@bjNong
Copy link
Author

bjNong commented Feb 12, 2025

额,就是说,你完全按照文档来,不用你这个工具,可不可以?

额,那样就没办法了。我的平台都是使用这个工具。我这里好像也访问不了HuggingFace。

@csukuangfj
Copy link
Collaborator

我这里好像也访问不了HuggingFace。

要么科学上网,要么找 huggingface 的镜像。 友情提示, 其中一个镜像是 hf-mirror.com


我的平台都是使用这个工具

那你自己用这个工具,交叉编译 onnxruntime, 然后替换掉我们提供的 onnxruntime 库,即可。


以上.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants