pyo3
pyo3 copied to clipboard
cargo test --workspace fails with linker errors
Bug Description
Running cargo test --workspace
in the pyo3 root directory leads to linker error.
This means that it is not possible to run tests from the test explorer section in VSCode. (See rust-lang/rust-analyzer#17136 and #4030)
Steps to Reproduce
-
cargo test --workspace
Backtrace
Compiling pyo3 v0.21.2 (/workspaces/pyo3/pyo3)
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH="/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/vscode/vscode-server/bin/linux-x64/e170252f762678dec6ca2cc69aba1570769a5d39/bin/remote-cli:/home/pyo3/.local/bin:/home/pyo3/bin:/opt/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcC3UUtq/symbols.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.1rl4ewvsvsfd250d.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.1v6ezthkeltpdypf.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.1vm2aukr3s1f29en.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.2bml6sz7673oofn8.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.2go7f5nsx579htem.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.2vae2dwfqjxngr5u.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.2yqc6ahigpxcsih7.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.34nw6tg8anrt9euf.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.3a3cp57v4b5uwkdn.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.3h2kycr7lq2ygqlq.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.3i26nyp6ogjicze6.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.49t33qt1qdn55gui.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.4v9mgegriw4ti96j.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.4wy28mamviylp1w0.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.4z5u32tqpi3hap0z.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.fkggyhk7w1rnd72.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.hr1bmbtyk190fab.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.k9x24qt1lyfgmzf.rcgu.o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3.3zukopkxffnbltpe.rcgu.o" "-Wl,--as-needed" "-L" "/workspaces/pyo3/pyo3/target/debug/deps" "-L" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-cb9f55643d3ef0c6.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-b256c4f6b61aecc9.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-eaa163d48490c742.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-899ab04420e64755.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libmemoffset-255b43fa711f757a.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libportable_atomic-b4b065425689c94c.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libparking_lot-a7d6d684dfbdb426.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libparking_lot_core-3f288029b1f31a4f.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libcfg_if-3705568b3b302f3c.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libsmallvec-94336547f9d6f95d.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/liblock_api-ce1db1a8e5e23a83.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libscopeguard-1ed9ab10b8209cca.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libpyo3_ffi-0c4e27e4d423666f.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/liblibc-f8a9c2e6410450c2.rlib" "/workspaces/pyo3/pyo3/target/debug/deps/libunindent-0b9f41402a463856.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2d08990d644ac786.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-6f2d4ec7ff80253d.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-c194d68892442324.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-9a71c52c5946f83b.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-ae9aec4ce2dabc4f.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-6a207457d27610cc.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-fb1d2514710eef16.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-e36e7ed4b08caeac.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-9e8dafdf0a1b7ecd.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-b218f37fe3c9ce2e.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-20c30954fd9b5ef4.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-6d3dfaf536d51163.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-cb4ce50789112af8.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-9897980a3b548e05.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-b7bd4d010c784af2.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-6d4515df28ba3369.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-e28568c1a21499f7.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-eedf3675950a13c2.rlib" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-715e69127681e2e0.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/workspaces/pyo3/pyo3/target/debug/deps/test_datetime_import-41cbbabf1256d4a3" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
= note: /usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2dhk6n42mpxrpxtu.rcgu.o): in function `pyo3::err::PyErr::print_panic_and_unwind':
/workspaces/pyo3/pyo3/src/err/mod.rs:480:(.text._ZN4pyo33err5PyErr22print_panic_and_unwind17h3a7d01a635fdc8ffE+0xec): undefined reference to `PyErr_PrintEx'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2dhk6n42mpxrpxtu.rcgu.o): in function `pyo3::err::PyErr::new_type_bound':
/workspaces/pyo3/pyo3/src/err/mod.rs:577:(.text._ZN4pyo33err5PyErr14new_type_bound17h6b68d2c25dc74660E+0x46e): undefined reference to `PyErr_NewExceptionWithDoc'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2dhk6n42mpxrpxtu.rcgu.o): in function `pyo3::err::PyErr::write_unraisable_bound':
/workspaces/pyo3/pyo3/src/err/mod.rs:721:(.text._ZN4pyo33err5PyErr22write_unraisable_bound17hdabd990e8abbfccdE+0x4b): undefined reference to `PyErr_WriteUnraisable'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2dhk6n42mpxrpxtu.rcgu.o): in function `pyo3::err::panic_after_error':
/workspaces/pyo3/pyo3/src/err/mod.rs:1097:(.text._ZN4pyo33err17panic_after_error17h3d16f19a78dd65f3E+0xc): undefined reference to `PyErr_Print'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2rjincuy7jspau2k.rcgu.o): in function `<pyo3::instance::Bound<pyo3::types::any::PyAny> as pyo3::types::any::PyAnyMethods>::getattr::inner':
/workspaces/pyo3/pyo3/src/types/any.rs:1767:(.text._ZN103_$LT$pyo3..instance..Bound$LT$pyo3..types..any..PyAny$GT$$u20$as$u20$pyo3..types..any..PyAnyMethods$GT$7getattr5inner17h21776d296146f5fbE+0x77): undefined reference to `PyObject_GetAttr'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2rjincuy7jspau2k.rcgu.o): in function `<pyo3::instance::Bound<pyo3::types::any::PyAny> as pyo3::types::any::PyAnyMethods>::call::inner':
/workspaces/pyo3/pyo3/src/types/any.rs:1961:(.text._ZN103_$LT$pyo3..instance..Bound$LT$pyo3..types..any..PyAny$GT$$u20$as$u20$pyo3..types..any..PyAnyMethods$GT$4call5inner17he6f4f449fe12e213E+0xe4): undefined reference to `PyObject_Call'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.3uv13khv6fparsz7.rcgu.o): in function `pyo3::err::err_state::PyErrStateNormalized::ptraceback':
/workspaces/pyo3/pyo3/src/err/err_state.rs:41:(.text._ZN4pyo33err9err_state20PyErrStateNormalized10ptraceback17h374727512c7f14ebE+0x14): undefined reference to `PyException_GetTraceback'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.3uv13khv6fparsz7.rcgu.o): in function `pyo3::err::err_state::PyErrStateNormalized::take':
/workspaces/pyo3/pyo3/src/err/err_state.rs:49:(.text._ZN4pyo33err9err_state20PyErrStateNormalized4take17h3494aafbba047e0eE+0x3): undefined reference to `PyErr_GetRaisedException'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.3uv13khv6fparsz7.rcgu.o): in function `pyo3::err::err_state::PyErrState::restore':
/workspaces/pyo3/pyo3/src/err/err_state.rs:194:(.text._ZN4pyo33err9err_state10PyErrState7restore17h40b173e214044e77E+0x54): undefined reference to `PyErr_SetRaisedException'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.3uv13khv6fparsz7.rcgu.o): in function `pyo3::err::err_state::raise_lazy':
/workspaces/pyo3/pyo3/src/err/err_state.rs:229:(.text._ZN4pyo33err9err_state10raise_lazy17hb3729facdbbca54aE+0xd3): undefined reference to `PyErr_SetString'
/usr/bin/ld: /workspaces/pyo3/pyo3/src/err/err_state.rs:236:(.text._ZN4pyo33err9err_state10raise_lazy17hb3729facdbbca54aE+0x10d): undefined reference to `PyErr_SetObject'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.47by7g5ijodvoobn.rcgu.o): in function `<pyo3::gil::GILGuard as core::ops::drop::Drop>::drop':
/workspaces/pyo3/pyo3/src/gil.rs:241:(.text._ZN61_$LT$pyo3..gil..GILGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2df5979449bba3edE+0x1e): undefined reference to `PyGILState_Release'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.47by7g5ijodvoobn.rcgu.o): in function `pyo3_ffi::object::Py_DECREF':
/workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN60_$LT$pyo3..gil..GILPool$u20$as$u20$core..ops..drop..Drop$GT$4drop17h972807350f5023f0E+0x26e): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN72_$LT$pyo3..instance..Bound$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0af5c701d9411f2eE+0x142): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN72_$LT$pyo3..instance..Bound$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0df14bb3f26883a8E+0x142): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN72_$LT$pyo3..instance..Bound$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1f8a04d50bab5dfbE+0x142): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN72_$LT$pyo3..instance..Bound$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha1acdca7f9368186E+0x142): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.47by7g5ijodvoobn.rcgu.o):/workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624: more undefined references to `_Py_Dealloc' follow
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.49po8o5qwmtmbzdd.rcgu.o): in function `pyo3::types::tuple::array_into_tuple':
/workspaces/pyo3/pyo3/src/types/tuple.rs:714:(.text._ZN4pyo35types5tuple16array_into_tuple17hf8525f71f5e6f516E+0x94): undefined reference to `PyTuple_New'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.avdhmsfrav2bbd8.rcgu.o): in function `pyo3::conversions::std::num::<impl pyo3::conversion::IntoPy<pyo3::instance::Py<pyo3::types::any::PyAny>> for i32>::into_py':
/workspaces/pyo3/pyo3/src/conversions/std/num.rs:120:(.text._ZN4pyo311conversions3std3num115_$LT$impl$u20$pyo3..conversion..IntoPy$LT$pyo3..instance..Py$LT$pyo3..types..any..PyAny$GT$$GT$$u20$for$u20$i32$GT$7into_py17hb50390f4bc34e908E+0xd): undefined reference to `PyLong_FromLong'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.b7lzwfpnet4pvi0.rcgu.o): in function `pyo3::types::string::PyString::new_bound':
/workspaces/pyo3/pyo3/src/types/string.rs:155:(.text._ZN4pyo35types6string8PyString9new_bound17hb6d06b9d07f877d3E+0x36): undefined reference to `PyUnicode_FromStringAndSize'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.siq625zt8eo0azz.rcgu.o): in function `pyo3::gil::GILGuard::acquire_unchecked':
/workspaces/pyo3/pyo3/src/gil.rs:226:(.text._ZN4pyo33gil8GILGuard17acquire_unchecked17h80a57395a6e0314bE+0x2d): undefined reference to `PyGILState_Ensure'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.siq625zt8eo0azz.rcgu.o): in function `pyo3_ffi::object::Py_DECREF':
/workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN4pyo33gil13ReferencePool13update_counts17hbc997397f32a0242E+0x549): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/pyo3-ffi/src/object.rs:624:(.text._ZN4pyo33gil15register_decref17he11ad97bd3bd6d8eE+0x17a): undefined reference to `_Py_Dealloc'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.1r44oqfh6phnnttq.rcgu.o): in function `pyo3::types::module::PyModule::import_bound':
/workspaces/pyo3/pyo3/src/types/module.rs:107:(.text._ZN4pyo35types6module8PyModule12import_bound17h863b0125350505a1E+0x7f): undefined reference to `PyImport_Import'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.1v6ldtecwldmqpu6.rcgu.o): in function `<pyo3::instance::Bound<pyo3::types::any::PyAny> as pyo3::types::any::PyAnyMethods>::repr':
/workspaces/pyo3/pyo3/src/types/any.rs:2197:(.text._ZN103_$LT$pyo3..instance..Bound$LT$pyo3..types..any..PyAny$GT$$u20$as$u20$pyo3..types..any..PyAnyMethods$GT$4repr17h39d1f9afc30b8a21E+0x29): undefined reference to `PyObject_Repr'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.1v6ldtecwldmqpu6.rcgu.o): in function `<pyo3::instance::Bound<pyo3::types::any::PyAny> as pyo3::types::any::PyAnyMethods>::str':
/workspaces/pyo3/pyo3/src/types/any.rs:2205:(.text._ZN103_$LT$pyo3..instance..Bound$LT$pyo3..types..any..PyAny$GT$$u20$as$u20$pyo3..types..any..PyAnyMethods$GT$3str17hb97560953e9a6315E+0x29): undefined reference to `PyObject_Str'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.1v6ldtecwldmqpu6.rcgu.o): in function `pyo3::types::bytes::<impl pyo3::instance::Borrowed<pyo3::types::bytes::PyBytes>>::as_bytes':
/workspaces/pyo3/pyo3/src/types/bytes.rs:163:(.text._ZN4pyo35types5bytes77_$LT$impl$u20$pyo3..instance..Borrowed$LT$pyo3..types..bytes..PyBytes$GT$$GT$8as_bytes17h8f9bd74bd6117bd8E+0x22): undefined reference to `PyBytes_AsString'
/usr/bin/ld: /workspaces/pyo3/pyo3/src/types/bytes.rs:164:(.text._ZN4pyo35types5bytes77_$LT$impl$u20$pyo3..instance..Borrowed$LT$pyo3..types..bytes..PyBytes$GT$$GT$8as_bytes17h8f9bd74bd6117bd8E+0x48): undefined reference to `PyBytes_Size'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.1v6ldtecwldmqpu6.rcgu.o): in function `pyo3::types::string::<impl pyo3::instance::Borrowed<pyo3::types::string::PyString>>::to_str':
/workspaces/pyo3/pyo3/src/types/string.rs:355:(.text._ZN4pyo35types6string79_$LT$impl$u20$pyo3..instance..Borrowed$LT$pyo3..types..string..PyString$GT$$GT$6to_str17hd8747368d81c25ffE+0x3a): undefined reference to `PyUnicode_AsUTF8AndSize'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.1v6ldtecwldmqpu6.rcgu.o): in function `pyo3::types::string::<impl pyo3::instance::Borrowed<pyo3::types::string::PyString>>::to_string_lossy':
/workspaces/pyo3/pyo3/src/types/string.rs:394:(.text._ZN4pyo35types6string79_$LT$impl$u20$pyo3..instance..Borrowed$LT$pyo3..types..string..PyString$GT$$GT$15to_string_lossy17hf6cd07c3ca732213E+0x103): undefined reference to `PyUnicode_AsEncodedString'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.28l71zdh4r8n6wuo.rcgu.o): in function `<pyo3::exceptions::PyBaseException as pyo3::type_object::PyTypeInfo>::type_object_raw::{{closure}}':
/workspaces/pyo3/pyo3/src/exceptions.rs:305:(.text._ZN83_$LT$pyo3..exceptions..PyBaseException$u20$as$u20$pyo3..type_object..PyTypeInfo$GT$15type_object_raw28_$u7b$$u7b$closure$u7d$$u7d$17he880910edc61ce0aE+0x8): undefined reference to `PyExc_BaseException'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.28l71zdh4r8n6wuo.rcgu.o): in function `<pyo3::exceptions::PyTypeError as pyo3::type_object::PyTypeInfo>::type_object_raw::{{closure}}':
/workspaces/pyo3/pyo3/src/exceptions.rs:305:(.text._ZN79_$LT$pyo3..exceptions..PyTypeError$u20$as$u20$pyo3..type_object..PyTypeInfo$GT$15type_object_raw28_$u7b$$u7b$closure$u7d$$u7d$17h40ebad0da7f9adb4E+0x8): undefined reference to `PyExc_TypeError'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.28l71zdh4r8n6wuo.rcgu.o): in function `<pyo3::exceptions::PyUnicodeDecodeError as pyo3::type_object::PyTypeInfo>::type_object_raw::{{closure}}':
/workspaces/pyo3/pyo3/src/exceptions.rs:305:(.text._ZN88_$LT$pyo3..exceptions..PyUnicodeDecodeError$u20$as$u20$pyo3..type_object..PyTypeInfo$GT$15type_object_raw28_$u7b$$u7b$closure$u7d$$u7d$17hcd770eae4e87ebe5E+0x8): undefined reference to `PyExc_UnicodeDecodeError'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.2bole5elw5l9z14x.rcgu.o): in function `pyo3::gil::prepare_freethreaded_python::{{closure}}':
/workspaces/pyo3/pyo3/src/gil.rs:88:(.text._ZN4pyo33gil27prepare_freethreaded_python28_$u7b$$u7b$closure$u7d$$u7d$17h334858d24395bcfaE+0xa): undefined reference to `Py_IsInitialized'
/usr/bin/ld: /workspaces/pyo3/pyo3/src/gil.rs:89:(.text._ZN4pyo33gil27prepare_freethreaded_python28_$u7b$$u7b$closure$u7d$$u7d$17h334858d24395bcfaE+0x17): undefined reference to `Py_InitializeEx'
/usr/bin/ld: /workspaces/pyo3/pyo3/src/gil.rs:92:(.text._ZN4pyo33gil27prepare_freethreaded_python28_$u7b$$u7b$closure$u7d$$u7d$17h334858d24395bcfaE+0x1d): undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3-9649731cde181be3.rlib(pyo3-9649731cde181be3.35xvn7whrdz60mvx.rcgu.o): in function `pyo3::conversions::std::osstr::<impl pyo3::conversion::ToPyObject for std::ffi::os_str::OsStr>::to_object':
/workspaces/pyo3/pyo3/src/conversions/std/osstr.rs:31:(.text._ZN4pyo311conversions3std5osstr82_$LT$impl$u20$pyo3..conversion..ToPyObject$u20$for$u20$std..ffi..os_str..OsStr$GT$9to_object17h879037313f315ec1E+0x9f): undefined reference to `PyUnicode_DecodeFSDefaultAndSize'
/usr/bin/ld: /workspaces/pyo3/pyo3/target/debug/deps/libpyo3_ffi-0c4e27e4d423666f.rlib(pyo3_ffi-0c4e27e4d423666f.1vue2luu468m5l4y.rcgu.o): in function `pyo3_ffi::datetime::PyDateTime_IMPORT':
/workspaces/pyo3/pyo3/pyo3-ffi/src/datetime.rs:626:(.text._ZN8pyo3_ffi8datetime17PyDateTime_IMPORT17hc9eecdbc8cb6c8f8E+0x13e): undefined reference to `PyCapsule_Import'
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)
...
Your operating system and version
Fedora 23 (in Docker), WSL2 (Ubuntu) on Win 11: Linux 0c9148830d0e 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 GNU/Linux
Your Python version (python --version
)
Python 3.12.2
Your Rust version (rustc --version
)
rustc 1.77.2 (25ef9e3d8 2024-04-09)
Your PyO3 version
0.21.2
How did you install python? Did you use a virtualenv?
dnf install python
full details in https://github.com/MusicalNinjaDad/devcontainers-python-rust/blob/50a15a3556a55559b347387c76d27467cbd130e1/Dockerfile
Additional Info
cargo test
, nox -s test-rust
, cargo test -F full
all run fine.
Is this related to how to manually reactivating linkers when not using maturin or setuptools-rust? (docs here)
Hi, I don't think so as this was regarding work I was doing on a fork of pyo3, not a downstream project.
I've just rechecked and the can reproduce on my fork's main
(which is currently outdated at:
f5fee94a (origin/main, origin/HEAD, main) Scope macro imports more tightly (#4088)
)
I could happily close, as I am OK without this fix, or leave open for tracking for the future.