On Sun, Oct 7, 2018 at 3:12 PM Rob Landley <r...@landley.net> wrote: > > On 10/07/2018 11:30 AM, enh wrote: > > Bug: https://github.com/landley/toybox/issues/43 > > That fixes that one (once I pulled your email out of the spam filter, and yes > I > got unsubscribed from my own list again because gmail false positived on the > "sorry if this one's a duplicate" email from earlier today and refused > delivery. > It's pretty much a daily occurrence at this point.) > > But there's another problem, your redo of getconf works wth glibc and bionic, > but not with a musl-cross-make toolchain: > > toys/posix/getconf.c:140:8: error: 'UIO_MAXIOV' undeclared here (not in a > function); did you mean '_SC_UIO_MAXIOV'? > CONF(UIO_MAXIOV), CONF(CHAR_BIT), > ^ > > Trying its suggestion and switching to _SC_UIO_MAXIOV, ala: > > --- a/toys/posix/getconf.c > +++ b/toys/posix/getconf.c > @@ -86,7 +86,7 @@ struct config sysconfs[] = { > CONF(PAGESIZE), CONF(RAW_SOCKETS), CONF(RE_DUP_MAX), CONF(RTSIG_MAX), > CONF(SEM_NSEMS_MAX), CONF(SEM_VALUE_MAX), CONF(SIGQUEUE_MAX), > CONF(STREAM_MAX), CONF(SYMLOOP_MAX), CONF(TIMER_MAX), CONF(TTY_NAME_MAX), > - CONF(TZNAME_MAX), > + CONF(TZNAME_MAX), CONF(UIO_MAXIOV), > > /* Names that just don't match the symbol, do it by hand */ > {"_AVPHYS_PAGES", _SC_AVPHYS_PAGES}, {"_PHYS_PAGES", _SC_PHYS_PAGES}, > @@ -137,7 +137,7 @@ struct config limits[] = { > CONF(CHAR_MAX), CONF(CHAR_MIN), CONF(INT_MAX), CONF(INT_MIN), > CONF(SCHAR_MAX) > CONF(SCHAR_MIN), CONF(SHRT_MAX), CONF(SHRT_MIN), CONF(SSIZE_MAX), > CONF(UCHAR_MAX), CONF(UINT_MAX), CONF(ULONG_MAX), CONF(USHRT_MAX), > - CONF(UIO_MAXIOV), CONF(CHAR_BIT), > + CONF(CHAR_BIT), > /* Not available in glibc without _GNU_SOURCE. */ > {"LONG_BIT", 8*sizeof(long)}, > {"WORD_BIT", 8*sizeof(int)}, > > Then it works with glibc and musl, but _not_ with the android NDKr18:
yeah, hard to know what to do with something non-standard like that, but if we're in a world where some have one and others have the other, we usually end up having both. conveniently musl and glibc make _SC_UIO_MAXIOV the same as the existing _SC_IOV_MAX so i'll do the same and it'll even be backwards compatible for old OS releases. added by https://android-review.googlesource.com/c/platform/bionic/+/783682 and will be in r19. > toys/posix/getconf.c:89:21: error: use of undeclared identifier > '_SC_UIO_MAXIOV' > CONF(TZNAME_MAX), CONF(UIO_MAXIOV), > > I can fix this up with portabiliy.h glue (not sure which direction's right > though), but it's why I was trying the header generation approach in the first > place. If anybody ever does try to build this command on macosx or freebsd, > it's > likely to be a nightmare. The sed version had a bug and was hard to read, but > was at least portable in _theory_... > > Rob _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net