The libgc source is distributed here as an amalgamation (https://sqlite.org/amalgamation.html). This means that, rather than mirroring the entire bdwgc repo here, the amalgamate tool was used to bundle all C files and local includes together into a single C file, which is much easier to handle. This helps keep the V source distribution small, can reduce compile times by 3%-15%, and can help C compilers generate more optimized code. For generating the libgc amalgamation, the following commands were used: git clone https://github.com/ivmai/bdwgc.git cd bdwgc ./autogen.sh ./configure --enable-threads=pthreads \ --enable-static \ --enable-shared=no \ --enable-thread-local-alloc=no \ --enable-parallel-mark \ --enable-single-obj-compilation \ --enable-gc-debug ../../../cmd/tools/amalgamate -o ../gc.c \ -b atomic_ops.h \ -b gc/gc.h \ -b gc/gc_backptr.h \ -b gc/gc_disclaim.h \ -b gc/gc_gcj.h \ -b gc/gc_inline.h \ -b gc/gc_mark.h \ -b gc/gc_pthread_redirects.h \ -b gc/gc_tiny_fl.h \ -b gc/gc_typed.h \ -b gc/javaxfc.h \ -b il/PCR_IL.h \ -b mm/PCR_MM.h \ -b psp2-support.h \ -b stubinfo.h \ -b th/PCR_ThCtl.h \ -b vd/PCR_VD.h \ -s include \ -s include/private \ extra/gc.c The updated header files are then copied into the include/gc directory. We can delete include/gc/gc_cpp.h since this header is not needed by V. And, we can remove the git repo for bdwgc. cp include/gc/*.h ../include/gc cd .. rm include/gc/gc_cpp.h rm -rf bdwgc