Skip to content
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

[0.2]: fix: make sure the const-extern-fn feature is enabled #4135

Merged
merged 4 commits into from
Nov 25, 2024

Conversation

tgross35
Copy link
Contributor

Backport #4134

@rustbot
Copy link
Collaborator

rustbot commented Nov 23, 2024

r? @JohnTitor

rustbot has assigned @JohnTitor.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

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)
@tgross35 tgross35 force-pushed the backport-fix-constness branch from 7475047 to c2bded3 Compare November 25, 2024 11:09
@tgross35 tgross35 added this pull request to the merge queue Nov 25, 2024
Merged via the queue into rust-lang:libc-0.2 with commit 940e7e7 Nov 25, 2024
45 checks passed
@tgross35 tgross35 deleted the backport-fix-constness branch November 25, 2024 11:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants