#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.


Reply via email to