ocaml/dune

add `forbidden_linkall` as an optional field in executable(s) stanza

Open

#12,748 opened on Nov 19, 2025

 (6 comments) (0 reactions) (0 assignees)OCaml (478 forks)github user discovery
help wanted

Repository metrics

Stars
 (1,882 stars)
PR merge metrics
 (Avg merge 1d 20h) (345 merged PRs in 30d)

Description

In the same style as forbidden_libraries, it'd be useful to have forbidden_linkall to guarantee an executable is not compiled with linkall.

It turns out dune can add the linkall option if some libraries (notably dune-site, but I don't know if there are others) are in the dependency graph (even transitively). Because of this, the linkall flag can creep up into an executable when a new dependency is added or when a dependency is updated (e.g., camomile<2 and camomile≥2).

Expected behaviour

With a stanza

(executable
 (forbidden_linkall)
 …)

is evaluated. The build fails if the executable would be compiled with linkall.

Contributor guide