Skip to content

Runtime fail on dependencies with platform-specific compat #1433

@mmfiuza

Description

@mmfiuza

I've noticed that BinaryBuilder fails when we have a case like:

platforms = [
    Dependency("Foo_jll", compat="X"; platforms=pA),
    Dependency("Foo_jll", compat="Y"; platforms=pB)
]

Notice that we're trying to use the same dependency with different versions for some platforms.

In this case, the Project.toml of the generated JLL only retains one compat bound (the last one processed), creating a JJL that builds fine, but may fail at runtime depending on the platform.

If this is too hard to fix, I suggest that at least an error (or warning) message shown if someone tries to build like this.

How I found this problem

I encountered this problem trying to set a dependency as:

  • MKL_jll v2025.2 for x86_64-w64 and x86_64-linux-gnu;
  • MKL_jll v2023.2 for x86_64-apple

That's because oneMKL dropped Apple support after v2023.2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions