2014-12-01 0:41 GMT-02:00 François Bissey <francois.bis...@canterbury.ac.nz>:
> In sage-on-gentoo I don't seem to hit that problem with 4.9.2
> either. I am really curious about your default building flags.

  Actually, it was partly my fault. I was using an early patch to adapt to use
ntl6, what is no longer required as sagemath now uses ntl6.
Just removing that patch correct the problem. But, the patch was
working previously, basically it was a "typedef struct someZZ someZZ;"
and update prototypes to use the typedef.

  I could not create a small reproducer. But found it interesting that adding
an explicit:
+#ifdef __cplusplus
+extern "C"
+#endif
int ZZ_p_to_int(const ZZ_p& x )
to not_wrap.c would cause a compilation failure telling it was not
compatible with
EXTERN int ZZ_p_to_int(const ZZ_p& x)
defined in ntl_wrap.h.

The non expanded EXTERN was weird. And apparently the issue
happens because I am trying to build with ntl-6.2.1, as with previous
ntl it did not happen.

> Francois
>
> On Mon, 01 Dec 2014 12:51:50 François Bissey wrote:
>> Very strange I don't have it in sage-on-gentoo.
>> objdump -T --demangle  /usr/lib64/libcsage.so |grep ZZ_p_to_int
>> 0000000000009320 g    DF .text  000000000000000e  Base        ZZ_p_to_int
>>
>> sage -v
>> Sage Version 6.5.beta1, Release Date: 2014-11-23
>>
>> We had a few issue with C++ ompiling during the upgrade and more have
>> surfaced on my side with people trying out -flto but not that particular
>> symbol. flto seems to mess up inline templates the same way that we found
>> not all versions of were producing symbol for them in
>> http://trac.sagemath.org/ticket/16882
>> as pointed out by Volker.
>>
>> Since gcc 4.9.2 is shipped in sage and a number of people are using it
>> I would be looking at any flags you are using. I may have a shot at
>> gcc 4.9.2 here.
>>
>> Francois
>>
>> On Sun, 30 Nov 2014 11:44:09 Paulo César Pereira de Andrade wrote:
>> >   I think this may have been working somewhat of by accident
>> >
>> > before, because it says 'extern "C"' in one place and in another
>> > say '// sorry, if you want a C version, feel free to add it'
>> >
>> >   I delayed a bit sagemath 6.4 update due to some dependencies
>> >
>> > needing to be updated in Fedora, in the meantime 6.4.1 was
>> > released.
>> >
>> >   Trying to update to Fedora sagemath rpm to 6.4.1 I am being
>> >
>> > hit by this:
>> >
>> > ---%<---
>> >
>> >   File
>> >
>> > "/home/pcpa/rpmbuild/BUILDROOT/sagemath-6.4.1-1.fc22.x86_64/usr/lib64/pyth
>> > o
>> > n2.7/site-packages/sage/libs/ntl/__init__.py", line 1, in <module>
>> >
>> >     import all
>> >
>> >   File
>> >
>> > "/home/pcpa/rpmbuild/BUILDROOT/sagemath-6.4.1-1.fc22.x86_64/usr/lib64/pyth
>> > o
>> > n2.7/site-packages/sage/libs/ntl/all.py", line 34, in <module>
>> >
>> >     from sage.libs.ntl.ntl_ZZ_p import (
>> >
>> > ImportError:
>> > /home/pcpa/rpmbuild/BUILDROOT/sagemath-6.4.1-1.fc22.x86_64/usr/lib64/pytho
>> > n
>> > 2.7/site-packages/sage/libs/ntl/ntl_ZZ_p.so: undefined symbol: ZZ_p_to_int
>> > error: Bad exit status from /var/tmp/rpm-tmp.moMkJq (%install)
>> > ---%<---
>> >
>> >   Previously it was exported as a "C" symbol:
>> > $ rpm -q sagemath
>> > sagemath-6.3-3.fc22.x86_64
>> > $ objdump -T --demangle /usr/lib64/libcsage.so | grep ZZ_p_to_int
>> > 0000000000008760 g    DF .text  0000000000000005  Base        ZZ_p_to_int
>> >
>> >   But the newly generated libcsage.so does only show a C++ symbol:
>> > $ objdump -T --demangle BUILD/sage-6.4.1/src/c_lib/libcsage.so | grep
>> > ZZ_p_to_int
>> > 00000000000087d0 g    DF .text  0000000000000005  Base
>> > ZZ_p_to_int(NTL::ZZ_p const&)
>> >
>> >   So, it may be required some extra wrapping, but more likely,
>> >
>> > patch the cython code to only use ZZ_to_int(ZZ*).
>> >
>> >   This may also be useful...
>> >
>> > $ rpm -q gcc binutils
>> > gcc-4.9.2-1.fc22.x86_64
>> > binutils-2.24-29.fc22.x86_64

Thanks,
Paulo

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to