The hard tier is software that assumes a full desktop Linux box. GPU loaders, shared memory, process watchers, JIT engines, and dependency trees so big nobody on the upstream team has read all of them.
I maintain a good chunk of that tier for Termux. Here's what the patches look like, and what each one is really saying.
Bun: nine patches, three of them syscalls
Bun has the longest patch stack I deal with regularly. The filenames tell most of the story:
Patch What it fixes
0001 default to symlink install backend bun install uses symlinks by default
0002 remove Werror and unsupported flags Build stops failing on warnings and flags this toolchain lacks
0003 disable close_range Skip a syscall Android may refuse
0004 set termux tmpdir Temp files go to $PREFIX/tmp instead of /tmp
0005 fix bash completion empty regex Completion generation no longer chokes
0006 fix symlink bin chmod chmod on symlinked binaries stops failing
0007 disable pidfd_open Another filtered syscall, another fallback
0008 disable…