simba
simba copied to clipboard
Build fail with any sanitizer
trafficstars
When building any project which imports nalgebra with nightly and a sanitizer you get a HUGE amount of build errors.
Command I used to build
export RUSTFLAGS=-Zsanitizer=address RUSTDOCFLAGS=-Zsanitizer=addresscargo +nightly build
The same thing happens with Zsanitizer=thread
Toolchain version
rustc 1.66.0-nightly (4a1467723 2022-09-23)
OS/Hardware
- Kubuntu 22.04
- 16 x Intel Core i7-10870 CPU @ 2.20Ghz
- 32 Gb RAM
- Dual GPU Intel UHD Graphics + NVIDIA RTX 3060 Laptop GPU
Log
Due to how large the log is I could not add all of it so I only added the first 168 lines, all other lines are very similar.
Compiling simba v0.7.0
error: /home/yuri/Projects/threaded-bilateral-filter/target/debug/deps/libpaste-4d6a3c29c1b84e5f.so: undefined symbol: __asan_option_detect_stack_use_after_return
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:23:9
|
23 | paste::item! {
| ^^^^^
error: cannot determine resolution for the macro `paste::item`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:23:9
|
23 | paste::item! {
| ^^^^^^^^^^^
|
::: /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/simd/simd_complex.rs:33:5
|
33 | complex_trait_methods!(SimdRealField, simd_);
| -------------------------------------------- in this macro invocation
|
= note: import resolution is stuck, try simplifying macro imports
= note: this error originates in the macro `complex_trait_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
error: cannot determine resolution for the macro `paste::item`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:23:9
|
23 | paste::item! {
| ^^^^^^^^^^^
...
186 | complex_trait_methods!(RealField);
| --------------------------------- in this macro invocation
|
= note: import resolution is stuck, try simplifying macro imports
= note: this error originates in the macro `complex_trait_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `from_real` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:199:13
|
199 | / fn from_real(re: Self::RealField) -> Self {
200 | | re
201 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `real` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:204:13
|
204 | / fn real(self) -> Self::RealField {
205 | | self
206 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `imaginary` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:209:13
|
209 | / fn imaginary(self) -> Self::RealField {
210 | | Self::zero()
211 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `norm1` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:214:13
|
214 | / fn norm1(self) -> Self::RealField {
215 | | $libm::abs(self)
216 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `modulus` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:219:13
|
219 | / fn modulus(self) -> Self::RealField {
220 | | $libm::abs(self)
221 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `modulus_squared` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:224:13
|
224 | / fn modulus_squared(self) -> Self::RealField {
225 | | self * self
226 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `argument` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:229:13
|
229 | / fn argument(self) -> Self::RealField {
230 | | if self >= Self::zero() {
231 | | Self::zero()
232 | | } else {
233 | | Self::pi()
234 | | }
235 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0407]: method `to_exp` is not a member of trait `ComplexField`
--> /home/yuri/.cargo/registry/src/github.com-1ecc6299db9ec823/simba-0.7.0/src/scalar/complex.rs:238:13
|
238 | / fn to_exp(self) -> (Self, Self) {
239 | | if self >= Self::zero() {
240 | | (self, Self::one())
241 | | } else {
242 | | (-self, -Self::one())
243 | | }
244 | | }
| |_____________^ not a member of trait `ComplexField`
...
491 | / impl_complex!(
492 | | f32,f32,f32;
493 | | f64,f64,f64
494 | | );
| |_- in this macro invocation
|
= note: this error originates in the macro `impl_complex` (in Nightly builds, run with -Z macro-backtrace for more info)
Hi! If this doesn’t compile with RUSTFLAGS=-Zsanitizer=address RUSTDOCFLAGS=-Zsanitizer=address but compiles fine if you don’t add these sanitizer options, then the problem is probably in the sanitizer implementation than in simba itself.