[Toybox] macOS realpath test failures

Rob Landley rob at landley.net
Tue Dec 13 20:03:49 PST 2022


Thanks to Zach for getting me sh access to a mac, mac is passing its tests again.

It had two problems:

A) The mac test for "does chmod +s work as a normal user" in chmod.test wasn't
converted to the new format properly (5f7faac45363 missed one and I didn't
notice because it only mattered on mac), which is weird because you'd think mac
would hit that failure FIRST on github and android? (Weird. I just did homebrew,
gmake macos_defconfig, gmake tests...)

II) Mac hasn't got O_PATH and portability.h was doing an #ifdef check and
defining it, because it was only added to the kernel in 2011 (commit
1abf0c718f15a) and the 7 year horizon for that was still relevant pre-pandemic.

Mac still hasn't got O_PATH but the numeric value Linux uses was already
allocated in mac for O_SYMLINK "allow open of a symlink" (which Linux hasn't
got), hence the weird behavior.

Not a kernel bug, a portability.h bug.

Rob

P.S. Ironically, pulling the second mac fix into my main work tree hit a
conflict because I was doing a pass tracking down the expiration dates of
symbols in there, recording the kernel commit that added them. Which rolled to a
stop because AT_FDCWD was added in 2006 and RLIMIT_RTTIME wsa 2008 and they've
got to still be there because because a specific build environment needed them,
but which one? Having updated Mac, BSD, and NDK build environments to regression
test against hopefully lets me resume that cleanup...


More information about the Toybox mailing list