You can mix units compiled with different elaboration models. However you must observe the following rules:
Ada, GNAT,
Interfaces, or System hierarchies.
Pure or Preelaborate.
Elaborate_All pragma for the server
unit.
These rules ensure that elaboration checks are not omitted. If the rules are violated, the binder emits a warning:
warning: "x.ads" has dynamic elaboration checks and with's warning: "y.ads" which has static elaboration checks
You can suppress these warnings by specifying binder switch -ws.