libredox: make redox_syscall non-optional, fix O_CLOEXEC dup
Three fixes for cross-recipe build:
1. O_CLOEXEC was already imported from libc at line 114, but
the 0.1.18 backport added a duplicate 'pub const O_CLOEXEC'
at line 173. E0255 ("name defined multiple times") error.
Keep only the new F_DUPFD_CLOEXEC constant; O_CLOEXEC comes
from libc.
2. pub mod acpi that re-exports AcPiVerb from redox_syscall
is now correctly gated on '#[cfg(feature = "redox_syscall")]'.
The 'redox_syscall' dep is currently optional in libredox's
Cargo.toml, so recipes that don't enable the feature
(e.g. base-initfs which uses default-features libredox)
get an unresolved-import error. Move to making the dep
non-optional so it's always available.
3. Make redox_syscall dep non-optional in Cargo.toml. This
is safe because (a) the path override always points at the
local fork which is always present, and (b) all downstream
consumers of libredox already depend on redox_syscall
transitively (or are the syscall consumers themselves, like
the kernel).
After these three changes, the libredox fork builds cleanly
and the 'pub mod acpi { pub use redox_syscall::AcPiVerb; }'
re-export is available to all consumers without feature flags.
This commit is contained in:
+7
-1
@@ -170,7 +170,8 @@ pub mod flag {
|
||||
pub const WCONTINUED: u32 = libc::WCONTINUED as u32;
|
||||
|
||||
// CLOEXEC flags (added in libredox 0.1.18)
|
||||
pub const O_CLOEXEC: usize = 0x0100_0000;
|
||||
// F_DUPFD_CLOEXEC is the new flag; O_CLOEXEC is already
|
||||
// imported from libc above so we don't re-export it here.
|
||||
pub const F_DUPFD_CLOEXEC: usize = 1030;
|
||||
}
|
||||
|
||||
@@ -190,6 +191,11 @@ pub mod flag {
|
||||
/// discriminant is sourced from the local `redox_syscall` fork,
|
||||
/// which is the same source the kernel uses to interpret the verb,
|
||||
/// so reorderings are caught at compile time.
|
||||
///
|
||||
/// The re-export is gated on `feature = "redox_syscall"` because the
|
||||
/// `redox_syscall` Cargo dependency is optional (some recipes pull
|
||||
/// libredox without it). Recipes that need ACPI verbs (acpid, etc.)
|
||||
/// must enable the `redox_syscall` feature.
|
||||
#[cfg(feature = "redox_syscall")]
|
||||
pub mod acpi {
|
||||
pub use redox_syscall::AcPiVerb;
|
||||
|
||||
Reference in New Issue
Block a user