cosmopolitan/third_party/libcxx
Justine Tunney cf93ecbbb2 Prove that Makefile is fully defined
The whole repository is now buildable with GNU Make Landlock sandboxing.
This proves that no Makefile targets exist which touch files other than
their declared prerequisites. In order to do this, we had to:

  1. Stop code morphing GCC output in package.com and instead run a
     newly introduced FIXUPOBJ.COM command after GCC invocations.

  2. Disable all the crumby Python unit tests that do things like create
     files in the current directory, or rename() files between folders.
     This ended up being a lot of tests, but most of them are still ok.

  3. Introduce an .UNSANDBOXED variable to GNU Make to disable Landlock.
     We currently only do this for things like `make tags`.

  4. This change deletes some GNU Make code that was preventing the
     execve() optimization from working. This means it should no longer
     be necessary in most cases for command invocations to be indirected
     through the cocmd interpreter.

  5. Missing dependencies had to be declared in certain places, in cases
     where they couldn't be automatically determined by MKDEPS.COM

  6. The libcxx header situation has finally been tamed. One of the
     things that makes this difficult is MKDEPS.COM only wants to
     consider the first 64kb of a file, in order to go fast. But libcxx
     likes to have #include lines buried after huge documentation.

  7. An .UNVEIL variable has been introduced to GNU Make just in case
     we ever wish to explicitly specify additional things that need to
     be whitelisted which aren't strictly prerequisites. This works in
     a manner similar to the recently introduced .EXTRA_PREREQS feature.

There's now a new build/bootstrap/make.com prebuilt binary available. It
should no longer be possible to write invalid Makefile code.
2022-08-06 04:05:08 -07:00
..
experimental Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
include Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
.clang-format Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__bit_reference Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__bsd_locale_fallbacks.h Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__config Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
__debug Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
__errc Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
__functional_base Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__functional_base_03 Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__hash_table Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__locale Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__mutex_base Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
__node_handle Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__nullptr Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__split_buffer Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__sso_allocator Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
__std_stream Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
__string Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
__threading_support Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
__tree Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__tuple Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
__undef_macros Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
algorithm Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
algorithm.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
array Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
atomic Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
atomic_support.hh Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
bit Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
bitset Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
cassert Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
cctype Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
cerrno Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
charconv Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
charconv.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
chrono Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
chrono.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
climits Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
clocale Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
cmath Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
codecvt Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
condition_variable Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
condition_variable.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
condition_variable_destructor.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
config_elast.h Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
CREDITS.TXT Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
cstdarg Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
cstddef Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
cstdint Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
cstdio Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
cstdlib Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
cstring Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
ctime Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
ctype.h Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
cwchar Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
cwctype Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
deque Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
errno.h Fix some issues and do some code cleanup 2022-05-23 10:15:53 -07:00
exception Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
exception.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
exception_fallback.hh Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
exception_pointer_unimplemented.hh Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
functional Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
functional.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
hash.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
initializer_list Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
ios Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
ios.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
iosfwd Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
iostream Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
iostream.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
istream Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
iterator Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
libcxx.mk Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
LICENSE.TXT Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
limits Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
limits.h Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
list Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
locale Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
locale.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
locale.h Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
map Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
math.h Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
memory Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
memory.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
mutex Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
mutex.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
new Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
new.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
new_handler_fallback.hh Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
numeric Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
optional Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
optional.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
ostream Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
queue Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
random Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
random.cc Add more missing libc/libc++ functions 2022-07-22 07:20:21 -07:00
ratio Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
README.cosmo Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
refstring.hh Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
set Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
sstream Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
stack Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
stdexcept Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
stdexcept.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
stdexcept_default.hh Support thread local storage 2022-05-16 13:20:08 -07:00
stdio.h Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
stdlib.h Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
streambuf Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
string Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
string.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
string.h Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
string_view Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
system_error Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
system_error.cc Support thread local storage 2022-05-16 13:20:08 -07:00
thread Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
tuple Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
type_traits Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
typeinfo Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
unordered_map Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
unordered_set Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
utility Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
variant Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
vector Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
vector.cc Import C++ Standard Template Library 2022-03-22 06:41:54 -07:00
version Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
wchar.h Prove that Makefile is fully defined 2022-08-06 04:05:08 -07:00
wctype.h Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00

Upstream origin

    git@github.com:llvm-mirror/libcxx.git
    commit 78d6a7767ed57b50122a161b91f59f19c9bd0d19
    Author: Zoe Carver <z.zoelec2@gmail.com>
    Date:   Tue Oct 22 15:16:49 2019 +0000