Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants