Bootstrapping FlexDLL when new primitives have been added#9700
Bootstrapping FlexDLL when new primitives have been added#9700xavierleroy merged 1 commit intoocaml:trunkfrom
Conversation
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case.
|
I would be in favor of adding |
dra27
left a comment
There was a problem hiding this comment.
Thanks for doing this, @xavierleroy! I saw the issue pop up at the weekend, but I had to spend today battling with accounts instead of build systems.
This is absolutely correct and arguably could have been part of #324.
|
I have been musing on the flexlink bootstrap, partly from a cross-compilation perspective, and partly while working on improving the way I think at the moment the flexlink bootstrap does more work than is necessary - in fact, if we could have the situation that, regardless of configuration, |
|
Merged as is because it's a hot fix. There are probably other ways to go about it and the FlexDLL bootstrap, but it can wait. |
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular. However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib. This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case. (cherry picked from commit e9754b0)
Under Windows, it is possible to build FlexDLL from sources while OCaml is building from sources too. This is used for our Appveyor CI, in particular.
However, the current build procedure assumes that the OCaml bootstrap is stable, and in particular that boot/ocamlc knows about all the primitives defined by runtime/ocamlrun and used in stdlib.
This commit lifts this assumption and enables FlexDLL to be bootstrapped even if the OCaml bootstrap is not there yet. This unblocks Appveyor CI in this case.
Developed and tested with help from @Octachron.