#19610: Fix dependencies on PARI
-------------------------------------+-------------------------------------
Reporter: jdemeyer | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: sage-6.10
Component: cython | Resolution:
Keywords: | Merged in:
Authors: Jeroen Demeyer | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/jdemeyer/fix_dependencies_on_pari| 5d0e4d30588ab0f13bfc0770d2b4b407d7580035
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by leif):
Replying to [comment:16 jdemeyer]:
> If we decide to stop "overlinking", that would be a major change in how
we build Sage.
No. We've cleaned up `module_list.py` a couple of times in the past with
respect to this.
Note that it's (only) ''the common case'' that you don't have to specify
libraries used by the libraries you use. (In particular, building the
whole Sage library with the linker option `--as-needed` doesn't work, but
would work for most modules.)
The main exceptions are:
* A library is ''intentionally'' "underlinked", e.g. to allow the user to
choose from different (binary-compatible) alternatives at the final link
stage or even at run-time, or the user/application has to provide some
symbols the library uses (e.g. memory management functions, error handlers
etc.).
* The interface of the library (i.e., the header) exposes symbols of a
library it uses, such that your code at least ''may'' contain references
to the otherwise only indirectly used library. This is in principle the
same as if you would explicitly use the other library directly as well,
but not always as obvious, and may (or usually does) depend on your code,
not necessarily just the header(s) you include. (Stupid example: PARI
could have a function `pari_foo(x)` implemented as a macro or inline
function which expands to `gmp_bar(x)` or of course more complicated code
containing calls of GMP functions. Then you'd have to explicitly link
with GMP ''if your code actually uses that macro or inline function''.
But it's also a poor example, in that for especially PARI/GMP, this is
''not'' the case -- AFAIK. A better example is probably MPC/MPFR, but you
hardly ever use MPC without also ''explicitly'' using MPFR.)
--
Ticket URL: <http://trac.sagemath.org/ticket/19610#comment:18>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.