Hi! On 11/30/22 20:39, enh wrote: > > > On Wed, Nov 23, 2022 at 7:33 AM Shiz > wrote: > > Hi there, > > > On 23 Nov Reiwa 4, at 14:16, Alejandro Colomar > wrote: > > > >>>> -  Android is not a real Unix system, in that you can't even program > in C in > >>>> there, unless you're Google or have hacked your system.  It's not friendly > >>>> to us programmers, so we don't need to be friendly to it.  I don't want to > >>>> be cluttering the pages with information that is irrelevant to normal > users. > >>> > >>> I'm assuming bionic is being used in some of the Android free > >>> alternatives too, but then I'm not sure how usable for programming those > >>> are either. And, well musl libc is not a real Unix system you can program > >>> against either. :) > > > > The difference is only that bionic is not in use in useful systems > (AFAIK).  :) > > > > So we have to do some decission here (and also about newlib, as reported > by Brian). > > I’d like to chime in here and note that, valuations of usefulness aside, it *is* > possible to develop in C against an Android device, without needing any hacks, > using the NDK[1]. As someone who has occasionally worked on big codebases > written > in C and C++ for Android devices, I would argue there’s value to be had > there. :-) > > > plus i think bionic is the only libc that explicitly links to man7.org > as the canonical source for documentation in its header files :-) :-) > > funnily enough, this topic ("should the man pages talk about availability in > libcs other than glibc?") came up before, and specifically for bionic mkerrisk > seemed to think it was a reasonable idea ... I agree with Michael. > but i (bionic maintainer) was less > convinced. although i think that, yes, if someone's reading that part of the > page, realistically they're either interested in macOS/iOS or Android (sorry, > AIX or IRIX fans!), yep. > but specifically for those two systems the header files > already contain machine-readable availability information via > __attribute__((__available__)). > > fwiw, here's an example from bionic's illustrating both of those points: > > ``` > /** >  * > [copy_file_range(2)](https://man7.org/linux/man-pages/man2/copy_file_range.2.html ) copies >  * a range of data from one file descriptor to another. >  * >  * Returns the number of bytes copied on success, and returns -1 and sets `errno` >  * on failure. >  * >  * Available since API level 34. >  */ > ssize_t copy_file_range(int __fd_in, off64_t* __off_in, int __fd_out, off64_t* > __off_out, size_t __length, unsigned int __flags) __INTRODUCED_IN(34); > ``` > > (if there's anything android-specific to note, we also mention that, but there > are relatively few examples of those, and it's mostly just "SELinux means that > only system processes can enable/disable swap" or whatever.) > > so it wasn't clear to me whether -- unless you automated it -- there was much > value to duplicating that in the man pages? if you try to compile, you're going > to get a clear compiler error saying "you need to be targeting OS version > $whatever" anyway. > > i think the real question is "aye, but will they get that far?". for my part, i > think the most value would come from cases that talk about "GNU extension" being > a bit clearer whether that's "unique to glibc" (which a lot of people assume is > what it means) or "initially in glibc, but a good enough idea that it's > effectively ubiquitous now, even if it's not in POSIX because Solaris will never > add it". and maybe the best way to clarify stuff like that is just to explicitly > state "Available on macOS since 10.4. Available on Android since API level 23."? > dunno. > > if anyone _does_ want to go that route, i'd be happy to help with the "raw data" > side. (and certainly if anyone does start adding that, you'll force me to care > about maintaining it :-) ) I don't "want", as in, doing a global dump of data into the pages. I have better things in which to spend my time. However, if someone sends a patch for one or another page, I'll accept it with the following requirements: It references a free software libc. So for example, macOS no, Apple libc yes. > > but my biggest problem right now is that man7.org isn't being > updated, and i can't get hold of mkerrisk to try to offer him money to do it :-( I talked to him some months ago. The last times, he was always very busy. Good luck contacting him! I still hope he will reappear some day... If I see him again, I'll mention this offer to him. > (i do hope he's okay, wherever he is!) I hope he is! Cheers, Alex --