1DOLLY 72TOOLCHAIN system-build3REQUIRES HOST runtime@04REQUIRES HOST http@056# This is the first step. It has no requirements: its exact compiler commands7# and C headers are the externally supplied bootstrap seed. How those headers8# eventually map to the lower-level machine contract is deliberately open.9SOURCE /v0.1.4/include/dolly/toolchain.h 6f9da3258e970e356c31034e1f109a04ac8bd5ab57dc82c19aebf293289fb415 /usr/include/dolly/toolchain.h10SOURCE /v0.1.4/include/dolly/runtime.h   1db3b267703af948051a171b06029560c3660ddbdc9f33f0c15f0b770bac7d3f /usr/include/dolly/runtime.h11SOURCE /v0.1.4/include/dolly/process.h   6919b5de21efa877d73ea8d004d88b66ec00b5a883bdbeece12e2ed14dc370b5 /usr/include/dolly/process.h12SOURCE /v0.1.4/host/http/http.h      d09f57cda4a6cde89106653f12366ac95554c21d37d05a69c15764d4254b70a5 /usr/include/dolly/http.h13SOURCE /v0.1.4/host/http/http-abi.h 2f4e1e5c7145730babc91a0ff0a38db8b5e100ae1fab0b722b38ecbd53ad64a0 /usr/include/dolly/http-abi.h14SOURCE /v0.1.4/host/display/display.h   31054ebb6af133ea0a5de7e01730475a536a362261b1c24569a67d0749969633 /usr/include/dolly/display.h15SOURCE /v0.1.4/host/display/display-abi.h 89e4ac84fb4b807ed1aa5e47c28eb402746a1596d7949fa373ea45878782c05f /usr/include/dolly/display-abi.h16SOURCE /v0.1.4/host/input/input.h   c380e2c168061ebd22785cbbcd6f7c7e05be2df187115ae1054c24cf39042a41 /usr/include/dolly/input.h17SOURCE /v0.1.4/host/input/input-abi.h f84f9ab4008108895a3e853fbb41b2194cd0cd41265cc9e14eae1c3b5a75220b /usr/include/dolly/input-abi.h18SOURCE /v0.1.4/host/download/download.h  666bca4fba5da7bf1e998c6486f56dce24cdbc82f1126f9be59067eb03b03bfa /usr/include/dolly/download.h19SOURCE /v0.1.4/host/download/download-abi.h 45cfbbc85fd2ea3846db581cc3129ef1ae1304a3f9ede06d5dae3b544bd6c0e0 /usr/include/dolly/download-abi.h2021SOURCE /v0.1.4/include/dolly/host.h 9737f9b15bd65f5732e16bd942fe593132c7c886c3076dfda89a529a23fee08a /usr/include/dolly/host.h22SOURCE /v0.1.4/include/dolly/host-abi.h 3f2d26426bb088d61a0cc18b6c464697e98c83d8d34ffaf1d063768e619eb766 /usr/include/dolly/host-abi.h23SOURCE /v0.1.4/host/upload/upload.h 8d5b888175631a2f6dba010942f73e53c8514559de13ea336af804aa75f15eff /usr/include/dolly/upload.h24SOURCE /v0.1.4/host/upload/upload-abi.h 006056e6891a4d4399f521bc3b6a52362044dc146efb1bca46184c3cd9afb3e6 /usr/include/dolly/upload-abi.h2526SOURCE /v0.1.4/host/threads/threads.h ec223fbc34ff65f173f4b15e338cb25bf34d8bf01b699418f4598d7fc4626394 /usr/include/dolly/threads.h27SOURCE /v0.1.4/host/threads/threads-abi.h 894528f5f392b8f95e4617035ac799b9ff4d520a246ec1bd89b6d04257c644c1 /usr/include/dolly/threads-abi.h28SOURCE /v0.1.4/host/dso/dso.h 8f58b257826b92a7f903d2a33484d6bc49bcc035dac5de3af288bc906728a67b /usr/include/dolly/dso.h29SOURCE /v0.1.4/host/dso/dso-abi.h 7b2243afa5cf82109b2768264686cb57e4a611a577a74793056b4f7cfc2e68f4 /usr/include/dolly/dso-abi.h3031EXPORTS HEADER libc      /usr/include32EXPORTS HEADER toolchain /usr/include/dolly/toolchain.h33EXPORTS HEADER runtime   /usr/include/dolly/runtime.h34EXPORTS HEADER process   /usr/include/dolly/process.h35EXPORTS HEADER http      /usr/include/dolly/http.h36EXPORTS HEADER http-abi /usr/include/dolly/http-abi.h37EXPORTS HEADER display   /usr/include/dolly/display.h38EXPORTS HEADER display-abi /usr/include/dolly/display-abi.h39EXPORTS HEADER input     /usr/include/dolly/input.h40EXPORTS HEADER input-abi /usr/include/dolly/input-abi.h41EXPORTS HEADER download  /usr/include/dolly/download.h42EXPORTS HEADER download-abi /usr/include/dolly/download-abi.h4344EXPORTS HEADER host /usr/include/dolly/host.h45EXPORTS HEADER host-abi /usr/include/dolly/host-abi.h46EXPORTS HEADER upload /usr/include/dolly/upload.h47EXPORTS HEADER upload-abi /usr/include/dolly/upload-abi.h48EXPORTS HEADER threads /usr/include/dolly/threads.h49EXPORTS HEADER threads-abi /usr/include/dolly/threads-abi.h50EXPORTS HEADER dso /usr/include/dolly/dso.h51EXPORTS HEADER dso-abi /usr/include/dolly/dso-abi.h5253EXPORTS LIB compiler-rt /usr/lib/libclang_rt.builtins.a5455# These are the complete externally seeded compiler dependencies, not ambient56# additions to every boot. Images retain them by re-exporting these objects.57EXPORTS FOLDER process-sdk       /usr/lib/dolly/process58EXPORTS FOLDER clang-headers     /usr/lib/clang/24/include59EXPORTS FILE   compiler          /usr/libexec/dolly/process-bin/compiler60EXPORTS FILE   kernel-plugin-abi /usr/lib/dolly/dolly-kernel-plugin-0.wasm6162# Every program links the process libc: Emscripten's musl.63SOURCE /v0.1.4/dist/static/default/licenses/musl b870108ec5e7790e9f9919064f1b9421d62d5f9b0e6c230c6adf7ea2da62e97b /usr/share/licenses/musl/COPYRIGHT64SOURCE /v0.1.4/dist/static/default/licenses/emscripten 620a78084fc7ca97c0b5dea9abf891f3ffcadfdbf305276f099c9c4e12fc1d86 /usr/share/licenses/emscripten/LICENSE65FILE /usr/share/licenses/musl/COPYRIGHT66FILE /usr/share/licenses/emscripten/LICENSE6768# cc, c++, ld and ar forward to the seed compiler. Only that compiler exists at69# this point, so RUN starts it for them; every later recipe step uses SLOP.70SOURCE /v0.1.4/dist/static/default/commands/cc.c b8e86a460434a6b60538229120365909697393d2c11bc3f18357be2c8d13c7f5 /tmp/process-tools/cc.c71SOURCE /v0.1.4/dist/static/default/commands/cxx.c a19b6b99a9a4f6c3473bb673c4e86c4857563839586e6e7c939c397585b281f3 /tmp/process-tools/cxx.c72SOURCE /v0.1.4/dist/static/default/commands/ld.c d12309353aeb2a80e3766e87c3e9936ac9fb434114e36287a1acbf3339bf104b /tmp/process-tools/ld.c73SOURCE /v0.1.4/dist/static/default/commands/ar.c f3007ddb171959a587b62d840253144198749acd8dbe0212b2cbd73a55dd83bd /tmp/process-tools/ar.c74RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/cc.c -o /bin/cc75RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/cxx.c -o /bin/c++76RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/ld.c -o /bin/ld77RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/ar.c -o /bin/ar7879EXPORTS ENV CC    cc80EXPORTS ENV AR    ar81EXPORTS ENV PATH  /bin:/usr/bin8283# These programs are linked against the seeded process adapter, so their84# complete input identity is the image build ID rather than this recipe85# alone. They are still validated as dolly-process-0 executables when loaded.86# /bin/dollyfile is the engine running this recipe; the bootstrap compiles it.87EXPORTS TOOL cc88EXPORTS TOOL c++89EXPORTS TOOL ld90EXPORTS TOOL ar91EXPORTS TOOL dollyfile92# Slop runs every SLOP step, so it is built before any shell exists: RUN93# starts the seed compiler alone.94REQUIRES HEADER libc95REQUIRES HEADER runtime9697SOURCE /v0.1.4/dist/static/default/slop.c 44ed93bd97c101396895c9351c42f572d17d33b4c843a17aa8074c34c2889bc4 /tmp/slop/slop.c98RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/slop/slop.c -o /bin/slop99100EXPORTS TOOL slop101EXPORTS ENV SHELL /bin/slop102REQUIRES TOOL   cc103104# Dolly's own small commands, from src/commands. Each TOOL export names the105# compiled result.106SOURCE /v0.1.4/dist/static/default/commands/mkdir.c 318f11bbf81beea92df1e4a2cb8dc02787c5eea4cffe62a8be9893503a8e572e /tmp/core-tools/mkdir.c107SOURCE /v0.1.4/dist/static/default/commands/rm.c 1213c22dc41e247f5fa072aad0431cdc54193dcf9091c8c749ea7880bef30af2 /tmp/core-tools/rm.c108SOURCE /v0.1.4/dist/static/default/commands/foreground.c e926c3c87764e44064744fc1d3cba008c46666ed7a06d351824ce67792bcdd76 /tmp/core-tools/foreground.c109SOURCE /v0.1.4/dist/static/default/commands/help.c 03ee0e2d8de33d99506f9a7c14018d2bd6e8e8146f9372f19c4974db1afee958 /tmp/core-tools/help.c110SOURCE /v0.1.4/dist/static/default/commands/man.c 03df8950d27ccd413c9da9cac1641d582f720d483e58e1e6f8e4b90e61e15fa0 /tmp/core-tools/man.c111SOURCE /v0.1.4/dist/static/default/commands/pwd.c 87886a74d8626d0bdbc2b364fe6ed8882522512d9f595709152dda298ef5c03f /tmp/core-tools/pwd.c112SOURCE /v0.1.4/dist/static/default/commands/cd.c 36d4c7708b332be6df90105bbc61cf8eb70556e3ed0f9f24756016eebec3d622 /tmp/core-tools/cd.c113SOURCE /v0.1.4/dist/static/default/commands/cat.c 82bffbefba15dcbd3aacb04135f3236be176a19704678aacb168ef02b91e04d4 /tmp/core-tools/cat.c114SOURCE /v0.1.4/dist/static/default/commands/echo.c afa079a258f25f9a7bcfce7191647e4bae8b0b0518476e903538ac88b3d9ad19 /tmp/core-tools/echo.c115SOURCE /v0.1.4/dist/static/default/commands/touch.c d80d0b12c21d4da8a238ca736b690452b94455a5e3e3bced7fc9ba20e44be286 /tmp/core-tools/touch.c116SOURCE /v0.1.4/dist/static/default/commands/clear.c f2e6915b3fe34393087ec7d04e61d090c0d62e551b86b36e8c3ff6bfff72598d /tmp/core-tools/clear.c117SOURCE /v0.1.4/dist/static/default/commands/ls.c 7c510abd3849e7d7966f5fe59378a096459b5591749ce61ae488b7436a48326e /tmp/core-tools/ls.c118SOURCE /v0.1.4/dist/static/default/commands/stat.c 1d39b289d8b2b4680e5c8ae8ec63bd183ba62864f5fd9bc0f180d1d97a64ef21 /tmp/core-tools/stat.c119SOURCE /v0.1.4/dist/static/default/commands/file.c ce908d435b9b29f79085e3fc8ddc36e52a9012e2a5e5da3c707b236d3b85f85e /tmp/core-tools/file.c120SOURCE /v0.1.4/dist/static/default/commands/test.c 738c318548c39b9e8e6b2108707c1f3a030fef9fd4ba3d4e6b84fbbb071e1866 /tmp/core-tools/test.c121SOURCE /v0.1.4/dist/static/default/commands/bracket.c 5dadee574cc128d583fe337e68b271cebbb3220dcd7e307fac08d4b5e9d73e4c /tmp/core-tools/bracket.c122SOURCE /v0.1.4/dist/static/default/commands/mv.c 326b21d8de8cd70652ec1ae1d42356095ee792c2608dfe362bba7ec05eacc9c3 /tmp/core-tools/mv.c123SOURCE /v0.1.4/dist/static/default/commands/cp.c 69ba86c9338bd97df04f06ccf84b9acd4e163f26d820efa066b6883152784ff1 /tmp/core-tools/cp.c124SLOP cc \125  -O2 \126  /tmp/core-tools/foreground.c \127  -o /bin/foreground128SLOP cc \129  -O2 \130  /tmp/core-tools/help.c \131  -o /bin/help132SLOP cc \133  -O2 \134  /tmp/core-tools/man.c \135  -o /bin/man136SLOP cc \137  -O2 \138  /tmp/core-tools/pwd.c \139  -o /bin/pwd140SLOP cc \141  -O2 \142  /tmp/core-tools/cd.c \143  -o /bin/cd144SLOP cc \145  -O2 \146  /tmp/core-tools/cat.c \147  -o /bin/cat148SLOP cc \149  -O2 \150  /tmp/core-tools/echo.c \151  -o /bin/echo152SLOP cc \153  -O2 \154  /tmp/core-tools/touch.c \155  -o /bin/touch156SLOP cc \157  -O2 \158  /tmp/core-tools/clear.c \159  -o /bin/clear160SLOP cc \161  -O2 \162  /tmp/core-tools/ls.c \163  -o /bin/ls164SLOP cc \165  -O2 \166  /tmp/core-tools/stat.c \167  -o /bin/stat168SLOP cc \169  -O2 \170  /tmp/core-tools/file.c \171  -o /bin/file172SLOP cc \173  -O2 \174  /tmp/core-tools/test.c \175  -o /bin/test176SLOP cc \177  -O2 \178  -I /tmp/core-tools \179  /tmp/core-tools/bracket.c \180  -o /bin/[181SLOP cc \182  -O2 \183  /tmp/core-tools/mv.c \184  -o /bin/mv185SLOP cc \186  -O2 \187  /tmp/core-tools/cp.c \188  -o /bin/cp189SLOP cc \190  -O2 \191  /tmp/core-tools/mkdir.c \192  -o /bin/mkdir193SLOP cc \194  -O2 \195  /tmp/core-tools/rm.c \196  -o /bin/rm197EXPORTS TOOL mkdir198EXPORTS TOOL rm199EXPORTS TOOL foreground200EXPORTS TOOL help201EXPORTS TOOL man202EXPORTS TOOL pwd203EXPORTS TOOL cd204EXPORTS TOOL cat205EXPORTS TOOL echo206EXPORTS TOOL touch207EXPORTS TOOL clear208EXPORTS TOOL ls209EXPORTS TOOL stat210EXPORTS TOOL file211EXPORTS TOOL test212EXPORTS TOOL [213EXPORTS TOOL mv214EXPORTS TOOL cp215216# A page is a file under /usr/share/man. One of Dolly's own commands has a217# single text: the page is what NAME --help prints, captured when it is built.218SLOP mkdir \219  -p \220  /usr/share/man/cat1 \221  /usr/share/man/man1222SLOP for name in ar c++ cat cc cd clear cp dollyfile echo file foreground help ld ls man mkdir mv pwd rm slop stat touch; do \223  "/bin/$name" --help > "/usr/share/man/cat1/$name.1"; \224  done225SLOP help >> /usr/share/man/cat1/slop.1226FILE /usr/share/man/cat1/test.1227    usage: test EXPRESSION228           [ EXPRESSION ]229    Exit 0 when EXPRESSION is true, 1 when it is false or missing, 2 when it is malformed.230      -e FILE          FILE exists (-r and -w are the same: there are no permission bits)231      -f FILE          FILE is a regular file232      -d FILE          FILE is a directory233      -x FILE          FILE is a regular file or a directory234      -h FILE, -L FILE FILE is a symbolic link235      -s FILE          FILE is not empty236      -n STRING        STRING is not empty (so is a lone STRING)237      -z STRING        STRING is empty238      A = B, A != B    the strings are equal (== is the same), differ239      M -eq N          the integers are equal; also -ne -lt -le -gt -ge240      F -nt G, F -ot G F was modified after, before G (a missing file is older)241      F -ef G          F and G are the same file242      ! E, E -a E, E -o E, ( E )   not, and, or, grouping243    example: test -d /tmp && [ "$HOME" != / ]244SLOP cp /usr/share/man/cat1/test.1 '/usr/share/man/cat1/[.1'245246SLOP rm \247  -rf \248  /tmp/core-tools249REQUIRES TOOL   rm250251# Dolly's deliberately small ustar extractor.252SOURCE /v0.1.4/dist/static/default/commands/tar.c 18adec6edc7ae34a305f31890f671cb69ae6ec3979df4d34e2d759295a410890 /tmp/bootstrap/tar.c253SLOP cc \254  /tmp/bootstrap/tar.c \255  -o /bin/tar256257EXPORTS TOOL tar258259SLOP tar --help > /usr/share/man/cat1/tar.1260261SLOP rm \262  -rf \263  /tmp/bootstrap264# The module owns Make's build-time command vocabulary. `cp` is required here,265# rather than by consumers which merely invoke Make, because real Make recipes266# rely on it. The Dollyfile checker documents this build contract; it is not a267# runtime sandbox for Make or Slop.268REQUIRES TOOL   cp269REQUIRES TOOL   mkdir270REQUIRES TOOL   tar271272SOURCE /v0.1.4/dist/static/default/make-4.4.1.tar                     5dce03b47a90e26891e789b3361481c65765e12bd8dc79ec0cf949336ef94616 /tmp/make-4.4.1.tar273SOURCE /v0.1.4/dist/static/default/runtimes/make-amalgamation-dolly.c c37c85dd20c843b9bface7e12bd190f8d943b18c0b2b5e0341cfdc2cba11b4fd /tmp/make-4.4.1/make-amalgamation-dolly.c274275SLOP tar \276  -xf /tmp/make-4.4.1.tar \277  -C /278SLOP mkdir \279  -p \280  /usr/bin281SLOP cc \282  -c \283  -O1 \284  -std=gnu11 \285  -DHAVE_CONFIG_H \286  -I /usr/src/make \287  -I /usr/src/make/src \288  -I /usr/src/make/lib \289  '-DLIBDIR="/usr/lib"' \290  '-DLOCALEDIR="/usr/share/locale"' \291  -DDOLLY_MAKE_PART=1 \292  /tmp/make-4.4.1/make-amalgamation-dolly.c \293  -o /tmp/make-4.4.1/part-1.o294SLOP cc \295  -c \296  -O1 \297  -std=gnu11 \298  -DHAVE_CONFIG_H \299  -I /usr/src/make \300  -I /usr/src/make/src \301  -I /usr/src/make/lib \302  '-DLIBDIR="/usr/lib"' \303  '-DLOCALEDIR="/usr/share/locale"' \304  -DDOLLY_MAKE_PART=2 \305  /tmp/make-4.4.1/make-amalgamation-dolly.c \306  -o /tmp/make-4.4.1/part-2.o307SLOP cc \308  -c \309  -O1 \310  -std=gnu11 \311  -DHAVE_CONFIG_H \312  -I /usr/src/make \313  -I /usr/src/make/src \314  -I /usr/src/make/lib \315  '-DLIBDIR="/usr/lib"' \316  '-DLOCALEDIR="/usr/share/locale"' \317  -DDOLLY_MAKE_PART=3 \318  /tmp/make-4.4.1/make-amalgamation-dolly.c \319  -o /tmp/make-4.4.1/part-3.o320SLOP cc \321  -c \322  -O1 \323  -std=gnu11 \324  -DHAVE_CONFIG_H \325  -I /usr/src/make \326  -I /usr/src/make/src \327  -I /usr/src/make/lib \328  '-DLIBDIR="/usr/lib"' \329  '-DLOCALEDIR="/usr/share/locale"' \330  -DDOLLY_MAKE_PART=4 \331  /tmp/make-4.4.1/make-amalgamation-dolly.c \332  -o /tmp/make-4.4.1/part-4.o333SLOP cc \334  -c \335  -O1 \336  -std=gnu11 \337  -DHAVE_CONFIG_H \338  -I /usr/src/make \339  -I /usr/src/make/src \340  -I /usr/src/make/lib \341  '-DLIBDIR="/usr/lib"' \342  '-DLOCALEDIR="/usr/share/locale"' \343  -DDOLLY_MAKE_PART=5 \344  /tmp/make-4.4.1/make-amalgamation-dolly.c \345  -o /tmp/make-4.4.1/part-5.o346SLOP cc \347  -c \348  -O1 \349  -std=gnu11 \350  -DHAVE_CONFIG_H \351  -I /usr/src/make \352  -I /usr/src/make/src \353  -I /usr/src/make/lib \354  '-DLIBDIR="/usr/lib"' \355  '-DLOCALEDIR="/usr/share/locale"' \356  -DDOLLY_MAKE_PART=6 \357  /tmp/make-4.4.1/make-amalgamation-dolly.c \358  -o /tmp/make-4.4.1/part-6.o359SLOP cc \360  -c \361  -O1 \362  -std=gnu11 \363  -DHAVE_CONFIG_H \364  -I /usr/src/make \365  -I /usr/src/make/src \366  -I /usr/src/make/lib \367  '-DLIBDIR="/usr/lib"' \368  '-DLOCALEDIR="/usr/share/locale"' \369  -DDOLLY_MAKE_PART=7 \370  /tmp/make-4.4.1/make-amalgamation-dolly.c \371  -o /tmp/make-4.4.1/part-7.o372SLOP cc \373  /tmp/make-4.4.1/part-1.o \374  /tmp/make-4.4.1/part-2.o \375  /tmp/make-4.4.1/part-3.o \376  /tmp/make-4.4.1/part-4.o \377  /tmp/make-4.4.1/part-5.o \378  /tmp/make-4.4.1/part-6.o \379  /tmp/make-4.4.1/part-7.o \380  -o /usr/bin/make381382EXPORTS TOOL make383384SLOP make \385  --version386SLOP make --help > /usr/share/man/cat1/make.1387# FOLDER keeps the members a directory has at this row: the last page is written.388FOLDER /usr/share/man389390FILE /usr/share/licenses/make/COPYING391392SLOP rm \393  -rf \394  /tmp/make-4.4.1 \395  /tmp/make-4.4.1.tar \396  /usr/src/make397# libc++, libc++abi and libunwind are Emscripten's copy, compiled here from its398# pinned source with the flags of its own build (tools/system_libs.py,399# -ww-wasmexcept; its -mt-wasmexcept build is the same bytes) for the headers400# installed beside them. Every C++ link takes them, including explicit401# -lc++/-lc++abi; the links above this point are C and need none.402REQUIRES FOLDER process-sdk403REQUIRES TOOL   c++404REQUIRES TOOL   cc405REQUIRES TOOL   ar406REQUIRES TOOL   make407408SOURCE /v0.1.4/dist/static/default/libcxx-headers.tar 5e558f6f862d4a3fb22cc3c5b62c5e2652bf699f176fa349eeecb85d1a946735 /tmp/cpp/libcxx-headers.tar409SOURCE /v0.1.4/dist/static/default/libcxx.tar         2dff834a9e5e907476841437518cfdd568563e922e7a22f3261da114e1b1a1e8 /tmp/cpp/libcxx.tar410SOURCE /v0.1.4/dist/static/default/licenses/libcxx    539dd7aed86e8a4f12cbdd0e6c50c189c7d74847e4fecc64ce2c6ee3a01da38b /usr/share/licenses/libcxx/LICENSE411SOURCE /v0.1.4/dist/static/default/licenses/libcxxabi e2b35be49f7284a45b7baca8fc7b3ab7440e7902392b2528a457816b5bb2a15c /usr/share/licenses/libcxxabi/LICENSE412413SLOP tar \414  -xf /tmp/cpp/libcxx-headers.tar \415  -C /416SLOP tar \417  -xf /tmp/cpp/libcxx.tar \418  -C /419420FILE /tmp/cpp/Makefile421    .RECIPEPREFIX := >422    S := /tmp/cpp/system/lib423    L := /usr/lib/dolly/process424    # Static code with hidden symbols, as for a program. The directory is the one425    # Emscripten's build names, so the code and data are its archives' bytes.426    FLAGS := -Oz -g -fno-pic -fvisibility=hidden -ffile-prefix-map=/tmp/cpp=/emsdk/emscripten -DNDEBUG427    COMPILE := c++ $(FLAGS) -std=c++23 -D_LIBCPP_BUILDING_LIBRARY -I$S/libcxx/src -I/tmp/cpp/system/include428    LIBCXX := $(filter-out %/int128_builtins.cpp,$(wildcard $S/libcxx/src/*.cpp $S/libcxx/src/filesystem/*.cpp \429      $S/libcxx/src/ryu/*.cpp)) $(addprefix $S/libcxx/src/experimental/,chrono_exception.cpp keep.cpp log_hardening_failure.cpp)430    LIBCXXABI := $(addprefix $S/libcxxabi/src/,abort_message.cpp cxa_aux_runtime.cpp cxa_default_handlers.cpp \431      cxa_demangle.cpp cxa_guard.cpp cxa_handlers.cpp cxa_virtual.cpp cxa_thread_atexit.cpp fallback_malloc.cpp \432      stdlib_new_delete.cpp stdlib_exception.cpp stdlib_stdexcept.cpp stdlib_typeinfo.cpp private_typeinfo.cpp \433      cxa_exception_js_utils.cpp cxa_exception_storage.cpp cxa_exception.cpp cxa_personality.cpp)434    objects = $(sort $(addprefix /tmp/cpp/$1/,$(addsuffix .o,$(basename $(notdir $2)))))435    all: $L/libc++-ww-wasmexcept.a $L/libc++abi-ww-wasmexcept.a $L/libunwind-ww-wasmexcept.a436    $L/libc++-ww-wasmexcept.a: $(call objects,libc++,$(LIBCXX))437    $L/libc++abi-ww-wasmexcept.a: $(call objects,libc++abi,$(LIBCXXABI))438    $L/libunwind-ww-wasmexcept.a: /tmp/cpp/libunwind/Unwind-wasm.o439    $L/%.a:440    >ar rc $@ $^441    define compile442    /tmp/cpp/$1/$(basename $(notdir $2)).o: $2443    >$3 -c $$< -o $$@444    endef445    $(foreach source,$(LIBCXX),$(eval $(call compile,libc++,$(source),$(COMPILE) -DLIBCXX_BUILDING_LIBCXXABI=1 \446      -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -DLIBC_NAMESPACE=__llvm_libc -I$S/llvm-libc)))447    $(foreach source,$(LIBCXXABI),$(eval $(call compile,libc++abi,$(source),$(COMPILE) -D_LIBCXXABI_USE_FUTEX \448      -D_LIBCXXABI_BUILDING_LIBRARY -DLIBCXXABI_NON_DEMANGLING_TERMINATE -I$S/libunwind/include)))449    $(eval $(call compile,libunwind,$S/libunwind/src/Unwind-wasm.c,cc $(FLAGS) -D_LIBUNWIND_HIDE_SYMBOLS \450      -I$S/libunwind/include))451SLOP mkdir /tmp/cpp/libc++ /tmp/cpp/libc++abi /tmp/cpp/libunwind452SLOP make -C /tmp/cpp -j2453454EXPORTS HEADER cpp    /usr/include/c++/v1455EXPORTS LIB    c++    /usr/lib/dolly/process/libc++-ww-wasmexcept.a456EXPORTS LIB    c++abi /usr/lib/dolly/process/libc++abi-ww-wasmexcept.a457EXPORTS ENV    CXX    c++458459FILE /usr/share/licenses/libcxx/LICENSE460FILE /usr/share/licenses/libcxxabi/LICENSE461462SLOP rm \463  -rf \464  /tmp/cpp465