build/make/Makefile.in: base-toolchain should be a dependency of every non-base, non-toolchain package
mkoeppe opened this issue · 12 comments
This is so that one can go ahead with make SPKG right after ./configure (as discussed in #30718).
CC: @jhpalmieri
Component: build
Issue created by migration from https://trac.sagemath.org/ticket/30721
Should this be done for every package, or just the ones that fail to build without doing this?
For example, it might be good enough to add toolchain to the definition, or as a dependency, of BLAS and MP_LIBRARY.
I think it should be applied to every (non-base, non-toolchain) package. On systems that install the gcc from our spkg, really no package can be built before the toolchain is built.
So this would be best addressed by a change to Makefile.in, rather than editing all dependencies files.
And I'd rather not touch it for Sage 9.2
I'm happy to leave it until 9.3 — it's a pretty specific problem. The affected packages seem to be pretty limited: giac, numpy, and fflas_fpack. (I haven't tried all of Sage's packages, but about among 100 so far, the only failures come directly or indirectly from these packages.)
The problem with the missing dependency on the system BLAS .pc files can be alternatively addressed by #29387 (Complete solution for installing the generated *.pc files).
make toolchain is responsible for preparing *.pc files for system packages, and this is the real issue here?
Well, I argue for years that toolchain should be a separate thing, onto which one installs the rest.
Setting new milestone based on a cursory review of ticket status, priority, and last modification date.
This apparently results in inability for some users to build Sage from source.
See https://groups.google.com/g/sage-devel/c/PcgOTPSGjJI/m/8JsQPRasAAAJ
A workaround like "run make toolchain first" should be mentioned in the docs, at the very least.
I don't think that our documentation explains any use of make except for select top-level targets such as make build, make ptest, make distclean.
Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.