Source: sisl Version: 4.6.0-1 Severity: important Tags: patch User: debian-gl...@lists.debian.org Usertags: 2.27
sisl 4.6.0-1 fails to build with glibc 2.27 (2.27-0experimental0 from experimental): | [ 3%] Building C object CMakeFiles/sisl.dir/src/mk_cv_cycl.c.o | /usr/bin/cc -I/<<PKGBUILDDIR>>/include -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -o CMakeFiles/sisl.dir/src/mk_cv_cycl.c.o -c /<<PKGBUILDDIR>>/src/mk_cv_cycl.c | In file included from /<<PKGBUILDDIR>>/src/crvcrvtang.c:49:0: | /<<PKGBUILDDIR>>/src/crvcrvtang.c: In function 'crv_crv_tang': | /<<PKGBUILDDIR>>/include/sislP.h:365:23: error: 'MAXDOUBLE' undeclared (first use in this function); did you mean 'DOUBLE'? | #define HUGE MAXDOUBLE | ^ | /<<PKGBUILDDIR>>/src/crvcrvtang.c:171:19: note: in expansion of macro 'HUGE' | tprev = (double)HUGE; | ^~~~ | /<<PKGBUILDDIR>>/include/sislP.h:365:23: note: each undeclared identifier is reported only once for each function it appears in | #define HUGE MAXDOUBLE | ^ | /<<PKGBUILDDIR>>/src/crvcrvtang.c:171:19: note: in expansion of macro 'HUGE' | tprev = (double)HUGE; | ^~~~ | CMakeFiles/sisl.dir/build.make:113: recipe for target 'CMakeFiles/sisl.dir/src/crvcrvtang.c.o' failed | make[3]: *** [CMakeFiles/sisl.dir/src/crvcrvtang.c.o] Error 1 | make[3]: *** Waiting for unfinished jobs.... | In file included from /<<PKGBUILDDIR>>/src/crvarctang.c:49:0: | /<<PKGBUILDDIR>>/src/crvarctang.c: In function 'crv_arc_tang': | /<<PKGBUILDDIR>>/include/sislP.h:365:23: error: 'MAXDOUBLE' undeclared (first use in this function); did you mean 'DOUBLE'? | #define HUGE MAXDOUBLE | ^ | /<<PKGBUILDDIR>>/src/crvarctang.c:174:19: note: in expansion of macro 'HUGE' | tprev = (double)HUGE; | ^~~~ | /<<PKGBUILDDIR>>/include/sislP.h:365:23: note: each undeclared identifier is reported only once for each function it appears in | #define HUGE MAXDOUBLE | ^ | /<<PKGBUILDDIR>>/src/crvarctang.c:174:19: note: in expansion of macro 'HUGE' | tprev = (double)HUGE; | ^~~~ | CMakeFiles/sisl.dir/build.make:89: recipe for target 'CMakeFiles/sisl.dir/src/crvarctang.c.o' failed | make[3]: *** [CMakeFiles/sisl.dir/src/crvarctang.c.o] Error 1 | In file included from /<<PKGBUILDDIR>>/src/intjoinper.c:51:0: | /<<PKGBUILDDIR>>/src/intjoinper.c: In function 'int_join_per': | /<<PKGBUILDDIR>>/include/sislP.h:365:23: error: 'MAXDOUBLE' undeclared (first use in this function); did you mean 'DOUBLE'? | #define HUGE MAXDOUBLE | ^ | /<<PKGBUILDDIR>>/src/intjoinper.c:183:23: note: in expansion of macro 'HUGE' | legal_min[kp] = -HUGE; | ^~~~ | /<<PKGBUILDDIR>>/include/sislP.h:365:23: note: each undeclared identifier is reported only once for each function it appears in | #define HUGE MAXDOUBLE | ^ | /<<PKGBUILDDIR>>/src/intjoinper.c:183:23: note: in expansion of macro 'HUGE' | legal_min[kp] = -HUGE; | ^~~~ | CMakeFiles/sisl.dir/build.make:281: recipe for target 'CMakeFiles/sisl.dir/src/intjoinper.c.o' failed | make[3]: *** [CMakeFiles/sisl.dir/src/intjoinper.c.o] Error 1 | make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | CMakeFiles/Makefile2:70: recipe for target 'CMakeFiles/sisl.dir/all' failed | make[2]: *** [CMakeFiles/sisl.dir/all] Error 2 | make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | Makefile:154: recipe for target 'all' failed | make[1]: *** [all] Error 2 | make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | dh_auto_build: cd obj-x86_64-linux-gnu && make -j16 returned exit code 2 | debian/rules:16: recipe for target 'build-arch' failed | make: *** [build-arch] Error 2 | dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 A full build log is available there: http://aws-logs.debian.net/2018/02/07/glibc-exp/sisl_4.6.0-1_unstable_glibc-exp.log Starting with glibc 2.27, support for SVID error handling has been removed, including the corresponding constants. This causes this package to FTBFS. The attached patch fixes that by defining the constants if they are not defined instead of on a fixed list of systems.
diff -Nru sisl-4.6.0/debian/patches/no-svid.patch sisl-4.6.0/debian/patches/no-svid.patch --- sisl-4.6.0/debian/patches/no-svid.patch 1970-01-01 01:00:00.000000000 +0100 +++ sisl-4.6.0/debian/patches/no-svid.patch 2018-02-24 02:05:09.000000000 +0100 @@ -0,0 +1,35 @@ +SVID error handling has been removed from glibc 2.27 onwards. Check for +corresponding defines instead of hardcoding a list of systems. + +--- sisl-4.6.0.orig/include/sislP.h ++++ sisl-4.6.0/include/sislP.h +@@ -81,14 +81,28 @@ + #include <limits.h> + + /* Get system spesific values */ +-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) || defined(__APPLE__) ++#if !defined(MAXDOUBLE) + # define MAXDOUBLE 1.79769313486231570e+308 ++#endif ++#if !defined(MAXFLOAT) + # define MAXFLOAT ((float)3.40282346638528860e+38) ++#endif ++#if !defined(MINDOUBLE) + # define MINDOUBLE 2.22507385850720140e-308 ++#endif ++#if !defined(MINFLOAT) + # define MINFLOAT ((float)1.17549435082228750e-38) ++#endif ++#if !defined(M_PI) + # define M_PI 3.14159265358979323846 ++#endif ++#if !defined(M_PI_2) + # define M_PI_2 1.57079632679489661923 ++#endif ++#if !defined(M_SQRT2) + # define M_SQRT2 1.41421356237309504880 ++#endif ++#if !defined(M_SQRT1_2) + # define M_SQRT1_2 0.70710678118654752440 + #endif + diff -Nru sisl-4.6.0/debian/patches/series sisl-4.6.0/debian/patches/series --- sisl-4.6.0/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ sisl-4.6.0/debian/patches/series 2018-02-24 02:05:09.000000000 +0100 @@ -0,0 +1 @@ +no-svid.patch