std: make positioned I/O unsupported on VxWorks - #160031
Conversation
|
r? @Darksonn rustbot has assigned @Darksonn. Use Why was this reviewer chosen?The reviewer was selected based on:
|
There was a problem hiding this comment.
Hmm, this is a bit messy. The current code has isolated all the conditional logic to this cfg_select!, but this PR introduces conditional logic in a bunch of other places.
If you do this, you can keep the conditional logic in one place:
| cfg_select! { | |
| target_os = "vxworks" => { | |
| pub unsafe fn pread64( | |
| _fd: c_int, | |
| _buf: *mut c_void, | |
| _count: size_t, | |
| _offset: off64_t | |
| ) -> ssize_t { | |
| -1 | |
| } | |
| } | |
| any( | |
| all(target_os = "linux", not(target_env = "musl")), | |
| target_os = "android", | |
| target_os = "hurd", | |
| ) => { | |
| // Prefer explicit pread64 for 64-bit offset independently of libc | |
| // #[cfg(gnu_file_offset_bits64)]. | |
| use libc::pread64; | |
| } |
There was a problem hiding this comment.
Though it'd re-add shims, not returning the unsupported error. This PR's aim is to correct the behavior around it.
There was a problem hiding this comment.
Uhm, after re-thinking about it, aligning the behavior might be overkill here, including overriding errno. For now, added shims as you suggested.
14b74b1 to
84af593
Compare
…upported, r=Darksonn std: make positioned I/O unsupported on VxWorks Currently, build-std for VxWorks fails because std calls pread/pwrite for positioned I/O. Previously libc defined them as shims, but recently these were removed to align the actual state of SDK: rust-lang/libc#5129 It should make sense to return an unsupported error for VxWorks. Fix rust-lang/libc#5328
…uwer Rollup of 7 pull requests Successful merges: - #138230 (Add `raw_borrows_via_references` lint) - #160031 (std: make positioned I/O unsupported on VxWorks) - #159955 (Stop using higher-order macros to declare arenas) - #160164 (Derive `GenericTypeVisitable` for `RegionConstraint`) - #160177 (A few more "predicate"-to-"clause" renamings) - #160192 (Fix ICE for parsing issue with a closing brace) - #160209 (bootstrap: Remove method `Subcommand::kind`)
…uwer Rollup of 25 pull requests Successful merges: - #160204 (Sync from portable simd 2026 07 30) - #138230 (Add `raw_borrows_via_references` lint) - #158057 (Don't escape U+FF9E and U+FF9F in `escape_debug_ext`) - #160015 (refactor(mir-transform): Merge `can_be_overridden`, `is_required` and `is_enabled` into one) - #160031 (std: make positioned I/O unsupported on VxWorks) - #160125 (Fix typing mode handling in transmute checks and rustc_dump_layout) - #160152 (Create on-demand CI job for testing EC2 instances) - #160232 (rustdoc: fix ICE when a grapheme cluster joins a Prepend-class character to `_` or `:`) - #159214 (std: improve the documentation of the random feature) - #159818 (Resolve vars before calling `unnormalized_obligations`) - #159955 (Stop using higher-order macros to declare arenas) - #159958 (Fix avoid cycle for self referential return type notation) - #160040 (Split function parsing out of `item.rs` to a new module.) - #160044 (Add regression tests for fixed dead-code issues) - #160144 (renovate: group lockfiles PRs) - #160149 (Fix Windows on Arm PAC default) - #160164 (Derive `GenericTypeVisitable` for `RegionConstraint`) - #160175 (Try to recover less from incorrectly parsed const arg) - #160177 (A few more "predicate"-to-"clause" renamings) - #160181 (Mark `Tuple` and `FnPtr` traits `#[fundamental]`) - #160192 (Fix ICE for parsing issue with a closing brace) - #160209 (bootstrap: Remove method `Subcommand::kind`) - #160221 (Remove `Copy` supertrait from `VaList`) - #160223 (interpret: rename validate_operand → validate_place) - #160234 (Always use short ty path for call with missing arguments suggestion)
…uwer Rollup of 25 pull requests Successful merges: - #160204 (Sync from portable simd 2026 07 30) - #138230 (Add `raw_borrows_via_references` lint) - #158057 (Don't escape U+FF9E and U+FF9F in `escape_debug_ext`) - #160015 (refactor(mir-transform): Merge `can_be_overridden`, `is_required` and `is_enabled` into one) - #160031 (std: make positioned I/O unsupported on VxWorks) - #160125 (Fix typing mode handling in transmute checks and rustc_dump_layout) - #160152 (Create on-demand CI job for testing EC2 instances) - #160232 (rustdoc: fix ICE when a grapheme cluster joins a Prepend-class character to `_` or `:`) - #159214 (std: improve the documentation of the random feature) - #159818 (Resolve vars before calling `unnormalized_obligations`) - #159955 (Stop using higher-order macros to declare arenas) - #159958 (Fix avoid cycle for self referential return type notation) - #160040 (Split function parsing out of `item.rs` to a new module.) - #160044 (Add regression tests for fixed dead-code issues) - #160144 (renovate: group lockfiles PRs) - #160149 (Fix Windows on Arm PAC default) - #160164 (Derive `GenericTypeVisitable` for `RegionConstraint`) - #160175 (Try to recover less from incorrectly parsed const arg) - #160177 (A few more "predicate"-to-"clause" renamings) - #160181 (Mark `Tuple` and `FnPtr` traits `#[fundamental]`) - #160192 (Fix ICE for parsing issue with a closing brace) - #160209 (bootstrap: Remove method `Subcommand::kind`) - #160221 (Remove `Copy` supertrait from `VaList`) - #160223 (interpret: rename validate_operand → validate_place) - #160234 (Always use short ty path for call with missing arguments suggestion)
Rollup merge of #160031 - JohnTitor:vxworks-pread-pwrite-unsupported, r=Darksonn std: make positioned I/O unsupported on VxWorks Currently, build-std for VxWorks fails because std calls pread/pwrite for positioned I/O. Previously libc defined them as shims, but recently these were removed to align the actual state of SDK: rust-lang/libc#5129 It should make sense to return an unsupported error for VxWorks. Fix rust-lang/libc#5328
…uwer Rollup of 25 pull requests Successful merges: - rust-lang/rust#160204 (Sync from portable simd 2026 07 30) - rust-lang/rust#138230 (Add `raw_borrows_via_references` lint) - rust-lang/rust#158057 (Don't escape U+FF9E and U+FF9F in `escape_debug_ext`) - rust-lang/rust#160015 (refactor(mir-transform): Merge `can_be_overridden`, `is_required` and `is_enabled` into one) - rust-lang/rust#160031 (std: make positioned I/O unsupported on VxWorks) - rust-lang/rust#160125 (Fix typing mode handling in transmute checks and rustc_dump_layout) - rust-lang/rust#160152 (Create on-demand CI job for testing EC2 instances) - rust-lang/rust#160232 (rustdoc: fix ICE when a grapheme cluster joins a Prepend-class character to `_` or `:`) - rust-lang/rust#159214 (std: improve the documentation of the random feature) - rust-lang/rust#159818 (Resolve vars before calling `unnormalized_obligations`) - rust-lang/rust#159955 (Stop using higher-order macros to declare arenas) - rust-lang/rust#159958 (Fix avoid cycle for self referential return type notation) - rust-lang/rust#160040 (Split function parsing out of `item.rs` to a new module.) - rust-lang/rust#160044 (Add regression tests for fixed dead-code issues) - rust-lang/rust#160144 (renovate: group lockfiles PRs) - rust-lang/rust#160149 (Fix Windows on Arm PAC default) - rust-lang/rust#160164 (Derive `GenericTypeVisitable` for `RegionConstraint`) - rust-lang/rust#160175 (Try to recover less from incorrectly parsed const arg) - rust-lang/rust#160177 (A few more "predicate"-to-"clause" renamings) - rust-lang/rust#160181 (Mark `Tuple` and `FnPtr` traits `#[fundamental]`) - rust-lang/rust#160192 (Fix ICE for parsing issue with a closing brace) - rust-lang/rust#160209 (bootstrap: Remove method `Subcommand::kind`) - rust-lang/rust#160221 (Remove `Copy` supertrait from `VaList`) - rust-lang/rust#160223 (interpret: rename validate_operand → validate_place) - rust-lang/rust#160234 (Always use short ty path for call with missing arguments suggestion)
Currently, build-std for VxWorks fails because std calls pread/pwrite for positioned I/O.
Previously libc defined them as shims, but recently these were removed to align the actual state of SDK: rust-lang/libc#5129
It should make sense to return an unsupported error for VxWorks.
Fix rust-lang/libc#5328