- Invoke Python scripts with `python3` if `python` is not available.
Despite SciresM preferring Python 2, the scripts used in the build all
worked in Python 3 already, so this is just a Makefile change.
- Export `MAKE` to work around a GNU bug.
See the comment for details.
- `rmdir --ignore-fail-on-non-empty` -> `rmdir 2>/dev/null`
macOS `rmdir` doesn't support `--ignore-fail-on-non-empty`.
This is a slight downgrade in functionality, because now we ignore all
errors from `rmdir` rather than just 'Directory not empty'. I could
have avoided this with a more complicated fix, but the benefit strikes
me as not worth the complexity. Let me know if you disagree.
- Append `$(DEVKITPRO)/tools/bin/` to `$PATH` when invoking
`build_romfs`.
This avoids the need to add devkitPro directories to `$PATH` when
building Atmosphere.
If you already have `build_romfs` in your PATH, then that will still
take precedence. (This seemed like the nicer option, though I don't
have strong opinions.)
haze was including both `<switch.h>` and `vapours/types.hpp` which both
define `R_SUCCEEDED` and `R_FAILED`, producing compiler warnings.
The intent is that `vapours/types.hpp` only gets included when targeting
not-Switch and/or not-EL0. But the check didn't account for
Troposphère. Fix that.
Starting in 20.0.0, the browser needs more applet memory to function, so we can't steal as much any more.
Thus, we now steal 14 MB on 20.0.0+ instead of 40MB.
However, since this reduces memory available for custom system modules, we are adjusting to compensate.
ams.mitm's heap size has been reduced from 32MB to 12MB (recovering 20MB).
In addition, fs.mitm now uses a new mechanism for stealing memory from the applet pool while romfs is being built.
On net, we are compromising:
* Custom sysmodules lose memory available to them.
On 19.0.0/AMS 1.8.0, there was 30 MB available for custom sysmodules.
Stealing 14 MB instead of 40 MB, we lose 26 MB of that. Reducing ams.mitm's usage will gain us back 20.
Nintendo also appears to...use 4 extra MB, in 20.0.0, from my test homebrew.
So on 20.0.0/AMS 1.9.0, there should be 20 MB available for custom sysmodules.
On the bright side, on <20.0.0/AMS 1.9.0, I guess there will be 50 MB available for custom sysmodules now?
* totk mods will lose the ability to...put every file in the romfs on sd card. There will be some unknown maximum filecount for totk mods.
On the bright side, implementing the transient memory stealing should improve compatibility for some mods which strictly add files?
Also, fix a few very embarassing mistakes in kernel ldr:
* We have been mapping the page table region RWX for a few years now, accidentally.
* My attempt at making initial page tables not use bit 58 was broken in multiple ways.