Open
Description
In trying to cross compile rust macos → solaris (SPARCv9 and x86-64) I've run into an issue on the SPARC side of things where the build fails with these errors:
/Users/alex/cross/gnu-solaris11/lib/gcc/sparcv9-sun-solaris2.11/11.2.0/../../../../sparcv9-sun-solaris2.11/bin/ld: /Users/alex/cross/rust-1.70.0/build/x86_64-apple-darwin/stage1-rustc/sparcv9-sun-solaris/release/deps/librustc_driver-4d9f640bd5851ea5.so: undefined reference to `kstat_data_lookup'
/Users/alex/cross/gnu-solaris11/lib/gcc/sparcv9-sun-solaris2.11/11.2.0/../../../../sparcv9-sun-solaris2.11/bin/ld: /Users/alex/cross/rust-1.70.0/build/x86_64-apple-darwin/stage1-rustc/sparcv9-sun-solaris/release/deps/librustc_driver-4d9f640bd5851ea5.so: undefined reference to `kstat_open'
/Users/alex/cross/gnu-solaris11/lib/gcc/sparcv9-sun-solaris2.11/11.2.0/../../../../sparcv9-sun-solaris2.11/bin/ld: /Users/alex/cross/rust-1.70.0/build/x86_64-apple-darwin/stage1-rustc/sparcv9-sun-solaris/release/deps/librustc_driver-4d9f640bd5851ea5.so: undefined reference to `kstat_close'
/Users/alex/cross/gnu-solaris11/lib/gcc/sparcv9-sun-solaris2.11/11.2.0/../../../../sparcv9-sun-solaris2.11/bin/ld: /Users/alex/cross/rust-1.70.0/build/x86_64-apple-darwin/stage1-rustc/sparcv9-sun-solaris/release/deps/librustc_driver-4d9f640bd5851ea5.so: undefined reference to `kstat_read'
/Users/alex/cross/gnu-solaris11/lib/gcc/sparcv9-sun-solaris2.11/11.2.0/../../../../sparcv9-sun-solaris2.11/bin/ld: /Users/alex/cross/rust-1.70.0/build/x86_64-apple-darwin/stage1-rustc/sparcv9-sun-solaris/release/deps/librustc_driver-4d9f640bd5851ea5.so: undefined reference to `kstat_lookup'
collect2: error: ld returned 1 exit status
A quick check shows:
[~/cross/rust-1.70.0]$ ag kstat_lookup
src/llvm-project/llvm/lib/TargetParser/Host.cpp
1521: ksp = kstat_lookup(kc, const_cast<char *>("cpu_info"), -1, NULL);
src/llvm-project/third-party/benchmark/src/sysinfo.cc
659: kstat_t* ksp = kstat_lookup(kc, (char*)"cpu_info", -1, (char*)"cpu_info0");
[~/cross/rust-1.70.0]$ ag -F -- -lkstat
src/llvm-project/third-party/benchmark/docs/platform_specific_build_instructions.md
48:too (`-lkstat`).
So it looks like the benchmark docs mention end users should manually link against libkstat
. However for libLLVMTargetParser
it seems like it should ideally be linked against libkstat
at build time (or at least documented).