Skip to content

Fake JLL API discrepancies and usage concern #38781

Closed
@fingolfin

Description

@fingolfin

I need to compile some C/C++ code on the user's machine -- yes, putting all code in a JLL would be nicer, but for various reasons that's not an option in this case.

This code needs to link against GMP. In the past, that was no problem, as GMP_jll provides all that is needed. But now master has switched to "fake JLLs" via PR #38347 by @staticfloat . This causes some issues. The first is that GMP_jll.find_artifact_dir() stopped working, but OK, I've reverted back to GMP_jll.artifact_dir.

More concerning to me is that I've downloaded the latest Julia nightlies builds -- and they do not contain gmp.h and gmpxx.h -- thus my use case is broken. Annoyingly this is not visible when using my own build of Julia master, as there the header files are of course present and even found by my code going through GMP_jll.

The only workaround I can think of right now is to bundle my own copies of those header files and hope they match the libgmp bundled with Julia. But perhaps Julia simply could bundle the header? I understand that you don't want to put those into include/julia/ but perhaps they could be stowed away somewhere else? E.g. there could be a dir lib/fake_jlls/GMP_jll/ with subdirs include (containing the actual gmp.h etc.) and lib (a relative symlink to the real lib dir)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions