Hi,
I packaged the rust_uno bindings in my master packaging work. Thanks for the
work. Got it into some packages
and stumbled upon some issues/shortcomings.
(Yes, I know it's experimental, but better prepare early...).
Or is this an own error? Would be grateful for input/hints...
The two things are as follows:
1. librust_uno.so and/or the example extension
When configuring with --enable-rust-uno I *do* get
rene@frodo:~/LibreOffice/git$ dpkg --contents
libreoffice-core_26.2.0~alpha0~git20251019-1_amd64.deb | grep rust
-rw-r--r-- root/root 6011360 2025-06-09 13:47
./usr/lib/libreoffice/program/librust_uno-cpplo.so
rene@frodo:~/LibreOffice/git$ dpkg --contents
libreoffice-dev_26.2.0~alpha0~git20251019-1_amd64.deb | grep rust
-rwxr-xr-x root/root 147 2025-06-09 13:47
./usr/lib/libreoffice/sdk/bin/rustmaker
-rwxr-xr-x root/root 224504 2025-06-09 13:47
./usr/lib/libreoffice/sdk/bin/rustmaker.bin
rene@frodo:~/LibreOffice/git$
packaged. So far so good. (And I packaged the rust_uno crate.).
The librust_uno.so library is not installed though.
Now I tried to whether the stuff actually works. So I unopkg add'ed the
rust_uno-example.oxt extension, which registers fine and I get the "Rust UNO"
menu entry.
That one actually doesn't work and says "" though, which wondered me.
The extensions' content is like this:
rene@debianunstable:~/.config/libreofficedev/4/user/uno_packages/cache/uno_packages/lu2400418pq8j.tmp_/rust_uno-example.oxt$
ls
Addons.xcu librust_uno.so platform.components rust_uno-example.uno.so
description.xml META-INF ProtocolHandler.xcu
rene@debianunstable:~/.config/libreofficedev/4/user/uno_packages/cache/uno_packages/lu2400418pq8j.tmp_/rust_uno-example.oxt$
It turns out the librust_uno.so is not mentioned anywhere and
ust_uno-example.uno.so links to it:
rene@debianunstable:~/.config/libreofficedev/4/user/uno_packages/cache/uno_packages/lu2400418pq8j.tmp_/rust_uno-example.oxt$
ldd rust_uno-example.uno.so
linux-vdso.so.1 (0x00007f5ceb76e000)
librust_uno.so => not found
libuno_cppu.so.3 => /lib/x86_64-linux-gnu/libuno_cppu.so.3
(0x00007f5ceb70d000)
[...]
rene@debianunstable:~/.config/libreofficedev/4/user/uno_packages/cache/uno_packages/lu2400418pq8j.tmp_/rust_uno-example.oxt
and indeed that one file is not installed into /program (see above) and not
found when using the extension either. How is rust_uno-example.uno.so supposed
to find
librust_uno.so here? There sis no RPATH setting and nothing mentioned anywhere?
After setting LD_LIBRARY_PATH accordingly (actually to make it easier copying
librust_uno.so to /usr/lib/libreoffice/program and sticking a export
LD_LIBRARY_PATH=/usr/lib/libreoffice/program:$LD_LIBRARY_PATH into soffice) it
works. I can call that menu, get text contents in writer and the expected
output on the console.
Which is a viable workaround, but was probably never intended?
Did I miss some setting? platform.components at least only mentions
rust_uno-example.uno.so and adding another component fails because I don't know
what to put in there and an empy one isn't liked :)
2.) cargo test
cargo build inside the packages crate works.
cargo check works:
rene@frodo:~/LibreOffice/git/master/rust_uno$ /usr/share/cargo/bin/cargo build
--release --verbose
Compiling rust_uno v0.1.0 (/home/rene/LibreOffice/git/master/rust_uno)
Running `rustc --crate-name build_script_build --edition=2024 build.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --crate-type bin --emit=dep-info,link -C
embed-bitcode=no -C debug-assertions=off --check-cfg 'cfg(docsrs,test)'
--check-cfg 'cfg(feature, values())' -C metadata=6fef42e64637427d -C
extra-filename=-cf51b9cd7b0a075d --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/build/rust_uno-cf51b9cd7b0a075d
-C strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps`
Running
`/home/rene/LibreOffice/git/master/rust_uno/target/release/build/rust_uno-cf51b9cd7b0a075d/build-script-build`
Running `rustc --crate-name rust_uno --edition=2024 src/lib.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --crate-type cdylib --emit=dep-info,link -C opt-level=3
-C embed-bitcode=no --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature,
values())' -C metadata=39be7c7c8929bd0c --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -C
strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -L
native=../instdir/program -L native=../workdir/LinkTarget/Library -l
rust_uno-cpplo`
Finished `release` profile [optimized] target(s) in 8.19s
rene@frodo:~/LibreOffice/git/master/rust_uno$ /usr/share/cargo/bin/cargo check
--release --verbose
Checking rust_uno v0.1.0 (/home/rene/LibreOffice/git/master/rust_uno)
Running `rustc --crate-name rust_uno --edition=2024 src/lib.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --crate-type cdylib --emit=dep-info,metadata -C
opt-level=3 -C embed-bitcode=no --check-cfg 'cfg(docsrs,test)' --check-cfg
'cfg(feature, values())' -C metadata=65ad72537f646729 -C
extra-filename=-61b16b35661c6c97 --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -C
strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -L
native=../instdir/program -L native=../workdir/LinkTarget/Library -l
rust_uno-cpplo`
Finished `release` profile [optimized] target(s) in 6.32s
cargo test doesn't, neither in the LO tree nor in building the packaged crate.
From the build tree:
rene@frodo:~/LibreOffice/git/master/rust_uno$ /usr/share/cargo/bin/cargo test
--release --verbose
Compiling rust_uno v0.1.0 (/home/rene/LibreOffice/git/master/rust_uno)
Running `rustc --crate-name build_script_build --edition=2024 build.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --crate-type bin --emit=dep-info,link -C
embed-bitcode=no -C debug-assertions=off --check-cfg 'cfg(docsrs,test)'
--check-cfg 'cfg(feature, values())' -C metadata=6fef42e64637427d -C
extra-filename=-cf51b9cd7b0a075d --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/build/rust_uno-cf51b9cd7b0a075d
-C strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps`
Running
`/home/rene/LibreOffice/git/master/rust_uno/target/release/build/rust_uno-cf51b9cd7b0a075d/build-script-build`
Running `rustc --crate-name rust_uno --edition=2024 src/lib.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no
--test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C
metadata=95a700903e564e5d -C extra-filename=-e1a08363f3f7a098 --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -C
strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -L
native=../instdir/program -L native=../workdir/LinkTarget/Library -l
rust_uno-cpplo`
error: linking with `cc` failed: exit status: 1
|
= note: "cc" "-m64" "/tmp/rustchcpFZc/symbols.o" "<7 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "-lrust_uno-cpplo" "-Wl,-Bstatic"
"<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libtest-*,libgetopts-*,libunicode_width-*,librustc_std_workspace_std-*,libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,libcfg_if-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib"
"-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustchcpFZc/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "../instdir/program" "-L" "../workdir/LinkTarget/Library" "-L"
"<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
= note: some arguments are omitted. use `--verbose` to show all linker
arguments
= note: /usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.1.rcgu.o:
undefined reference to symbol 'typelib_typedescriptionreference_new@@UDK_3_0_0'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/../instdir/program/libuno_cppu.so.3:
error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
= note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
= note: use the `-l` flag to specify native libraries to link
= note: use the `cargo:rustc-link-lib` directive to specify the native
libraries to link with Cargo (see
https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib)
error: could not compile `rust_uno` (lib test) due to 1 previous error
Caused by:
process didn't exit successfully: `rustc --crate-name rust_uno --edition=2024
src/lib.rs --error-format=json
--json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no
--test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C
metadata=95a700903e564e5d -C extra-filename=-e1a08363f3f7a098 --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -C
strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -L
native=../instdir/program -L native=../workdir/LinkTarget/Library -l
rust_uno-cpplo` (exit status: 1)
So we miss a -luno_cppu. (Same for sal and salhelper). After doing (assed
sdk/lib because there the .so symlinks are...) as in the (WIP)
https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/debian-experimental-26.2/tests/patches/fix-rust_uno-test.diff?ref_type=heads
I get
rene@frodo:~/LibreOffice/git/master/rust_uno$ patch -p2 <
../debian/tests/patches/fix-rust_uno-test.diff
patching file build.rs
rene@frodo:~/LibreOffice/git/master/rust_uno$ /usr/share/cargo/bin/cargo test
--release --verbose
Dirty rust_uno v0.1.0 (/home/rene/LibreOffice/git/master/rust_uno): the
file `build.rs` has changed (1760899703.466358751s, 4m 9s after last build at
1760899454.625893329s)
Compiling rust_uno v0.1.0 (/home/rene/LibreOffice/git/master/rust_uno)
Running `rustc --crate-name build_script_build --edition=2024 build.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --crate-type bin --emit=dep-info,link -C
embed-bitcode=no -C debug-assertions=off --check-cfg 'cfg(docsrs,test)'
--check-cfg 'cfg(feature, values())' -C metadata=6fef42e64637427d -C
extra-filename=-cf51b9cd7b0a075d --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/build/rust_uno-cf51b9cd7b0a075d
-C strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps`
Running
`/home/rene/LibreOffice/git/master/rust_uno/target/release/build/rust_uno-cf51b9cd7b0a075d/build-script-build`
Running `rustc --crate-name rust_uno --edition=2024 src/lib.rs
--error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no
--test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C
metadata=95a700903e564e5d -C extra-filename=-e1a08363f3f7a098 --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -C
strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -L
native=../instdir/program -L native=../instdir/sdk/lib -L
native=../workdir/LinkTarget/Library -l rust_uno-cpplo -l uno_cppu -l uno_sal
-l uno_salhelpergcc3`
error: linking with `cc` failed: exit status: 1
|
= note: "cc" "-m64" "/tmp/rustc0W2QkV/symbols.o" "<7 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "-lrust_uno-cpplo" "-luno_cppu" "-luno_sal" "-luno_salhelpergcc3" "-Wl,-Bstatic"
"<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libtest-*,libgetopts-*,libunicode_width-*,librustc_std_workspace_std-*,libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,libcfg_if-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s"
"-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustc0W2QkV/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "../instdir/program" "-L" "../instdir/sdk/lib" "-L" "../workdir/LinkTarget/Library" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o"
"/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
= note: some arguments are omitted. use `--verbose` to show all linker
arguments
= note: /usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.2.rcgu.o:
in function `core::ops::function::FnOnce::call_once':
rust_uno.675ac809ee7902a-cgu.2:(.text._ZN4core3ops8function6FnOnce9call_once17h9f19c78d8f3482edE+0x6):
undefined reference to `xtest_hello'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function `rust_uno::ffi::tests::integration_tests::test_boolean_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_boolean_operations17h0bc2ebdfac791a7eE+0x6):
undefined reference to `xtest_getBoolean'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_boolean_operations17h0bc2ebdfac791a7eE+0x15):
undefined reference to `xtest_isBoolean'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_boolean_operations17h0bc2ebdfac791a7eE+0x21):
undefined reference to `xtest_isBoolean'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function `rust_uno::ffi::tests::integration_tests::test_integer_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x6):
undefined reference to `xtest_getByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x1d):
undefined reference to `xtest_isByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x2d):
undefined reference to `xtest_isByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x3b):
undefined reference to `xtest_getShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x59):
undefined reference to `xtest_isShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x69):
undefined reference to `xtest_isShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x77):
undefined reference to `xtest_getLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0x91):
undefined reference to `xtest_isLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests23test_integer_operations17h6f8919897e8aa2c1E+0xa1):
undefined reference to `xtest_isLong'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function
`rust_uno::ffi::tests::integration_tests::test_unsigned_integer_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests32test_unsigned_integer_operations17hd50b44fba4f555aeE+0x6):
undefined reference to `xtest_getUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests32test_unsigned_integer_operations17hd50b44fba4f555aeE+0x20):
undefined reference to `xtest_isUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests32test_unsigned_integer_operations17hd50b44fba4f555aeE+0x30):
undefined reference to `xtest_isUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests32test_unsigned_integer_operations17hd50b44fba4f555aeE+0x3e):
undefined reference to `xtest_getUnsignedLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests32test_unsigned_integer_operations17hd50b44fba4f555aeE+0x58):
undefined reference to `xtest_isUnsignedLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests32test_unsigned_integer_operations17hd50b44fba4f555aeE+0x68):
undefined reference to `xtest_isUnsignedLong'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function `rust_uno::ffi::tests::integration_tests::test_64bit_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests21test_64bit_operations17hc594f8f3ecf40acfE+0x7):
undefined reference to `xtest_getHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests21test_64bit_operations17hc594f8f3ecf40acfE+0x21):
undefined reference to `xtest_isHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests21test_64bit_operations17hc594f8f3ecf40acfE+0x31):
undefined reference to `xtest_isHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests21test_64bit_operations17hc594f8f3ecf40acfE+0x49):
undefined reference to `xtest_getUnsignedHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests21test_64bit_operations17hc594f8f3ecf40acfE+0x60):
undefined reference to `xtest_isUnsignedHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests21test_64bit_operations17hc594f8f3ecf40acfE+0x70):
undefined reference to `xtest_isUnsignedHyper'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function
`rust_uno::ffi::tests::integration_tests::test_floating_point_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests30test_floating_point_operations17hb0a0a240cf246e60E+0x6):
undefined reference to `xtest_getFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests30test_floating_point_operations17hb0a0a240cf246e60E+0x25):
undefined reference to `xtest_isFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests30test_floating_point_operations17hb0a0a240cf246e60E+0x37):
undefined reference to `xtest_isFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests30test_floating_point_operations17hb0a0a240cf246e60E+0x45):
undefined reference to `xtest_getDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests30test_floating_point_operations17hb0a0a240cf246e60E+0x6d):
undefined reference to `xtest_isDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests30test_floating_point_operations17hb0a0a240cf246e60E+0x7e):
undefined reference to `xtest_isDouble'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function `rust_uno::ffi::tests::integration_tests::test_char_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests20test_char_operations17ha0b32cb3ea50a700E+0x6):
undefined reference to `xtest_getChar'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests20test_char_operations17ha0b32cb3ea50a700E+0x20):
undefined reference to `xtest_isChar'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests20test_char_operations17ha0b32cb3ea50a700E+0x2f):
undefined reference to `xtest_isChar'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function `rust_uno::ffi::tests::integration_tests::test_string_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests22test_string_operations17he084da062ef36a7dE+0xb):
undefined reference to `xtest_getString'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests22test_string_operations17he084da062ef36a7dE+0x108):
undefined reference to `xtest_isString'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests22test_string_operations17he084da062ef36a7dE+0x14e):
undefined reference to `xtest_isString'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function `rust_uno::ffi::tests::integration_tests::test_type_operations':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests20test_type_operations17hc4481fdde910a9aeE+0x7):
undefined reference to `xtest_getType'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests20test_type_operations17hc4481fdde910a9aeE+0x70):
undefined reference to `xtest_isType'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function
`rust_uno::ffi::tests::integration_tests::test_wrong_values_comprehensive':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0xb):
undefined reference to `xtest_isByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x1e):
undefined reference to `xtest_isByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x31):
undefined reference to `xtest_isShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x44):
undefined reference to `xtest_isShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x57):
undefined reference to `xtest_isLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x6a):
undefined reference to `xtest_isLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x7d):
undefined reference to `xtest_isUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x90):
undefined reference to `xtest_isUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0xa3):
undefined reference to `xtest_isUnsignedLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0xb6):
undefined reference to `xtest_isUnsignedLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0xc9):
undefined reference to `xtest_isHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0xde):
undefined reference to `xtest_isHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0xf1):
undefined reference to `xtest_isUnsignedHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x106):
undefined reference to `xtest_isUnsignedHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x11c):
undefined reference to `xtest_isFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x132):
undefined reference to `xtest_isFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x148):
undefined reference to `xtest_isDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x15e):
undefined reference to `xtest_isDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x171):
undefined reference to `xtest_isChar'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests31test_wrong_values_comprehensive17h43f1cfa4d17961efE+0x184):
undefined reference to `xtest_isChar'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function
`rust_uno::ffi::tests::integration_tests::test_all_operations_comprehensive':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0xb):
undefined reference to `xtest_getBoolean'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0x38):
undefined reference to `xtest_getByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0x3e):
undefined reference to `xtest_getShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0x44):
undefined reference to `xtest_getLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0x4a):
undefined reference to `xtest_getFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0x50):
undefined reference to `xtest_getDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests33test_all_operations_comprehensive17h9a7237f21d06ef95E+0x56):
undefined reference to `xtest_getBoolean'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function
`rust_uno::ffi::tests::integration_tests::test_edge_cases_and_boundary_values':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0xc):
undefined reference to `xtest_isByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x1f):
undefined reference to `xtest_isByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x32):
undefined reference to `xtest_isShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x45):
undefined reference to `xtest_isShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x58):
undefined reference to `xtest_isLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x6b):
undefined reference to `xtest_isLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x7e):
undefined reference to `xtest_isUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x91):
undefined reference to `xtest_isUnsignedLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0xac):
undefined reference to `xtest_isHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0xc0):
undefined reference to `xtest_isHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0xd5):
undefined reference to `xtest_isUnsignedHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0xeb):
undefined reference to `xtest_isFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x101):
undefined reference to `xtest_isFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x117):
undefined reference to `xtest_isDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x12d):
undefined reference to `xtest_isDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x13d):
undefined reference to `xtest_isChar'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x150):
undefined reference to `xtest_isChar'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x18a):
undefined reference to `xtest_isString'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests35test_edge_cases_and_boundary_values17h565da3978137b059E+0x1c9):
undefined reference to `xtest_isString'
/usr/bin/ld:
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps/rust_uno-e1a08363f3f7a098.rust_uno.675ac809ee7902a-cgu.4.rcgu.o:
in function
`rust_uno::ffi::tests::integration_tests::test_consistency_across_multiple_calls':
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x50):
undefined reference to `xtest_getBoolean'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x5e):
undefined reference to `xtest_getByte'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x70):
undefined reference to `xtest_getShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x89):
undefined reference to `xtest_getLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x9e):
undefined reference to `xtest_getUnsignedShort'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0xb7):
undefined reference to `xtest_getUnsignedLong'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0xcc):
undefined reference to `xtest_getHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0xe6):
undefined reference to `xtest_getUnsignedHyper'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x107):
undefined reference to `xtest_getFloat'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x126):
undefined reference to `xtest_getDouble'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x149):
undefined reference to `xtest_getChar'
/usr/bin/ld:
rust_uno.675ac809ee7902a-cgu.4:(.text._ZN8rust_uno3ffi5tests17integration_tests38test_consistency_across_multiple_calls17h8162e97f6a3914dcE+0x162):
undefined reference to `xtest_getString'
collect2: error: ld returned 1 exit status
= note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
= note: use the `-l` flag to specify native libraries to link
= note: use the `cargo:rustc-link-lib` directive to specify the native
libraries to link with Cargo (see
https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib)
error: could not compile `rust_uno` (lib test) due to 1 previous error
Caused by:
process didn't exit successfully: `rustc --crate-name rust_uno --edition=2024
src/lib.rs --error-format=json
--json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=158 --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no
--test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C
metadata=95a700903e564e5d -C extra-filename=-e1a08363f3f7a098 --out-dir
/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -C
strip=debuginfo -L
dependency=/home/rene/LibreOffice/git/master/rust_uno/target/release/deps -L
native=../instdir/program -L native=../instdir/sdk/lib -L
native=../workdir/LinkTarget/Library -l rust_uno-cpplo -l uno_cppu -l uno_sal
-l uno_salhelpergcc3` (exit status: 1)
where I am stuck. I see that this is supposed to come from the crate itself,
but why doesn't it find it? Or is there some more linkage needed? The (uno)test
library? embindtest? Neither worked for me.
(FWIW --enable-embindtest-uno is there.)
Regards,
Rene