Skip to content

fix(apple): define in6_ifreq locally so iOS targets build with libc 0.2.190 - #192

Draft
andrewgazelka wants to merge 1 commit into
shellrow:mainfrom
andrewgazelka:fix/ios-in6-ifreq
Draft

andrewgazelka wants to merge 1 commit into
shellrow:mainfrom
andrewgazelka:fix/ios-in6-ifreq

Conversation

@andrewgazelka

@andrewgazelka andrewgazelka commented Oct 10, 2026 •

Copy link
Copy Markdown

libc 0.2.190 only exposes in6_ifreq on macOS (netinet6/in6_var.h is not in the iOS SDK), so cargo check --target aarch64-apple-ios-sim fails with cannot find type in6_ifreq in crate libc (libc 0.2.189 still had it; I only reproduced the ios-sim target).

This defines the struct in src/os/darwin/ipv6_addr_flags.rs, padded to 0x120 bytes (the size encoded in SIOCGIFAFLAG_IN6, asserted at compile time), and adds aarch64-apple-ios and aarch64-apple-ios-sim cargo check jobs to CI.

Measured locally (Xcode 27 beta SDK, stable toolchain, libc pinned to 0.2.190): before, cargo check --target aarch64-apple-ios-sim fails with the error above; after, aarch64-apple-ios-sim, aarch64-apple-ios and aarch64-apple-darwin check clean, cargo test passes (33 tests) and list_interfaces on macOS still reports interface flags. Not run on a device or simulator. The new CI job is untested until it runs here.

AI disclosure: written with Claude (Sonnet); commit carries an Assisted-by: trailer.

….2.190

libc 0.2.190 only exposes in6_ifreq on macOS (netinet6/in6_var.h is not in
the iOS SDK), which broke cargo check for aarch64-apple-ios and
aarch64-apple-ios-sim. Define the struct in the darwin module, sized to the
0x120 bytes encoded in SIOCGIFAFLAG_IN6, and add iOS targets to CI.

Assisted-by: Claude:claude-sonnet-5-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant