Source: trinityrnaseq
Version: 2.2.0+dfsg-4
Severity: important
Tags: patch
User: [email protected]
Usertags: 2.27
trinityrnaseq 2.2.0+dfsg-4 fails to build with glibc 2.27
(2.27-0experimental0 from experimental):
| make[2]: Entering directory '/<<BUILDDIR>>/trinityrnaseq-2.2.0+dfsg/Chrysalis'
| Makefile:80: ----------------------------------------------------------
| Makefile:81: using g++ version 7
| Makefile:82: --------------------------------------------------------
| ./MakeDepend.cc: In member function 'bool
makefile_builder::dependency::operator<(const makefile_builder::dependency&)
const':
| ./MakeDepend.cc:93:47: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]
| dependent_ == other.dependent_ &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
| provider_ < other.provider_ ); }
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ./MakeDepend.cc: In member function 'bool
makefile_builder::subdir_and_target::operator<(const
makefile_builder::subdir_and_target&) const':
| ./MakeDepend.cc:130:41: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]
| subdir_ == other.subdir_ &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~
| target_ < other.target_ ); }
| ~~~~~~~~~~~~~~~~~~~~~~~
| ./MakeDepend.cc: In function 'int main(int, char**)':
| ./MakeDepend.cc:223:20: warning: deprecated conversion from string constant
to 'char*' [-Wwrite-strings]
| char * options = "Ad:g:u:fh";
| ^~~~~~~~~~~
| ./MakeDepend.cc: In member function 'void
makefile_builder::DumpDependencies(const string&)':
| ./MakeDepend.cc:491:46: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]
| if ( ! this->FileIsSource( dependent ) && ! this->FileIsHeader(
dependent ) ||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ./MakeDepend.cc:493:44: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]
| this->FileIsHeader( dependent ) && this->FileIsSource( provider )
) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ./MakeDepend.cc: In member function 'bool
makefile_builder::FileIsHeader(const string&) const':
| ./MakeDepend.cc:1339:32: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]
| return ( filename.size() > 2 &&
| ~~~~~~~~~~~~~~~~~~~~^~
| ( CompareSubstring( filename, filename.size() - 2, 2, ".h" ) == 0 ) ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| /usr/bin/ld: cannot find -lieee
| collect2: error: ld returned 1 exit status
| make[2]: *** [MakeDepend] Error 1
A full build logs is available there:
http://aws-logs.debian.net/2018/02/07/glibc-exp/trinityrnaseq_2.2.0+dfsg-4_unstable_glibc-exp.log
Starting with glibc 2.27, support for the "ieee" library (part of SVID
specification) has been removed. The libieee.a library is therefore not
shipped anymore. In the trinityrnaseq case, GCC tries to link with this
library due to the use of the -mieee-fp option. Removing this option
from the Makefile is enough to fix the issue. This is what the attached
patch does.
diff -Nru trinityrnaseq-2.5.1+dfsg/debian/patches/disable-libieee
trinityrnaseq-2.5.1+dfsg/debian/patches/disable-libieee
--- trinityrnaseq-2.5.1+dfsg/debian/patches/disable-libieee
+++ trinityrnaseq-2.5.1+dfsg/debian/patches/disable-libieee
@@ -0,0 +1,55 @@
+--- trinityrnaseq-2.5.1+dfsg.orig/Chrysalis/Makefile_g++_i386
++++ trinityrnaseq-2.5.1+dfsg/Chrysalis/Makefile_g++_i386
+@@ -11,7 +11,7 @@ XERCES_INC = -ISpines
+ # Need to use old Compaq assembler:
+ SYS_OPT +=
+
+-SYS_LANG += -mieee-fp
++SYS_LANG +=
+
+ SYS_INCS +=
+
+--- trinityrnaseq-2.5.1+dfsg.orig/Chrysalis/Makefile_g++_i686
++++ trinityrnaseq-2.5.1+dfsg/Chrysalis/Makefile_g++_i686
+@@ -9,7 +9,7 @@ XERCES_LIB = -L$(LIB) -lxerces-c1_5_1-i6
+ # Need to use old Compaq assembler:
+ SYS_OPT +=
+
+-SYS_LANG += -mieee-fp
++SYS_LANG +=
+
+ SYS_INCS +=
+
+--- trinityrnaseq-2.5.1+dfsg.orig/Chrysalis/Makefile_g++_i86pc
++++ trinityrnaseq-2.5.1+dfsg/Chrysalis/Makefile_g++_i86pc
+@@ -9,7 +9,7 @@ XERCES_LIB = -L$(LIB) -lxerces-c1_5_1-i8
+ # Need to use old Compaq assembler:
+ SYS_OPT +=
+
+-SYS_LANG += -mieee-fp
++SYS_LANG +=
+
+ SYS_INCS +=
+
+--- trinityrnaseq-2.5.1+dfsg.orig/Chrysalis/Makefile_g++_x86_64
++++ trinityrnaseq-2.5.1+dfsg/Chrysalis/Makefile_g++_x86_64
+@@ -11,7 +11,7 @@ XERCES_INC = -ISpines
+ # Need to use old Compaq assembler:
+ SYS_OPT +=
+
+-SYS_LANG += -mieee-fp
++SYS_LANG +=
+
+ SYS_INCS +=
+
+--- trinityrnaseq-2.5.1+dfsg.orig/Chrysalis/Makefile_g++_x86_64_mpi
++++ trinityrnaseq-2.5.1+dfsg/Chrysalis/Makefile_g++_x86_64_mpi
+@@ -11,7 +11,7 @@ XERCES_INC = -ISpines
+ # Need to use old Compaq assembler:
+ SYS_OPT +=
+
+-SYS_LANG += -mieee-fp
++SYS_LANG +=
+
+ SYS_INCS +=
+
diff -Nru trinityrnaseq-2.5.1+dfsg/debian/patches/series
trinityrnaseq-2.5.1+dfsg/debian/patches/series
--- trinityrnaseq-2.5.1+dfsg/debian/patches/series
+++ trinityrnaseq-2.5.1+dfsg/debian/patches/series
@@ -9,3 +9,4 @@
build_with_gcc6.patch
NeedlemanWunschGotohBanded.patch
remove_anaconda_hashbang
+disable-libieee