Changes between Version 15 and Version 17 of Ticket #25391


Ignore:
Timestamp:
06/20/18 13:08:10 (17 months ago)
Author:
dimpase
Comment:

Jeroen, how do you feel about merging Python 3 patch which is still being out for reviewing by Python people?

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #25391

    • Property Status changed from needs_info to needs_review
    • Property Keywords python2 linbox removed
    • Property Reviewers changed from to Dima Pasechnik
    • Property Commit changed from 5be7adc8c90d54d53c77fa8a20a8df1a223ea577 to 35c3c33f42df5da1b00351205c1d984c06019eba
  • Ticket #25391 – Description

    v15 v17  
    1 SageMath building produces 3 different errors when run on Fedora 28 64bit with  gcc 8.1, specifically when building the packages:
     1SageMath 8.3.beta1 building produced 3 different errors when run on Fedora 28 64bit with  gcc 8.1, specifically when building the packages:
    22- python 3.6.1
    3 - python 2.7.14
    4 - linbox 1.5.2
     3- python 2.7.14 (fixed in #25204)
     4- linbox 1.5.2  (fixed in #25353)
    55
    6 The following errors are respectively reported:
    7 - Failure to import the crypt module
    8 - Failure to generate posix vars
    9 -
    10 {{{
    11 ../../linbox/matrix/densematrix/blas-transposed-matrix.h:74:8: error: too many template-parameter-lists
    12   class TransposedBlasMatrix< TransposedBlasMatrix< Matrix > > : public Matrix{
    13       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    14 }}}
    15 
    16 The first error is due to an unspecified issue with Fedora 28 implementation of ''crypt()'', which as reported in https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt is not the standard glibc implementation. Since I couldn't find a way to fix the crypt implementation in a reliable manner, I opted to implement the patch reported here https://bugs.python.org/issue28503 to allow python to use ''r_crypt()'', which works.
    17 
    18 The errors in the last two packages, instead, are due to more general issues with the new 8.1 version of gcc.
    19 Python 2.7.14 fails to build because the way structs are aligned in C was changed in gcc 8.1, as described in https://bugs.python.org/issue33374#msg315857 .
     6The 1st error manifests itself as a failure to import the crypt module during the build of Python 3.
     7It is due to an unspecified issue with Fedora 28 implementation of ''crypt()'', which as reported in https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt is not the standard glibc implementation. Since I couldn't find a way to fix the crypt implementation in a reliable manner, I opted to implement the patch reported here https://bugs.python.org/issue28503 to allow python to use ''r_crypt()'', which works.
    208
    219
    22 Linbox fails to build because it uses a construct previously accepted in gcc 7 that instead produces an error in gcc 8, specifically a templated template specialization done in the following way:
    23 
    24 {{{
    25 template<>
    26 template<typename T>
    27 class Class1<Type1<T>>{
    28 ...
    29 }
    30 }}}
    31 
    32 For specifics on how the errors are solved, see the sage-devel discussion at https://groups.google.com/forum/#!msg/sage-devel/NgzlZknrizg/o-_Exw8jCAAJ
    33 
    34 N.B: while originally this ticket fixed all 3 bugs, since the last two were solved separately in two different tickets, now the current ticket only fixes the python 3 bug, while mergin the tickets listed as dependencies to fix the others.
     10For specifics on how the latter two errors are solved, see the sage-devel discussion at https://groups.google.com/forum/#!msg/sage-devel/NgzlZknrizg/o-_Exw8jCAAJ