It's starting to make sense. Looks like I need "distutils: libraries =
bmi" at the beginning of bmi_c.pxd
I think it would be useful to have all of the distutils: directives
documented in one place.
agape
brent
On Thursday, March 16, 2023 at 4:36:36 PM UTC-4 Matthias Koeppe wrote:
> Third paragraph in the linked article:
> Some Cython modules need specific compiler and linker flags. Sage 9.2 has
> moved all of these flags from Extension options in src/module_list.py to
> distutils: directives in the individual .pyx source files, see #29706
> <https://trac.sagemath.org/ticket/29706> and Cython documentation
> <https://cython.readthedocs.io/en/latest/src/userguide/source_files_and_compilation.html#compiler-directives>
> .
>
>
> On Thursday, March 16, 2023 at 1:10:47 PM UTC-7 Brent W. Baccala wrote:
>
>> Thank you, Matthias and Dima, for those pointers.
>>
>> Reading over that, it seems like it should just find the files on its
>> own. "src/module_list.py" was not replaced with anything other than
>> improved logic to find Cython files.
>>
>> How does it know which shared libraries to load? It seems like that's
>> where it's failing - not when it compiles the Cython, but when it tries to
>> run it and call a function in the shared library.
>>
>> agape
>> brent
>>
>>
>> On Thursday, March 16, 2023 at 6:23:44 AM UTC-4 Dima Pasechnik wrote:
>>
>>> On Thu, Mar 16, 2023 at 8:07 AM Matthias Koeppe
>>> <[email protected]> wrote:
>>> >
>>> > Looking at the branch I see a change to "src/module_list.py". This
>>> file is not a thing any more in Sage. See
>>> https://wiki.sagemath.org/ReleaseTours/sage-9.2#For_developers:_Changes_to_the_build_system_of_sagelib
>>>
>>>
>>> This is somewhat outdated, it seems. I've edited the links there to
>>> point to sources on github, but there is nothing about sage-tdlib in
>>> setup.py any more.
>>> There is sagemath-tdlib in src/sage/misc/package_dir.py, etc...
>>>
>>> probably it's best to be edited further not by me, but by someone who
>>> knows details.
>>>
>>>
>>> >
>>> >
>>> > On Wednesday, March 15, 2023 at 6:56:32 PM UTC-7 Brent W. Baccala
>>> wrote:
>>> >>
>>> >> Hi -
>>> >>
>>> >> I'm trying to get the DifferentialAlgebra package in issue 13268
>>> running (it has a github branch that was imported from trac).
>>> >>
>>> >> Last time I had it running was 9.0 (I think), and now I'm trying to
>>> build it on 9.8.
>>> >>
>>> >> It seems to build fine, but can't access functions in the shared
>>> library that was built from upstream's C code.
>>> >>
>>> >> It does this:
>>> >>
>>> >> baccala@samsung:~/src/sage-rg$ ./sage
>>> >>
>>> ┌────────────────────────────────────────────────────────────────────┐
>>> >> │ SageMath version 9.8, Release Date: 2023-02-11 │
>>> >> │ Using Python 3.11.1. Type "help()" for help. │
>>> >>
>>> └────────────────────────────────────────────────────────────────────┘
>>> >> sage: import sage.calculus.DifferentialAlgebra
>>> >>
>>> ---------------------------------------------------------------------------
>>> >> ImportError Traceback (most recent call last)
>>> >> Cell In [1], line 1
>>> >> ----> 1 import sage.calculus.DifferentialAlgebra
>>> >>
>>> >> ImportError: /home/baccala/src/sage-rg/src/sage/calculus/
>>> DifferentialAlgebra.cpython-311-x86_64-linux-gnu.so: undefined symbol:
>>> bmi_sage_is_constant
>>> >> sage:
>>> >>
>>> >> The function is cimported in DifferentialAlgebra.pyx:
>>> >>
>>> >> cimport sage.libs.bmi_c as bmi_c
>>> >>
>>> >> bmi_c.pxd is in src/sage/libs and contains lines like this:
>>> >>
>>> >> cdef extern from "bmi.h":
>>> >> ...
>>> >> ctypedef bmi_balsa_object_string* ALGEB_string
>>> >> ALGEB_string bmi_sage_is_constant (
>>> >> char*, char*, ALGEB, char*, char*, ba0_int_p, ba0_int_p)
>>> >>
>>> >> The symbol exists in a shared library in local/lib:
>>> >>
>>> >> baccala@samsung:~/src/sage-rg$ ls -l local/lib/libbmi.so.0.0.0
>>> >> -rwxr-xr-x 1 baccala baccala 973584 Mar 15 16:17
>>> local/lib/libbmi.so.0.0.0
>>> >> baccala@samsung:~/src/sage-rg$ nm local/lib/libbmi.so.0.0.0 | grep
>>> bmi_sage_is_constant
>>> >> 000000000000c140 T bmi_sage_is_constant
>>> >>
>>> >>
>>> >> Any idea what needs to be done to access this shared library from
>>> Sage?
>>> >>
>>> >> It may be related to something that changed since Sage 9.0.
>>> >>
>>> >> Thanks for any help you can provide!
>>> >>
>>> >> agape
>>> >> brent
>>> >>
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> Groups "sage-devel" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> > To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sage-devel/5363374f-dceb-4176-8e69-f1402d2cb8f2n%40googlegroups.com.
>>>
>>>
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/6d5f9262-7ba9-4e9f-b33e-ecf8410d4419n%40googlegroups.com.