diff options
author | David Allsopp <david.allsopp@metastack.com> | 2021-01-03 11:16:23 +0000 |
---|---|---|
committer | David Allsopp <david.allsopp@metastack.com> | 2021-05-11 13:53:32 +0100 |
commit | 5f87ca619c8637e5889a7b4cfc1e276ace9410a2 (patch) | |
tree | 846fd1008039a4021c33fdf5c7fdc8870b4bf9e4 /.gitignore | |
parent | ea2b165323657177bb5e3c162098fcf2ec0769e2 (diff) | |
download | ocaml-5f87ca619c8637e5889a7b4cfc1e276ace9410a2.tar.gz |
Bootstrap flexlink without partialclean
Currently, the flexdll target does a coldstart, overriding
SUPPORT_DYNAMIC_LINKING and calling the C compiler to create
ocamlrun.exe. This temporary runtime and stdlib are used with the boot
compiler to build (bytecode) flexlink. The bootstrap then does a partial
clean of the runtime and stdlib and then world[.opt] does another
coldstart which builds boot/ocamlrun.exe this time with flexlink and
rebuilds the boot stdlib.
This wastes a lot of effort. The boot stdlib will be the same in both
builds, because its compilation is not affected by the availability or
not of shared library support. Most of the runtime is also identical -
it's only the platform-specific unit which changes.
This change introduces libcamlrun_non_shared and ocamlruns. The flexdll
target builds just ocamlruns and copies it to boot/ocamlruns. This
runtime is then used to build the stdlib. Nothing is cleaned which means
that the subsequent coldstart will only rebuild the platform-specific
unit and ocamlrun and the stdlib build will not build anything.
Diffstat (limited to '.gitignore')
-rw-r--r-- | .gitignore | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index bfc37866dc..dd0dfece2d 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ _build /asmcomp/CSE.ml /boot/ocamlrun +/boot/ocamlruns /boot/camlheader /boot/ocamlc.opt |