If I add
unix_ffi=Truetolib/micropython-lib/python-stdlib/os-path/manifest.py, then it is able to compile the frozen content.
I don't think that's the correct solution because it will most likely break targets (eg bare-metal ports) that can't use the unix-ffi code.
One solution would be to make it ignore subsequent packages if one is already require'd by the same name. So in this case the unix_ffi os will take precedence because it's require'd first.
Indeed (as this also applies to 15.0-RELEASE). That's also something that needs to be changed in MicroPython's own test suite, along with other minor things like moving part of the default sys.path from
/usr/lib/micropythonto/usr/local/lib/micropython, and recognising FreeBSD as its own thing rather than classify that as Linux.I believe some of these changes are already part of the patches in the ports tree, but last time I checked they still package a relatively old version. It won't hurt to have them in the source tree themselves.
This is fixed in
_libcbut still needs to be fixed inffilib.Right! I can fix that right now but then I'd have to fix it again if https://github.com/micropython/micropython/pull/18979 gets merged. In ffilib there's a check for
sys.platformand that PR will make it returnfreebsd, invalidating any small-scale change I'd make. I can also make it look for eitherlinuxorfreebsdfor the lookup to occur but then it'll take up bytes for nothing if that PR won't make the cut.I don't mind submitting multiple PRs over time, but maybe you may want to schedule the changes differently.
Yes, I see that now.
We are on the cusp of a release so can't make big changes. I think all this can be postponed until after the release.