Hi, On Wed, Sep 14, 2022 at 12:52:50AM -0500, Rob Landley wrote: > I'm looking at > https://salsa.debian.org/debian/toybox/-/blob/master/debian/patches/set-pathmax-default.patch > and: > > A) Nothing outside of kconfig uses PATH_MAX that I'm aware of? > toys/posix/getconf.c has CONF(PATH_MAX) but that expands to _PC_PATH_MAX which > is an enum value in /usr/include/*/bits/confname.h that resolves to... looks > like 4? Other than that, grep in a clean checkout finds www/code.html saying > we > do NOT use PATH_MAX, and the aforementioned kconfig. > > 2) I'm building on devuan barnacle and it's got PATH_MAX due to... > > /usr/include/linux/limits.h:13:2: warning: #warning defining PATH_MAX [-Wcpp] > #warning defining PATH_MAX > ^~~~~~~ > In file included from /usr/include/x86_64-linux-gnu/bits/local_lim.h:38, > from /usr/include/x86_64-linux-gnu/bits/posix1_lim.h:161, > from /usr/include/dirent.h:233, > from ./toys.h:13, > from lib/args.c:10: > > I also checked the musl and bionic headers, and both of them define PATH_MAX > in > limits.h. (Without which that kconfig build would have broken.) > > III) The three kconfig/*.c files you modified all #include "lxc.h" so I can > just > add the #ifndef block there once instead of repeating it in many individual > files. > > If toybox itself needs this it wouldn't go in various *.c files, it would go > in > lib/portability.h which is (indirectly) #included from every toybox *.c file. > But... why is it needed? (What breaks if it's not there?) > > I commited dea2ace53450 to the repo for kconfig (that whole directory needs to > be replaced, I know), but there's an actual issue in toybox itself, could you > be > more specific about what you're seeing? > > Thanks, > > Rob
Path 'set-pathmax-default.patch' was a quick dirty fix trying to build Toybox for Debian/Hurd. Hurd build log before the patch: https://buildd.debian.org/status/fetch.php?pkg=toybox&arch=hurd-i386&ver=0.8.8%2Bdfsg-1&stamp=1660914245&raw=0 ( scripts/kconfig/lex.zconf.c:2263:22: error: ‘PATH_MAX’ undeclared (first use in this function) ) Hurd buildlog after the patch: https://buildd.debian.org/status/fetch.php?pkg=toybox&arch=hurd-i386&ver=0.8.8%2Bdfsg-2&stamp=1663073011&raw=0 ( ./lib/portability.h:183:10: fatal error: sys/mount.h: No such file or directory ) Still needs more work :-/ I'll try to look at it but probably there are too much work to be done. Some coments PATH_MAX: https://www.gnu.org/software/hurd/hurd/porting/guidelines.html https://pubs.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html | {PATH_MAX} | Maximum number of bytes in a pathname, including the terminating null character. | Minimum Acceptable Value: {_POSIX_PATH_MAX} | [XSI] Minimum Acceptable Value: {_XOPEN_PATH_MAX} At this point I'll probably drop my PATH_MAX patch from Debian package. May be toybox upstream can rely on _POSIX_PATH_MAX/_XOPEN_PATH_MAX mentioned on opengroup docs in case PATH_MAX is not defined. I didn't mentioned it as an 'issue' on github because it's only a Hurd-related problem. Thanks for your time! PS: I've seen your other email. I need to look deeper on it before replying. -- Antoni Villalonga https://friki.cat/ _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
