On 2025-08-12 14:07, Jeremy Drake via Cygwin-apps wrote:
On Mon, 11 Aug 2025, Jeremy Drake via Cygwin-apps wrote:
clang and lld require the matching version of llvm to build against. The
named libllvm20.1 package for the library itself is nice for runtime, but
how do I ensure that scallywag pulls in the correct libllvm-devel (and
libpolly-devel), especially while they are still test versions?
It seems like scallywag accepts BUILD_REQUIRES with package=version
format, but only if the version is the full "${PVR}" format (I first used
"${PV}" and that didn't work). It seems like cygport isn't as happy with
that, it warns that the packages are not installed even if they are.
I did see a "testpackages" scallywag token, but that would install *all*
test packages, not just the ones it needs (so would link against a newer
cygwin dll for instance).
Also, is there a version constraint for binary package dependencies? I
had to explicitly add a BUILD_REQUIRES to lld for llvm=${PVR} due to the
libllvm_devel_REQUIRES having just llvm in it, and that pulled in llvm 8
instead of llvm 20. Obviously, libllvm_devel 20 requires llvm 20, not
llvm 8.
/usr/share/doc/cygport/html/manual/check_funcs_cygpart.html#BUILD_REQUIRES:
BUILD_REQUIRES ..."only actual package names, or atoms that are listed PROVIDES
of other packages, may be used in this variable."
So one option often used for language products is a setup provides keyword,
where each llvm dependent component may need its own custom provides, e.g.
gcc-core
...
version: 13.4.0-1
...
provides: gcc13
...
[test]
version: 15.1.1+20250726-0.1ap
...
provides: gcc15
...
[test]
version: 14.3.1+20250725-0.1
...
provides: gcc14
...
[prev]
version: 12.4.0-3
...
provides: gcc12
...
[prev]
version: 11.5.0-1
...
provides: gcc11
...
[prev]
version: 12.5.0-1
...
provides: gcc12
...
[test]
version: 16.0.0+20250727-0.1
...
provides: gcc16
...
although other components like libgcc1 and libgccjit0 only have the same
versions, not additional provides, and it seems to me you still have to manually
coordinate those installs to get different versions?
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut
-- Antoine de Saint-Exupéry