On Friday, May 18, 2018 at 5:53:21 AM UTC+1, Dario Asprone wrote:
>
> So, summing up, I tried compiling the library on Fedora 28 64bit, which 
> ships with gcc 8.1 by default.
> I encountered 3 different issues, 2 already addressed by fidelbc and one 
> more with python 3.6.1
> While I resolved the issue with python2 in the same way fidelbc did, I 
> couldn't find any ready-made patch for the behaviour, so I analyzed the 
> linbox code a bit:
> in more than one place they used the double template specialization 
> syntax, that is:
> template<>
> template<typename T>
> class Class1<Type1<T>>{
> ...
> }
> This construct doesn't work with the compilers listed in the #ifdef, but 
> it worked with gcc7 (and MSVC I think).
> Apparently with gcc8 and the corresponding template rules tightening, this 
> approach was made non-standard, and since removing template<> shouldn't 
> affect compilability, in other source files that part was commented out.
> Since it was not in that particular header file (but I don't know why), I 
> chose to add __GNUC__ to the list of constants the #ifdef checks for. 
> This modification is in the attached patch multiple_templates.patch
>
> Python-3.6.1 was quite thougher. As Dima wrote, the solution is basically 
> loading the patch he linked. Since the patch modifies configure.ac 
> though, the package must first be rebuilt, then the commands
> aclocal
> autoconf
> autoheader
> run in sequence, and then the modifications apported by this commands put 
> in a patch.
>

the above can be just one line:

autoreconf -ivf
 

> After doing that, the package built correctly.
> Sadly, I don't have any more information about the cause of the error 
> than: on Fedora 28 *crypt()*, the thread unsafe version, is broken (or at 
> least its usage in python).
>

it appears that crypt() on Fedora 28 has a totally different implementation.
https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt

This might explain why it's not visible on other distros with gcc 8.


 

> I have a few additional debug informations, but only on what happens, not 
> on why it does.
> The two patches to apply for python-3.6.1 are, respectively, crypt.patch 
> and zzz_conf.patch.
> I will now try to open a trac ticket with all the patches to fix the 
> compilation on Fedora 28, specifying that 2 of them actually fix gcc 8.1 
> compatibility issues in general.
> I will also include the python2 patch, since with the current python2 
> version compilation is still impossible.
>

your branch on trac should be dependent on the python2 fix ticket (and use 
the branch there)
 

>
> Il giorno venerdì 18 maggio 2018 04:24:30 UTC+1, Dima Pasechnik ha scritto:
>>
>> As I wrote - you need to backport the patch from 
>> https://bugs.python.org/issue28503 
>> <https://www.google.com/url?q=https%3A%2F%2Fbugs.python.org%2Fissue28503&sa=D&sntz=1&usg=AFQjCNESigXVaeH_9SZmQSbKTb4LZ_KiFQ>
>> Hopefully he opens a ticket with the fix soon (he just got his trac 
>> account fixed).
>>
>> On Thursday, May 17, 2018 at 10:39:46 PM UTC+1, Enrique Artal wrote:
>>>
>>> I would be interested on how he solved the problem!
>>>
>>> El jueves, 17 de mayo de 2018, 21:04:15 (UTC+2), Dima Pasechnik escribió:
>>>>
>>>> On Fedora 28 (another gcc-8 system) Dario (my student) also had problem 
>>>> with building python3, as we were getting a broken crypt module.
>>>> A remedy he found, after a lot of debugging, was to backport the patch 
>>>> from
>>>> https://bugs.python.org/issue28503 
>>>> <https://www.google.com/url?q=https%3A%2F%2Fbugs.python.org%2Fissue28503&sa=D&sntz=1&usg=AFQjCNESigXVaeH_9SZmQSbKTb4LZ_KiFQ>
>>>> (which uses crypt_r if available) 
>>>>
>>>> On Thursday, May 17, 2018 at 7:23:30 AM UTC+1, vdelecroix wrote:
>>>>>
>>>>> Dear F, 
>>>>>
>>>>> Thanks! 
>>>>>
>>>>> For Python 2.7-14 we will be switching for 2.7-15 that does cause any 
>>>>> trouble with GCC 8.1.0. See [1]. 
>>>>>
>>>>> For linbox, there is at least [2] opened (but no patch for the 
>>>>> moment). 
>>>>>
>>>>> BTW, when I did build Sage with 8.1.0 few times ago I also had 
>>>>> troubles 
>>>>> with fflas that you do not mention (complaints about "const void"). 
>>>>>
>>>>> [1] https://trac.sagemath.org/ticket/25204 
>>>>> [2] https://trac.sagemath.org/ticket/25353 
>>>>>
>>>>> Vincent 
>>>>>
>>>>> On 17/05/2018 04:59, fidelbc wrote: 
>>>>> > Hello all, 
>>>>> > 
>>>>> > Wanted to leave this note for anybody running into gcc8 compiling 
>>>>> issues. 
>>>>> > This was built on archlinux using their gcc 8.1.0-1 package. 
>>>>> Fortunately 
>>>>> > there are fixes floating around, please see attached patches. 
>>>>> > 
>>>>> > - Python-2.7.14 
>>>>> > 
>>>>> > Error (sorry for the lack of details, lost the log file:-/ ): 
>>>>> > /bin/sh: line 5: 25857 Segmentation fault      (core dumped) ... 
>>>>> > Fix: 
>>>>> > Place attached patch gcc8_python.patch (also available at [1]) under 
>>>>> > $SAGEDIR/build/pkgs/python2/patches. I guess this is now fixed at 
>>>>> 2.7.15, 
>>>>> > see [2]. 
>>>>> > 
>>>>> > 
>>>>> > - linbox-1.5.2 
>>>>> > 
>>>>> > Error: 
>>>>> > ../../linbox/matrix/densematrix/blas-transposed-matrix.h:74:8: 
>>>>> error: too 
>>>>> > many template-parameter-lists 
>>>>> >    class TransposedBlasMatrix< TransposedBlasMatrix< Matrix > > : 
>>>>> public 
>>>>> > Matrix { 
>>>>> >          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>>>> > Fix: 
>>>>> > Place attached patch gcc8_linbox.patch (also available at [3]) under 
>>>>> > $SAGEDIR/build/pkgs/linbox/patches 
>>>>> > 
>>>>> > Best, 
>>>>> > f 
>>>>> > 
>>>>> > [1]: 
>>>>> https://mail.python.org/pipermail/python-dev/2018-January/152011.html 
>>>>> > [2]: 
>>>>> > 
>>>>> https://github.com/python/cpython/commit/0b91f8a668201fc58fa732b8acc496caedfdbae0
>>>>>  
>>>>> > [3]: 
>>>>> > 
>>>>> https://git.archlinux.org/svntogit/community.git/tree/trunk/linbox-gcc8.patch?h=packages/linbox
>>>>>  
>>>>> > 
>>>>>
>>>>

-- 
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 https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to