rusqlite: Compile error in Rust 1.36.0
rusqlite fails to compile on Rust 1.36.0:
Compiling rusqlite v0.19.0
error[E0277]: `*const libsqlite3_sys::sqlite3_module` cannot be sent between threads safely
--> /home/tehdog/.cargo/registry/src/github.com-1ecc6299db9ec823/rusqlite-0.19.0/src/vtab/series.rs:21:1
|
21 | / lazy_static! {
22 | | static ref SERIES_MODULE: Module<SeriesTab> = eponymous_only_module::<SeriesTab>(1);
23 | | }
| |_^ `*const libsqlite3_sys::sqlite3_module` cannot be sent between threads safely
|
= help: within `vtab::Module<vtab::series::SeriesTab>`, the trait `std::marker::Send` is not implemented for `*const libsqlite3_sys::sqlite3_module`
= note: required because it appears within the type `libsqlite3_sys::sqlite3_vtab`
= note: required because it appears within the type `vtab::series::SeriesTab`
= note: required because it appears within the type `std::marker::PhantomData<vtab::series::SeriesTab>`
= note: required because it appears within the type `vtab::Module<vtab::series::SeriesTab>`
= note: required because of the requirements on the impl of `std::marker::Sync` for `spin::once::Once<vtab::Module<vtab::series::SeriesTab>>`
= note: required because it appears within the type `lazy_static::lazy::Lazy<vtab::Module<vtab::series::SeriesTab>>`
= note: shared static variables must have a type that implements `Sync`
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error[E0277]: `*mut i8` cannot be sent between threads safely
--> /home/tehdog/.cargo/registry/src/github.com-1ecc6299db9ec823/rusqlite-0.19.0/src/vtab/series.rs:21:1
|
21 | / lazy_static! {
22 | | static ref SERIES_MODULE: Module<SeriesTab> = eponymous_only_module::<SeriesTab>(1);
23 | | }
| |_^ `*mut i8` cannot be sent between threads safely
|
= help: within `vtab::Module<vtab::series::SeriesTab>`, the trait `std::marker::Send` is not implemented for `*mut i8`
= note: required because it appears within the type `libsqlite3_sys::sqlite3_vtab`
= note: required because it appears within the type `vtab::series::SeriesTab`
= note: required because it appears within the type `std::marker::PhantomData<vtab::series::SeriesTab>`
= note: required because it appears within the type `vtab::Module<vtab::series::SeriesTab>`
= note: required because of the requirements on the impl of `std::marker::Sync` for `spin::once::Once<vtab::Module<vtab::series::SeriesTab>>`
= note: required because it appears within the type `lazy_static::lazy::Lazy<vtab::Module<vtab::series::SeriesTab>>`
= note: shared static variables must have a type that implements `Sync`
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.
error: Could not compile `rusqlite`.
To learn more, run the command again with --verbose.
Seems to happen for both 0.19.0 and 0.18.0 Via this error report: https://github.com/phiresky/ripgrep-all/issues/22
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 1
- Comments: 15 (5 by maintainers)
Should be fixed by release 0.20.