rust-lang / libc

Raw bindings to platform APIs for Rust
https://docs.rs/libc
Apache License 2.0
2.07k stars 1.04k forks source link

Breaking Android changes for libc 1.0 #3875

Open tgross35 opened 1 month ago

tgross35 commented 1 month ago

https://github.com/rust-lang/libc/issues/641 listed some things that we may want to break when libc gets a 1.0. https://github.com/rust-lang/libc/pull/634 addressed some of it, but I don't believe that is everything since (iiuc) it went into a 0.2.x release.

We are ramping up toward a 1.0 release. Is there anything else incorrect that we may want to change? Cc @ndusart since you authored the issue and PR, @maurer since I think you're the main Android maintainer at this point.

ndusart commented 1 month ago

That's a looong time ago for me :sweat_smile: , I need to get back into this crate internals to provide meaningful information.

From a quick glimpse, I would say that it should be best to look into the symbols that are skipped from the libc-test and see if they fails because they are just unaligned with latest headers or if the skip is there for a valid reason.

Most of the skips I introduced are gone (and comments about these skips are now weirdly in the solaris part of the test ^^) so I suppose most breaking changes have already been done (e.g: https://github.com/rust-lang/libc/commit/7d5e632d36fea980a7fadaafd279c4604978cad7)

I cannot provide the necessary effort to be exhaustive in this matter though and I didn't need to do any Android native development for a while so I cannot say easily if libc crate is off for the latest versions of NDK.