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

Support posix_spawn on Android #3602

Merged
merged 1 commit into from Feb 29, 2024
Merged

Conversation

pcc
Copy link

@pcc pcc commented Feb 28, 2024

Android exposes the same functions and constants as the other linux_like platforms, but its posix_spawnattr_t and posix_spawn_file_actions_t are opaque. See:

https://github.com/aosp-mirror/platform_bionic/blob/2215ad406b253f12e270cdd0876e19e9df2aa6d4/libc/include/spawn.h

Since the fields in the linux implementation are private, let's make it opaque on all linux_like platforms.

@rustbot
Copy link
Collaborator

rustbot commented Feb 28, 2024

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @JohnTitor (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@pcc
Copy link
Author

pcc commented Feb 29, 2024

Hmm, I think https://github.com/emscripten-core/emscripten/blob/cbb7a11e2b0ffec34b59c0a7417a1bd2a61e02d9/tools/system_libs.py#L1076 means that Emscripten doesn't actually support posix_spawn (though it does ship the header). I'll make this Android-only then.

@sbc100 FYI -- you might want to stop shipping spawn.h in Emscripten.

@pcc pcc changed the title Support posix_spawn on Android and Emscripten Support posix_spawn on Android Feb 29, 2024
@pcc pcc force-pushed the posix_spawn branch 2 times, most recently from 9f84b19 to da88c0d Compare February 29, 2024 02:59
Android exposes the same functions and constants as the
other linux_like platforms, but its posix_spawnattr_t and
posix_spawn_file_actions_t are opaque. See:

https://github.com/aosp-mirror/platform_bionic/blob/2215ad406b253f12e270cdd0876e19e9df2aa6d4/libc/include/spawn.h

Since the fields in the linux implementation are private, let's make
it opaque on all linux_like platforms.
@JohnTitor JohnTitor added this pull request to the merge queue Feb 29, 2024
Merged via the queue into rust-lang:libc-0.2 with commit 947a185 Feb 29, 2024
57 checks passed
bors added a commit to rust-lang/cargo that referenced this pull request May 1, 2024
chore(deps): update compatible

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [annotate-snippets](https://togithub.com/rust-lang/annotate-snippets-rs) | workspace.dependencies | patch | `0.11.1` -> `0.11.2` |
| [anyhow](https://togithub.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.81` -> `1.0.82` |
| [base64](https://togithub.com/marshallpierce/rust-base64) | workspace.dependencies | patch | `0.22.0` -> `0.22.1` |
| [color-print](https://gitlab.com/dajoha/color-print) | workspace.dependencies | patch | `0.3.5` -> `0.3.6` |
| [flate2](https://togithub.com/rust-lang/flate2-rs) | workspace.dependencies | patch | `1.0.28` -> `1.0.30` |
| [indexmap](https://togithub.com/indexmap-rs/indexmap) | workspace.dependencies | patch | `2` -> `2.2.6` |
| [jobserver](https://togithub.com/rust-lang/jobserver-rs) | workspace.dependencies | patch | `0.1.28` -> `0.1.31` |
| [libc](https://togithub.com/rust-lang/libc) | workspace.dependencies | patch | `0.2.153` -> `0.2.154` |
| [pathdiff](https://togithub.com/Manishearth/pathdiff) | workspace.dependencies | patch | `0.2` -> `0.2.1` |
| [percent-encoding](https://togithub.com/servo/rust-url) | workspace.dependencies | patch | `2.3` -> `2.3.1` |
| [pulldown-cmark](https://togithub.com/raphlinus/pulldown-cmark) | workspace.dependencies | patch | `0.10.2` -> `0.10.3` |
| [serde](https://serde.rs) ([source](https://togithub.com/serde-rs/serde)) | workspace.dependencies | patch | `1.0.197` -> `1.0.199` |
| [serde_json](https://togithub.com/serde-rs/json) | workspace.dependencies | patch | `1.0.115` -> `1.0.116` |
| [thiserror](https://togithub.com/dtolnay/thiserror) | workspace.dependencies | patch | `1.0.58` -> `1.0.59` |
| [time](https://time-rs.github.io) ([source](https://togithub.com/time-rs/time)) | workspace.dependencies | patch | `0.3` -> `0.3.36` |
| [toml_edit](https://togithub.com/toml-rs/toml) | workspace.dependencies | patch | `0.22.11` -> `0.22.12` |
| [unicode-width](https://togithub.com/unicode-rs/unicode-width) | workspace.dependencies | patch | `0.1.11` -> `0.1.12` |

---

### Release Notes

<details>
<summary>rust-lang/annotate-snippets-rs (annotate-snippets)</summary>

### [`v0.11.2`](https://togithub.com/rust-lang/annotate-snippets-rs/blob/HEAD/CHANGELOG.md#0112---2024-04-27)

[Compare Source](https://togithub.com/rust-lang/annotate-snippets-rs/compare/0.11.1...0.11.2)

##### Added

-   All public types now implement `Debug` [#&#8203;119](https://togithub.com/rust-lang/annotate-snippets-rs/pull/119)

</details>

<details>
<summary>dtolnay/anyhow (anyhow)</summary>

### [`v1.0.82`](https://togithub.com/dtolnay/anyhow/releases/tag/1.0.82)

[Compare Source](https://togithub.com/dtolnay/anyhow/compare/1.0.81...1.0.82)

-   Documentation improvements

</details>

<details>
<summary>marshallpierce/rust-base64 (base64)</summary>

### [`v0.22.1`](https://togithub.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0221)

[Compare Source](https://togithub.com/marshallpierce/rust-base64/compare/v0.22.0...v0.22.1)

-   Correct the symbols used for the predefined `alphabet::BIN_HEX`.

</details>

<details>
<summary>dajoha/color-print (color-print)</summary>

### [`v0.3.6`](https://gitlab.com/dajoha/color-print/compare/v0.3.5...v0.3.6)

[Compare Source](https://gitlab.com/dajoha/color-print/compare/v0.3.5...v0.3.6)

</details>

<details>
<summary>rust-lang/flate2-rs (flate2)</summary>

### [`v1.0.30`](https://togithub.com/rust-lang/flate2-rs/releases/tag/1.0.30): - docs.rs pages should build again

[Compare Source](https://togithub.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30)

##### What's Changed

-   Fix typos by [`@&#8203;striezel](https://togithub.com/striezel)` in [rust-lang/flate2-rs#406
-   Update actions/checkout in GitHub Actions workflows to v4 by [`@&#8203;striezel](https://togithub.com/striezel)` in [rust-lang/flate2-rs#407
-   fix CI - `--all-features` wasn't tested and didn't work with arrival of `zlib-rs` by [`@&#8203;Byron](https://togithub.com/Byron)` in [rust-lang/flate2-rs#405

##### New Contributors

-   [`@&#8203;striezel](https://togithub.com/striezel)` made their first contribution in [rust-lang/flate2-rs#406

**Full Changelog**: rust-lang/flate2-rs@1.0.29...1.0.30

### [`v1.0.29`](https://togithub.com/rust-lang/flate2-rs/releases/tag/1.0.29): - with new `zlib-rs` feature (~`zlib-ng` in Rust)

[Compare Source](https://togithub.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29)

With the [new `zlib-rs`](https://togithub.com/memorysafety/zlib-rs) feature, a new backend is enabled that brings in a SIMD-accelerated Rust implementation.

##### What's Changed

-   Fix build for beta and nightly by [`@&#8203;JakubOnderka](https://togithub.com/JakubOnderka)` in [rust-lang/flate2-rs#388
-   Store `StreamWrapper::inner` as a raw pointer by [`@&#8203;icmccorm](https://togithub.com/icmccorm)` in [rust-lang/flate2-rs#394
-   Avoid redudant imports by [`@&#8203;Byron](https://togithub.com/Byron)` in [rust-lang/flate2-rs#398
-   add `zlib-rs` support via the `libz-rs-sys` C api for `zlib-rs` by [`@&#8203;folkertdev](https://togithub.com/folkertdev)` in [rust-lang/flate2-rs#400
-   Add tests to show BufRead can be used after decoding by [`@&#8203;jongiddy](https://togithub.com/jongiddy)` in [rust-lang/flate2-rs#402
-   release version 1.0.29: support for zlib-rs by [`@&#8203;folkertdev](https://togithub.com/folkertdev)` in [rust-lang/flate2-rs#403

##### New Contributors

-   [`@&#8203;JakubOnderka](https://togithub.com/JakubOnderka)` made their first contribution in [rust-lang/flate2-rs#388
-   [`@&#8203;icmccorm](https://togithub.com/icmccorm)` made their first contribution in [rust-lang/flate2-rs#394
-   [`@&#8203;folkertdev](https://togithub.com/folkertdev)` made their first contribution in [rust-lang/flate2-rs#400

**Full Changelog**: rust-lang/flate2-rs@1.0.28...1.0.29

</details>

<details>
<summary>rust-lang/libc (libc)</summary>

### [`v0.2.154`](https://togithub.com/rust-lang/libc/releases/tag/0.2.154)

[Compare Source](https://togithub.com/rust-lang/libc/compare/0.2.153...0.2.154)

#### What's Changed

-   Fix CI on v0.2 by [`@&#8203;JohnTitor](https://togithub.com/JohnTitor)` in [rust-lang/libc#3589
-   \[Backport [#&#8203;3547](https://togithub.com/rust-lang/libc/issues/3547)] Add ioctl FS_IOC\_{G,S}{ETVERSION,ETFLAGS} for CSKY by [`@&#8203;Dirreke](https://togithub.com/Dirreke)` in [rust-lang/libc#3572
-   Add Linux riscv64 HWCAP defines (libc-0.2) by [`@&#8203;Xeonacid](https://togithub.com/Xeonacid)` in [rust-lang/libc#3580
-   Add missing MIPS R6 FS_IOC_\* definitions by [`@&#8203;chenx97](https://togithub.com/chenx97)` in [rust-lang/libc#3591
-   Support posix_spawn on Android by [`@&#8203;pcc](https://togithub.com/pcc)` in [rust-lang/libc#3602
-   \[0.2] Fix libc-tests for loongarch64 by [`@&#8203;heiher](https://togithub.com/heiher)` in [rust-lang/libc#3607
-   visionOS Support by [`@&#8203;agg23](https://togithub.com/agg23)` in [rust-lang/libc#3568
-   \[0.2] linux/musl: Add support for LoongArch64 by [`@&#8203;heiher](https://togithub.com/heiher)` in [rust-lang/libc#3606
-   v0.2: Fix c_char on AIX by [`@&#8203;taiki-e](https://togithub.com/taiki-e)` in [rust-lang/libc#3662
-   solarish adding SO_EXCLBIND constant. by [`@&#8203;devnexen](https://togithub.com/devnexen)` in [rust-lang/libc#3651
-   \[0.2] Add SIG constants to espidf by [`@&#8203;Tevz-Beskovnik](https://togithub.com/Tevz-Beskovnik)` in [rust-lang/libc#3658
-   add all android sysconf constants by [`@&#8203;fkm3](https://togithub.com/fkm3)` in [rust-lang/libc#3656
-   feat: more \_PC_XXX constants for apple targets by [`@&#8203;SteveLauC](https://togithub.com/SteveLauC)` in [rust-lang/libc#3649
-   feat: O_EXEC/O_SEARCH for apple platforms by [`@&#8203;SteveLauC](https://togithub.com/SteveLauC)` in [rust-lang/libc#3668
-   \[0.2] Add constant AT_MINSIGSTKSZ by [`@&#8203;ur4t](https://togithub.com/ur4t)` in [rust-lang/libc#3637
-   Haiku: synchronize with post R1-beta 4 changes in libc by [`@&#8203;nielx](https://togithub.com/nielx)` in [rust-lang/libc#3638
-   adding getentropy/getrandom to dragonflybsd. by [`@&#8203;devnexen](https://togithub.com/devnexen)` in [rust-lang/libc#3618
-   Move strftime, strftime_l, strptime to linux_like by [`@&#8203;pcc](https://togithub.com/pcc)` in [rust-lang/libc#3600
-   update crate version to 0.2.154 by [`@&#8203;Dirreke](https://togithub.com/Dirreke)` in [rust-lang/libc#3573

#### New Contributors

-   [`@&#8203;pcc](https://togithub.com/pcc)` made their first contribution in [rust-lang/libc#3602
-   [`@&#8203;agg23](https://togithub.com/agg23)` made their first contribution in [rust-lang/libc#3568
-   [`@&#8203;Tevz-Beskovnik](https://togithub.com/Tevz-Beskovnik)` made their first contribution in [rust-lang/libc#3658
-   [`@&#8203;ur4t](https://togithub.com/ur4t)` made their first contribution in [rust-lang/libc#3637

**Full Changelog**: rust-lang/libc@0.2.153...0.2.154

</details>

<details>
<summary>raphlinus/pulldown-cmark (pulldown-cmark)</summary>

### [`v0.10.3`](https://togithub.com/pulldown-cmark/pulldown-cmark/releases/tag/v0.10.3)

[Compare Source](https://togithub.com/raphlinus/pulldown-cmark/compare/v0.10.2...v0.10.3)

The main change of this release is the `simd` feature was not being used in the escape functions  since the version 0.10 due to a mistake during the separation of the crate `pulldown-cmark-escape`.

The crate `pulldown-cmark-escape` has been updated to the version 0.10.1.

#### What's Changed

-   fix: fix dead code warning from nightly compiler by [`@&#8203;rhysd](https://togithub.com/rhysd)` in [pulldown-cmark/pulldown-cmark#876
-   Eat all spaces after line break in link title by [`@&#8203;notriddle](https://togithub.com/notriddle)` in [pulldown-cmark/pulldown-cmark#877
-   Mark `Rule` as a block item by [`@&#8203;notriddle](https://togithub.com/notriddle)` in [pulldown-cmark/pulldown-cmark#879

**Full Changelog**: pulldown-cmark/pulldown-cmark@v0.10.2...v0.10.3

</details>

<details>
<summary>serde-rs/serde (serde)</summary>

### [`v1.0.199`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.199)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.198...v1.0.199)

-   Fix ambiguous associated item when `forward_to_deserialize_any!` is used on an enum with `Error` variant ([#&#8203;2732](https://togithub.com/serde-rs/serde/issues/2732), thanks [`@&#8203;aatifsyed](https://togithub.com/aatifsyed))`

### [`v1.0.198`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.198)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.197...v1.0.198)

-   Support serializing and deserializing `Saturating<T>` ([#&#8203;2709](https://togithub.com/serde-rs/serde/issues/2709), thanks [`@&#8203;jbethune](https://togithub.com/jbethune))`

</details>

<details>
<summary>serde-rs/json (serde_json)</summary>

### [`v1.0.116`](https://togithub.com/serde-rs/json/releases/tag/v1.0.116)

[Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.115...v1.0.116)

-   Make module structure comprehensible to static analysis ([#&#8203;1124](https://togithub.com/serde-rs/json/issues/1124), thanks [`@&#8203;mleonhard](https://togithub.com/mleonhard))`

</details>

<details>
<summary>dtolnay/thiserror (thiserror)</summary>

### [`v1.0.59`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.59)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.58...1.0.59)

-   Unblock testing of rustc `debug-fmt-detail` option ([#&#8203;297](https://togithub.com/dtolnay/thiserror/issues/297))

</details>

<details>
<summary>time-rs/time (time)</summary>

### [`v0.3.36`](https://togithub.com/time-rs/time/blob/HEAD/CHANGELOG.md#0336-2024-04-10)

[Compare Source](https://togithub.com/time-rs/time/compare/v0.3.35...v0.3.36)

##### # Fixed

-   `FormatItem` can be used as part of an import path. See [#&#8203;675] for details.

[#&#8203;675]: https://togithub.com/time-rs/time/issues/675

### [`v0.3.35`](https://togithub.com/time-rs/time/blob/HEAD/CHANGELOG.md#0335-2024-04-10)

[Compare Source](https://togithub.com/time-rs/time/compare/v0.3.34...v0.3.35)

##### Added

-   `Duration::checked_neg`
-   `ext::InstantExt`, which provides methods for using `time::Duration` with `std::time::Instant`

##### Changed

-   `Instant` is deprecated. It is recommended to use `std::time::Instant` directly, importing
    `time::ext::InstantExt` for interoperability with `time::Duration`.
-   `FormatItem` has been renamed to `BorrowedFormatItem`, avoiding confusion with `OwnedFormatItem`.
    An alias has been added for backwards compatibility.

##### Fixed

-   The weekday is optional when parsing RFC2822.
-   The range of sub-second values in `Duration` is documented correctly. The previous documentation
    contained an off-by-one error.
-   Leap seconds are now correctly handled when parsing ISO 8601.

</details>

<details>
<summary>toml-rs/toml (toml_edit)</summary>

### [`v0.22.12`](https://togithub.com/toml-rs/toml/compare/v0.22.11...v0.22.12)

[Compare Source](https://togithub.com/toml-rs/toml/compare/v0.22.11...v0.22.12)

</details>

<details>
<summary>unicode-rs/unicode-width (unicode-width)</summary>

### [`v0.1.12`](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.11...v0.1.12)

[Compare Source](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.11...v0.1.12)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 5am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rust-lang/cargo).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
@madsmtm
Copy link
Contributor

madsmtm commented May 5, 2024

This was revered in #3678 because exposing the fields was important to get the correct size, see #3608.

@pcc I'd suggest you file a new PR that doesn't have this problem.

leftwo pushed a commit to oxidecomputer/crucible that referenced this pull request May 14, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [libc](https://togithub.com/rust-lang/libc) | workspace.dependencies |
patch | `0.2.153` -> `0.2.154` |

---

### Release Notes

<details>
<summary>rust-lang/libc (libc)</summary>

###
[`v0.2.154`](https://togithub.com/rust-lang/libc/releases/tag/0.2.154)

[Compare
Source](https://togithub.com/rust-lang/libc/compare/0.2.153...0.2.154)

#### What's Changed

- Fix CI on v0.2 by [@&#8203;JohnTitor](https://togithub.com/JohnTitor)
in
[rust-lang/libc#3589
- \[Backport
[#&#8203;3547](https://togithub.com/rust-lang/libc/issues/3547)] Add
ioctl FS_IOC\_{G,S}{ETVERSION,ETFLAGS} for CSKY by
[@&#8203;Dirreke](https://togithub.com/Dirreke) in
[rust-lang/libc#3572
- Add Linux riscv64 HWCAP defines (libc-0.2) by
[@&#8203;Xeonacid](https://togithub.com/Xeonacid) in
[rust-lang/libc#3580
- Add missing MIPS R6 FS_IOC_\* definitions by
[@&#8203;chenx97](https://togithub.com/chenx97) in
[rust-lang/libc#3591
- Support posix_spawn on Android by
[@&#8203;pcc](https://togithub.com/pcc) in
[rust-lang/libc#3602
- \[0.2] Fix libc-tests for loongarch64 by
[@&#8203;heiher](https://togithub.com/heiher) in
[rust-lang/libc#3607
- visionOS Support by [@&#8203;agg23](https://togithub.com/agg23) in
[rust-lang/libc#3568
- \[0.2] linux/musl: Add support for LoongArch64 by
[@&#8203;heiher](https://togithub.com/heiher) in
[rust-lang/libc#3606
- v0.2: Fix c_char on AIX by
[@&#8203;taiki-e](https://togithub.com/taiki-e) in
[rust-lang/libc#3662
- solarish adding SO_EXCLBIND constant. by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[rust-lang/libc#3651
- \[0.2] Add SIG constants to espidf by
[@&#8203;Tevz-Beskovnik](https://togithub.com/Tevz-Beskovnik) in
[rust-lang/libc#3658
- add all android sysconf constants by
[@&#8203;fkm3](https://togithub.com/fkm3) in
[rust-lang/libc#3656
- feat: more \_PC_XXX constants for apple targets by
[@&#8203;SteveLauC](https://togithub.com/SteveLauC) in
[rust-lang/libc#3649
- feat: O_EXEC/O_SEARCH for apple platforms by
[@&#8203;SteveLauC](https://togithub.com/SteveLauC) in
[rust-lang/libc#3668
- \[0.2] Add constant AT_MINSIGSTKSZ by
[@&#8203;ur4t](https://togithub.com/ur4t) in
[rust-lang/libc#3637
- Haiku: synchronize with post R1-beta 4 changes in libc by
[@&#8203;nielx](https://togithub.com/nielx) in
[rust-lang/libc#3638
- adding getentropy/getrandom to dragonflybsd. by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[rust-lang/libc#3618
- Move strftime, strftime_l, strptime to linux_like by
[@&#8203;pcc](https://togithub.com/pcc) in
[rust-lang/libc#3600
- update crate version to 0.2.154 by
[@&#8203;Dirreke](https://togithub.com/Dirreke) in
[rust-lang/libc#3573

#### New Contributors

- [@&#8203;pcc](https://togithub.com/pcc) made their first contribution
in
[rust-lang/libc#3602
- [@&#8203;agg23](https://togithub.com/agg23) made their first
contribution in
[rust-lang/libc#3568
- [@&#8203;Tevz-Beskovnik](https://togithub.com/Tevz-Beskovnik) made
their first contribution in
[rust-lang/libc#3658
- [@&#8203;ur4t](https://togithub.com/ur4t) made their first
contribution in
[rust-lang/libc#3637

**Full Changelog**:
rust-lang/libc@0.2.153...0.2.154

</details>
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.

None yet

4 participants