cosmopolitan/tool/build
Justine Tunney ae5d06dc53 Unbloat build config
- 10.5% reduction of o//depend dependency graph
- 8.8% reduction in latency of make command
- Fix issue with temporary file cleanup

There's a new -w option in compile.com that turns off the recent
Landlock output path workaround for "good commands" which do not
unlink() the output file like GNU tooling does.

Our new GNU Make unveil sandboxing appears to have zero overhead
in the grand scheme of things. Full builds are pretty fast since
the only thing that's actually slowed us down is probably libcxx

    make -j16 MODE=rel
    RL: took 85,732,063µs wall time
    RL: ballooned to 323,612kb in size
    RL: needed 828,560,521µs cpu (11% kernel)
    RL: caused 39,080,670 page faults (99% memcpy)
    RL: 350,073 context switches (72% consensual)
    RL: performed 0 reads and 11,494,960 write i/o operations

pledge() and unveil() no longer consider ENOSYS to be an error.
These functions have also been added to Python's cosmo module.

This change also removes some WIN32 APIs and System Five magnums
which we're not using and it's doubtful anyone else would be too
2022-08-10 04:43:09 -07:00
..
dso Use LD_PRELOAD to inject pledge() in glibc progs 2022-08-08 21:27:02 -07:00
emubin Improve synchronization 2022-04-15 15:31:55 -07:00
emucrt Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
lib Unbloat build config 2022-08-10 04:43:09 -07:00
ar.c Work around Landlock output inode in compile.com 2022-08-09 07:55:44 -07:00
assimilate.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
bigmul.c Add SNI support to redbean and improve SSL perf 2021-07-23 13:56:13 -07:00
blinkenlights.c Improve redbean 2022-04-25 08:30:14 -07:00
build.mk Unbloat build config 2022-08-10 04:43:09 -07:00
calculator.c Strengthen the pledge() polyfill 2022-06-27 13:02:17 -07:00
calculator.ctest Add cpu / mem / fsz limits to build system 2021-08-13 23:40:53 -07:00
calculator.inc Add SSL to redbean 2021-06-24 13:20:50 -07:00
chmod.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
cocmd.c Add pipelining to cocmd 2022-07-15 20:47:20 -07:00
compile.c Unbloat build config 2022-08-10 04:43:09 -07:00
cp.c Work around Landlock output inode in compile.com 2022-08-09 07:55:44 -07:00
dd.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
deltaify.c Reduce makefile dependencies by 10% 2022-06-08 20:01:28 -07:00
dis.c Restart CI for New Technology and UBSAN hunting 2022-03-21 04:32:57 -07:00
dropcache.c Change license 2020-12-27 17:18:44 -08:00
echo.c Make build hermetic without shell scripts 2022-05-25 13:55:57 -07:00
fixupobj.c Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
gzip.c Make build hermetic without shell scripts 2022-05-25 13:55:57 -07:00
helpop.c WIP: Correct all typos (#498) 2022-07-20 14:01:15 -07:00
lz4toasm.c Restart CI for New Technology and UBSAN hunting 2022-03-21 04:32:57 -07:00
mkdeps.c Work around Landlock output inode in compile.com 2022-08-09 07:55:44 -07:00
mkdir.c Make build hermetic without shell scripts 2022-05-25 13:55:57 -07:00
mv.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
ocat.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
package.c Work around Landlock output inode in compile.com 2022-08-09 07:55:44 -07:00
pledge.c Unbloat build config 2022-08-10 04:43:09 -07:00
printf.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
pstrace.c Reduce makefile dependencies by 10% 2022-06-08 20:01:28 -07:00
pwd.c Make build hermetic without shell scripts 2022-05-25 13:55:57 -07:00
refactor.c Remove garbage collector macro from header (#114) 2021-03-07 20:23:29 -08:00
rle.c Make improvements 2022-04-28 09:57:07 -07:00
rm.c Make build hermetic without shell scripts 2022-05-25 13:55:57 -07:00
rollup.c Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
runit.c WIP: Correct all typos (#498) 2022-07-20 14:01:15 -07:00
runit.h Fix bugs and add security features to redbean 2022-04-18 00:01:26 -07:00
runitd.c Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
strace.c Change type of errnos to errno_t 2022-08-05 02:13:10 -07:00
summy.c Unbloat build config 2022-08-10 04:43:09 -07:00
symtab.c Add support for symbol table in .com files 2022-03-23 06:34:46 -07:00
tinyemu.c Fix our remarkable 184kb x86_64 emulator 2021-01-27 20:02:23 -08:00
touch.c Make build hermetic without shell scripts 2022-05-25 13:55:57 -07:00
unbundle.c Reduce makefile dependencies by 10% 2022-06-08 20:01:28 -07:00
unveil.c Unbloat build config 2022-08-10 04:43:09 -07:00
x86combos.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
xlat.c Unbloat build config 2022-08-10 04:43:09 -07:00
zipobj.c Reduce makefile dependencies by 10% 2022-06-08 20:01:28 -07:00