[Debian-med-packaging] Bug#891335: clonalframe: FTBFS with glibc 2.27: error: 'UNDERFLOW' was not declared in this scope

Aurelien Jarno aurel32 at debian.org
Wed Feb 28 09:26:15 UTC 2018


On 2018-02-28 10:03, Andreas Tille wrote:
> Control: tags -1 help
> 
> Hi Aurelien,
> 
> On Sat, Feb 24, 2018 at 05:52:42PM +0100, Aurelien Jarno wrote:
> > | src/util.cpp: In static member function 'static double wb::Util::lBinoProb(int, int, double)':
> > | src/util.cpp:109:36: error: 'UNDERFLOW' was not declared in this scope
> > |                  if (runningtotal < UNDERFLOW)
> > |                                     ^~~~~~~~~
> > | src/util.cpp:109:36: note: suggested alternative: 'EOVERFLOW'
> > |                  if (runningtotal < UNDERFLOW)
> > |                                     ^~~~~~~~~
> > |                                     EOVERFLOW
> > | src/util.cpp:118:36: error: 'OVERFLOW' was not declared in this scope
> > |                  if (runningtotal > OVERFLOW)
> > |                                     ^~~~~~~~
> > | src/util.cpp:118:36: note: suggested alternative: 'EOVERFLOW'
> > |                  if (runningtotal > OVERFLOW)
> > |                                     ^~~~~~~~
> > |                                     EOVERFLOW
> > | src/util.cpp:130:36: error: 'UNDERFLOW' was not declared in this scope
> > |                  if (runningtotal < UNDERFLOW)
> > |                                     ^~~~~~~~~
> > | src/util.cpp:130:36: note: suggested alternative: 'EOVERFLOW'
> > |                  if (runningtotal < UNDERFLOW)
> > |                                     ^~~~~~~~~
> > |                                     EOVERFLOW
> > | src/util.cpp:139:36: error: 'OVERFLOW' was not declared in this scope
> > |                  if (runningtotal > OVERFLOW)
> > |                                     ^~~~~~~~
> > | src/util.cpp:139:36: note: suggested alternative: 'EOVERFLOW'
> > |                  if (runningtotal > OVERFLOW)
> > |                                     ^~~~~~~~
> > |                                     EOVERFLOW
> > ...
> > Starting with glibc 2.27, support for SVID error handling has been
> > removed, including the corresponding constants. This causes this
> > package to FTBFS.
> 
> While there is some suggested alternative I need to admit that I need
> more precise advise which I also did not found in a web search (probably
> its me to seek for the wrong keywords).  Can you give an example for a
> correct replacement of 
> 
>    if (runningtotal < UNDERFLOW)
> 
> and 
> 
>    if (runningtotal > OVERFLOW)

It's difficult to say as the existing code makes *no sense*. Those are
integer constants which are supposed to be used in struct exception,
which is then passed to the matherr() function. In the glibc case they
happen to have a value of 3 for OVERFLOW and 4 for UNDERFLOW, but that
might differ on other systems. In any case they are not supposed to be
used in a comparison with floating point values.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien at aurel32.net                 http://www.aurel32.net



More information about the Debian-med-packaging mailing list