Skip to content

Bootstrapping FlexDLL when new primitives have been added#9700

Merged
xavierleroy merged 1 commit intoocaml:trunkfrom
xavierleroy:fix-flexdll-bootstrap
Jun 23, 2020
Merged

Bootstrapping FlexDLL when new primitives have been added#9700
xavierleroy merged 1 commit intoocaml:trunkfrom
xavierleroy:fix-flexdll-bootstrap

Conversation

@xavierleroy
Copy link
Copy Markdown
Contributor

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.

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.
@xavierleroy xavierleroy requested a review from dra27 June 22, 2020 17:21
@gasche
Copy link
Copy Markdown
Member

gasche commented Jun 22, 2020

I would be in favor of adding -use-prims $(ROOTDIR)/runtime/primitives to the BOOT_OCAMLC variable. All uses of this variable in the compiler would be fine (maybe we could also have a BOOT_OCAMLDEP without the option and with -depend for clarity?), and it could be used in new places like here for flexlink (one should override CAMLC rather than COMPILER in stdlib) to make make them bootstrap-robust.

Copy link
Copy Markdown
Member

@dra27 dra27 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@dra27
Copy link
Copy Markdown
Member

dra27 commented Jun 22, 2020

I have been musing on the flexlink bootstrap, partly from a cross-compilation perspective, and partly while working on improving the way configure sets it up.

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, boot/ocamlrun never supports dynamic loading (but obviously runtime/ocamlrun would, if it's been configured) then I'm fairly sure virtually the whole of the make flexdll stage can be eliminated. In particular, the stdlib is built twice which really isn't necessary (I think I was even more green about these things when I wrote it, and also overly anxious to be certain that flexlink bootstrapping definitely didn't alter the final build).

@xavierleroy xavierleroy merged commit e9754b0 into ocaml:trunk Jun 23, 2020
@xavierleroy
Copy link
Copy Markdown
Contributor Author

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.

@xavierleroy xavierleroy deleted the fix-flexdll-bootstrap branch July 20, 2020 09:34
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 28, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 28, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 28, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 28, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 28, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Aug 4, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Aug 4, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Aug 4, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Aug 4, 2024
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jun 28, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jun 28, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jun 28, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jun 28, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jun 30, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jun 30, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 2, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 3, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 3, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 3, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 3, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 3, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
dra27 pushed a commit to dra27/ocaml that referenced this pull request Jul 6, 2025
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants