Versions later than 1.70 builds cdylib with an error of undefined version

A current project uses vendor and compiles the cdylib library in the src directory.

1, in 1.69 version of rust, compile. Everything compiled properly. No compilation error, cdylib library output normal.

2, in the 1.70 version, the compiler error is as follows: ( vendor directory update and do not update are the same case)


/usr/bin/ld: functin_name1: undefined version:

/usr/bin/ld: functin_name2: undefined version:

/usr/bin/ld: chacha_ivsetup: undefined version:

/usr/bin/ld: chacha_encrypt_bytes: undefined version:

/usr/bin/ld: _rs_stir: undefined version:

/usr/bin/ld: failed to set dynamic section sizes: bad value

collect2: error: ld returned 1 exit status


If in the 1.70 version, by modifying src/Cargo.toml, cdylib to rlib or staticlib will compile normally, without error.

Attempts to modify the dependent versions of libc and proc-macro2 still produce the compilation error described above.

Now I don't know how to continue positioning

Sounds like that is Linking error on Rust 1.70 aarch64-unknown-linux-musl toolchain ยท Issue #113104 ยท rust-lang/rust ยท GitHub This should be fixed in 1.72 already

2 Likes

Testing version rustc 1.72.0 (5680fa18f 2023-08-23), the same error occurs

Supplementary dependency option ๏ผš โ”œโ”€โ”€ fluent-bundle v0.15.2

โ”‚   โ”œโ”€โ”€ fluent-langneg v0.13.0
โ”‚   โ”‚   โ””โ”€โ”€ unic-langid v0.9.1
โ”‚   โ”‚       โ””โ”€โ”€ unic-langid-impl v0.9.1
โ”‚   โ”‚           โ””โ”€โ”€ tinystr v0.7.1
โ”‚   โ”‚               โ””โ”€โ”€ displaydoc v0.2.4 (proc-macro)
โ”‚   โ”‚                   โ”œโ”€โ”€ proc-macro2 v1.0.66
โ”‚   โ”‚                   โ”‚   โ””โ”€โ”€ unicode-ident v1.0.11
โ”‚   โ”‚                   โ”œโ”€โ”€ quote v1.0.33
โ”‚   โ”‚                   โ”‚   โ””โ”€โ”€ proc-macro2 v1.0.66 (*)
โ”‚   โ”‚                   โ””โ”€โ”€ syn v2.0.32
โ”‚   โ”‚                       โ”œโ”€โ”€ proc-macro2 v1.0.66 (*)
โ”‚   โ”‚                       โ”œโ”€โ”€ quote v1.0.33 (*)
โ”‚   โ”‚                       โ””โ”€โ”€ unicode-ident v1.0.11
โ”‚   โ”œโ”€โ”€ fluent-syntax v0.11.0
โ”‚   โ”‚   โ””โ”€โ”€ thiserror v1.0.48
โ”‚   โ”‚       โ””โ”€โ”€ thiserror-impl v1.0.48 (proc-macro)
โ”‚   โ”‚           โ”œโ”€โ”€ proc-macro2 v1.0.66 (*)
โ”‚   โ”‚           โ”œโ”€โ”€ quote v1.0.33 (*)
โ”‚   โ”‚           โ””โ”€โ”€ syn v2.0.32 (*)
โ”‚   โ”œโ”€โ”€ intl-memoizer v0.5.1
โ”‚   โ”‚   โ”œโ”€โ”€ type-map v0.4.0
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ rustc-hash v1.1.0
โ”‚   โ”‚   โ””โ”€โ”€ unic-langid v0.9.1 (*)
โ”‚   โ”œโ”€โ”€ intl_pluralrules v7.0.2
โ”‚   โ”‚   โ””โ”€โ”€ unic-langid v0.9.1 (*)
โ”‚   โ”œโ”€โ”€ rustc-hash v1.1.0
โ”‚   โ”œโ”€โ”€ self_cell v0.10.2
โ”‚   โ”œโ”€โ”€ smallvec v1.11.0
โ”‚   โ””โ”€โ”€ unic-langid v0.9.1 (*)
โ”œโ”€โ”€ fluent-resmgr v0.0.6
โ”‚   โ”œโ”€โ”€ elsa v1.9.0
โ”‚   โ”‚   โ””โ”€โ”€ stable_deref_trait v1.2.0
โ”‚   โ”œโ”€โ”€ fluent-bundle v0.15.2 (*)
โ”‚   โ”œโ”€โ”€ fluent-fallback v0.7.0
โ”‚   โ”‚   โ”œโ”€โ”€ async-trait v0.1.73 (proc-macro)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ proc-macro2 v1.0.66 (*)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ quote v1.0.33 (*)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ syn v2.0.32 (*)
โ”‚   โ”‚   โ”œโ”€โ”€ chunky-vec v0.1.0
โ”‚   โ”‚   โ”œโ”€โ”€ fluent-bundle v0.15.2 (*)
โ”‚   โ”‚   โ”œโ”€โ”€ futures v0.3.28
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-channel v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-core v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ futures-sink v0.3.28
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-core v0.3.28
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-executor v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-core v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-task v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ futures-util v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ futures-channel v0.3.28 (*)
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ futures-core v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ futures-io v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ futures-macro v0.3.28 (proc-macro)
โ”‚   โ”‚   โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ proc-macro2 v1.0.66 (*)
โ”‚   โ”‚   โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ quote v1.0.33 (*)
โ”‚   โ”‚   โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ syn v2.0.32 (*)
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ futures-sink v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ futures-task v0.3.28
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ memchr v2.6.3
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ pin-project-lite v0.2.13
โ”‚   โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ pin-utils v0.1.0
โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ slab v0.4.9
โ”‚   โ”‚   โ”‚   โ”‚           [build-dependencies]
โ”‚   โ”‚   โ”‚   โ”‚           โ””โ”€โ”€ autocfg v1.1.0
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-io v0.3.28
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-sink v0.3.28
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ futures-task v0.3.28
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ futures-util v0.3.28 (*)
โ”‚   โ”‚   โ”œโ”€โ”€ once_cell v1.18.0
โ”‚   โ”‚   โ”œโ”€โ”€ rustc-hash v1.1.0
โ”‚   โ”‚   โ””โ”€โ”€ unic-langid v0.9.1 (*)
โ”‚   โ”œโ”€โ”€ futures v0.3.28 (*)
โ”‚   โ”œโ”€โ”€ rustc-hash v1.1.0
โ”‚   โ””โ”€โ”€ unic-langid v0.9.1 (*)
โ”œโ”€โ”€ libc v0.2.147
โ”œโ”€โ”€ stdext v0.3.1
โ”œโ”€โ”€ sys-locale v0.3.1
โ””โ”€โ”€ unic-langid v0.9.1 (*)

It is not known if the above dependencies cause undefined version errors

Testing rustc 1.74.0-nightly (d9c8274fb 2023-09-12), the same error occurs

did you try that after a cargo clean? If it still fails on nightly then it's worth filing a new issue for it.

Yes, I tried to compile after cargo clean, but it had the same error.

Let me submit an issue.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.