-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: make sure the const-extern-fn
feature is enabled
#4134
Conversation
r? @JohnTitor rustbot has assigned @JohnTitor. Use |
b0b3526
to
f62b452
Compare
This makes no sense, |
This was dropped in fa554bc on `main` and 674cc1f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [1]. Instead, leave the feature as-is and just make it enabled by default. Fixes: rust-lang#4115 [1]: rust-lang#4134
0831187
to
3716ba6
Compare
CMSG_SPACE
const-extern-fn
feature is enabled
This was dropped in fa554bc on `main` and 674cc1f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`, which showed up with `CMSG_SPACE` [1]. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [2]. Instead, leave the feature as-is and just make it enabled by default. Fixes: rust-lang#4115 [1] [2]: rust-lang#4134
3716ba6
to
9f23a63
Compare
We haven't been running any tests associated with the `libc` crate, make sure we do this here. Also simplify some redundant things in the script. (backport <rust-lang#4134>) (cherry picked from commit 3c7be7c)
This was dropped in fa554bc on `main` and 674cc1f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`, which showed up with `CMSG_SPACE` [1]. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [2]. Instead, leave the feature as-is and just make it enabled by default. Fixes: rust-lang#4115 [1] [2]: rust-lang#4134 (backport <rust-lang#4134>) (cherry picked from commit 9f23a63)
36cceb0
to
b3a0067
Compare
For some reason, running unit tests in CI gives the following on Android: ```text 2024-11-23T02:17:49.1406378Z Running unittests src/lib.rs (target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec) 2024-11-23T02:17:49.1432206Z * daemon not running; starting now at tcp:5037 2024-11-23T02:17:52.1460169Z * daemon started successfully 2024-11-23T02:18:00.1454112Z adb: error: failed to copy '/checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec' to '/data/local/tmp/libc-79430fca1af8b7ec': remote secure_mkdirs failed: Read-only file system 2024-11-23T02:18:00.1457084Z /checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec: 1 file pushed, 0 skipped. 19.3 MB/s (5418952 bytes in 0.267s) 2024-11-23T02:18:00.3757282Z thread 'main' panicked at /tmp/runtest.rs:26:5: 2024-11-23T02:18:00.3758028Z assertion failed: status.success() 2024-11-23T02:18:00.3758589Z stack backtrace: 2024-11-23T02:18:00.3810307Z 0: rust_begin_unwind 2024-11-23T02:18:00.3811230Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/std/src/panicking.rs:665:5 2024-11-23T02:18:00.3812225Z 1: core::panicking::panic_fmt 2024-11-23T02:18:00.3813089Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:76:14 2024-11-23T02:18:00.3814034Z 2: core::panicking::panic 2024-11-23T02:18:00.3814860Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:148:5 2024-11-23T02:18:00.3815756Z 3: runtest::main 2024-11-23T02:18:00.3816545Z 4: core::ops::function::FnOnce::call_once 2024-11-23T02:18:00.3817848Z note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 2024-11-23T02:18:00.3822763Z error: test failed, to rerun pass `--lib` ``` For now, don't run unit tests. (backport <rust-lang#4134>) (cherry picked from commit b3a0067)
We haven't been running any tests associated with the `libc` crate, make sure we do this here. Also simplify some redundant things in the script.
This was dropped in fa554bc on `main` and 674cc1f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`, which showed up with `CMSG_SPACE` [1]. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [2]. Instead, leave the feature as-is and just make it enabled by default. Fixes: rust-lang#4115 [1] [2]: rust-lang#4134
b3a0067
to
6ccc7fe
Compare
By default, any functions defined in this macro (such as `CMSG_SPACE`) should be `const`.
For some reason, running unit tests in CI gives the following on Android: ```text 2024-11-23T02:17:49.1406378Z Running unittests src/lib.rs (target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec) 2024-11-23T02:17:49.1432206Z * daemon not running; starting now at tcp:5037 2024-11-23T02:17:52.1460169Z * daemon started successfully 2024-11-23T02:18:00.1454112Z adb: error: failed to copy '/checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec' to '/data/local/tmp/libc-79430fca1af8b7ec': remote secure_mkdirs failed: Read-only file system 2024-11-23T02:18:00.1457084Z /checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec: 1 file pushed, 0 skipped. 19.3 MB/s (5418952 bytes in 0.267s) 2024-11-23T02:18:00.3757282Z thread 'main' panicked at /tmp/runtest.rs:26:5: 2024-11-23T02:18:00.3758028Z assertion failed: status.success() 2024-11-23T02:18:00.3758589Z stack backtrace: 2024-11-23T02:18:00.3810307Z 0: rust_begin_unwind 2024-11-23T02:18:00.3811230Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/std/src/panicking.rs:665:5 2024-11-23T02:18:00.3812225Z 1: core::panicking::panic_fmt 2024-11-23T02:18:00.3813089Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:76:14 2024-11-23T02:18:00.3814034Z 2: core::panicking::panic 2024-11-23T02:18:00.3814860Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:148:5 2024-11-23T02:18:00.3815756Z 3: runtest::main 2024-11-23T02:18:00.3816545Z 4: core::ops::function::FnOnce::call_once 2024-11-23T02:18:00.3817848Z note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 2024-11-23T02:18:00.3822763Z error: test failed, to rerun pass `--lib` ``` And on s390x: ``` + grep -Ev ^\[ KASLR disabled: CPU has no PRNG /prog: /lib/s390x-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /prog) + grep -E (PASSED)|(test result: ok) output /prog: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /prog) error: test failed, to rerun pass `--lib` ``` For now, don't run unit tests on these platforms.
This was dropped in fa554bc on `main` and 674cc1f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`, which showed up with `CMSG_SPACE` [1]. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [2]. Instead, leave the feature as-is and just make it enabled by default. Fixes: rust-lang#4115 [1] [2]: rust-lang#4134
6775f74
to
19e9e6a
Compare
We haven't been running any tests associated with the `libc` crate, make sure we do this here. Also simplify some redundant things in the script. (backport <rust-lang#4134>) (cherry picked from commit e0c4e5b)
By default, any functions defined in this macro (such as `CMSG_SPACE`) should be `const`. (backport <rust-lang#4134>) (cherry picked from commit 0304ed5) No change in the cherry pick since the function came from libc-0.2 originally.
For some reason, running unit tests in CI gives the following on Android: ```text 2024-11-23T02:17:49.1406378Z Running unittests src/lib.rs (target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec) 2024-11-23T02:17:49.1432206Z * daemon not running; starting now at tcp:5037 2024-11-23T02:17:52.1460169Z * daemon started successfully 2024-11-23T02:18:00.1454112Z adb: error: failed to copy '/checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec' to '/data/local/tmp/libc-79430fca1af8b7ec': remote secure_mkdirs failed: Read-only file system 2024-11-23T02:18:00.1457084Z /checkout/target/i686-linux-android/debug/deps/libc-79430fca1af8b7ec: 1 file pushed, 0 skipped. 19.3 MB/s (5418952 bytes in 0.267s) 2024-11-23T02:18:00.3757282Z thread 'main' panicked at /tmp/runtest.rs:26:5: 2024-11-23T02:18:00.3758028Z assertion failed: status.success() 2024-11-23T02:18:00.3758589Z stack backtrace: 2024-11-23T02:18:00.3810307Z 0: rust_begin_unwind 2024-11-23T02:18:00.3811230Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/std/src/panicking.rs:665:5 2024-11-23T02:18:00.3812225Z 1: core::panicking::panic_fmt 2024-11-23T02:18:00.3813089Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:76:14 2024-11-23T02:18:00.3814034Z 2: core::panicking::panic 2024-11-23T02:18:00.3814860Z at /rustc/a47555110cf09b3ed59811d9b02235443e76a595/library/core/src/panicking.rs:148:5 2024-11-23T02:18:00.3815756Z 3: runtest::main 2024-11-23T02:18:00.3816545Z 4: core::ops::function::FnOnce::call_once 2024-11-23T02:18:00.3817848Z note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 2024-11-23T02:18:00.3822763Z error: test failed, to rerun pass `--lib` ``` And on s390x: ``` + grep -Ev ^\[ KASLR disabled: CPU has no PRNG /prog: /lib/s390x-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /prog) + grep -E (PASSED)|(test result: ok) output /prog: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /prog) error: test failed, to rerun pass `--lib` ``` For now, don't run unit tests on these platforms. (backport <rust-lang#4134>) (cherry picked from commit f5fdb56)
This was dropped in fa554bc on `main` and 674cc1f on `libc-0.2` ("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting marked `const`, which showed up with `CMSG_SPACE` [1]. Instead of the fix here, I attempted to just use `cfg(not(libc_ctest))` instead of a Cargo feature to enable `const` extern functions; however, this seemed extremely problematic with `ctest` for some reason [2]. Instead, leave the feature as-is and just make it enabled by default. Fixes: rust-lang#4115 [1] [2]: rust-lang#4134 (backport <rust-lang#4134>) (cherry picked from commit 19e9e6a)
This works for me. Thanks! |
I was going to ask before doing a release, thanks for confirming :) |
In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. Fixes: rust-lang#4149 [1]: rust-lang#4105 [2]: rust-lang#4134
In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. Fixes: rust-lang#4149 [1]: rust-lang#4105 [2]: rust-lang#4134
In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. However, this did not help the case where `--no-default-features` is passed. Unfortunately we still can't drop this config entirely since `ctest` cannot parse the syntax, so change back to useing a `cfg` to control constness rather than a Cargo feature. Fixes: rust-lang#4149 [1]: rust-lang#4105 [2]: rust-lang#4134
In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. However, this did not help the case where `--no-default-features` is passed. Unfortunately we still can't drop this config entirely since `ctest` cannot parse the syntax, so change back to useing a `cfg` to control constness rather than a Cargo feature. Additionally, remove a portion of the macro's comment that is no longer relevant. Fixes: rust-lang#4149 [1]: rust-lang#4105 [2]: rust-lang#4134
In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. However, this did not help the case where `--no-default-features` is passed. Unfortunately we still can't drop this config entirely since `ctest` cannot parse the syntax, so change back to useing a `cfg` to control constness rather than a Cargo feature. Additionally, remove a portion of the macro's comment that is no longer relevant. Fixes: rust-lang#4149 [1]: rust-lang#4105 [2]: rust-lang#4134 (backport <rust-lang#4151>) (cherry picked from commit e18ee8c)
In [1] this conditional was dropped in favor of a Cargo feature, which was turned on by default in [2]. However, this did not help the case where `--no-default-features` is passed. Unfortunately we still can't drop this config entirely since `ctest` cannot parse the syntax, so change back to useing a `cfg` to control constness rather than a Cargo feature. Additionally, remove a portion of the macro's comment that is no longer relevant. Fixes: rust-lang#4149 [1]: rust-lang#4105 [2]: rust-lang#4134 (backport <rust-lang#4151>) (cherry picked from commit e18ee8c)
This was dropped in fa554bc on
main
and 674cc1f onlibc-0.2
("Drop the libc_const_extern_fn conditional"). Unfortunately, this meant that functions were incorrectly never getting markedconst
, which showed up withCMSG_SPACE
#4115.Instead of the fix here, I attempted to just use
cfg(not(libc_ctest))
instead of a Cargo feature to enableconst
extern functions; however, this seemed extremely problematic withctest
for some reason 2. Instead, leave the feature as-is and just make it enabled by default.Fixes: #4115