#14491: Add FreeBSD as a supported platform
--------------------------------+-------------------------------------------
Reporter: kcrisman | Owner: pjeremy
Type: enhancement | Status: new
Priority: major | Milestone: sage-5.11
Component: porting: BSD | Resolution:
Keywords: | Work issues:
Report Upstream: N/A | Reviewers:
Authors: | Merged in:
Dependencies: | Stopgaps:
--------------------------------+-------------------------------------------
Comment (by stephen):
I didn't really answer the question as to what was broken. The fault was
first observed in the building of the ecm subpackage, and came when
configure was checking for the {{{pow}}} function. But I believe that any
compilation that links to {{{libm.so}}}, and tries to use a function that
already exists in {{{/usr/lib/libm.so}}} (like, for example, {{{pow}}})
will fail with the error:
{{{undefined reference to symbol 'pow@@FBSD_1.0'}}}.
The way cephes works is to create its own
{{{${SAGE_ROOT}/local/lib/libm.so}}} which contains all the C99 floating
point functions that FreeBSD doesn't yet have. And then
{{{${SAGE_ROOT}/local/lib/libm.so}}} tells the linker to then look in
{{{/usr/lib/libm.so}}}. But with the very recent versions of
{{{binutils}}}, the linker ignores this latter request, because now the
option {{{--copy-dt-needed-entries}}} defaults to {{{--no-copy-dt-needed-
entries}}}.
How did I figure out that this was the error? It was pure serendipity. I
just happened to look in the right place at the right time. I really only
have a limited understanding of what is going on, and how linkers work.
For example, when I read the man page for {{{ld}}}, and read what the
option {{{--copy-dt-needed-entries}}} does, it was by no means obvious to
me that this was actually the problem, rather it was a vague hope that
this was the problem. So I tried it, and it worked. Yippee! And the
only reason I thought that the option {{{--copy-dt-needed-entries}}} might
be the issue was because I read http://sourceware.org/cgi-
bin/cvsweb.cgi/~checkout~/src/ld/NEWS?rev=1.131.2.1&content-
type=text/plain&cvsroot=src&only_with_tag=binutils-binutils-2_23_2 and saw
that this was one of the recent changes to {{{ld}}}.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14491#comment:33>
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/groups/opt_out.