← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1581807] Re: Define wxIsNaN() as std::isnan() in C++11 mode

 

This bug was fixed in the package wxwidgets3.0 - 3.0.2+dfsg-1.3ubuntu0.1

---------------
wxwidgets3.0 (3.0.2+dfsg-1.3ubuntu0.1) xenial-proposed; urgency=medium

  * Define wxIsNaN() as std::isnan() in C++11 mode. This fixes the build
    failure of Audacity (Closes: #824264, LP: #1581807)

 -- Benjamin Drung <bdrung@xxxxxxxxxx>  Tue, 03 Jan 2017 23:11:31 +0100

** Changed in: wxwidgets3.0 (Ubuntu Xenial)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1581807

Title:
  Define wxIsNaN() as std::isnan() in C++11 mode

Status in wxwidgets3.0 package in Ubuntu:
  Fix Released
Status in wxwidgets3.0 source package in Xenial:
  Fix Released
Status in wxwidgets3.0 package in Debian:
  Fix Released

Bug description:
  Audacity (git master) fails to build on Ubuntu 16.04 with g++ 5.3.1:

  In file included from /usr/include/wx-3.0/wx/gdicmn.h:23:0,
                   from /usr/include/wx-3.0/wx/utils.h:26,
                   from BlockFile.cpp:51:
  BlockFile.cpp: In function ‘void ComputeMinMax256(float*, float*, float*, int*)’:
  /usr/include/wx-3.0/wx/math.h:91:31: error: ‘isnan’ was not declared in this scope
       #define wxIsNaN(x) isnan(x)
                                 ^
  BlockFile.cpp:325:11: note: in expansion of macro ‘wxIsNaN’
         if (wxIsNaN(summary256[3*i+2]))
             ^
  /usr/include/wx-3.0/wx/math.h:91:31: note: suggested alternative:
       #define wxIsNaN(x) isnan(x)
                                 ^
  BlockFile.cpp:325:11: note: in expansion of macro ‘wxIsNaN’
         if (wxIsNaN(summary256[3*i+2]))
             ^
  In file included from /usr/include/wx-3.0/wx/math.h:58:0,
                   from /usr/include/wx-3.0/wx/gdicmn.h:23,
                   from /usr/include/wx-3.0/wx/utils.h:26,
                   from BlockFile.cpp:51:
  /usr/include/c++/5/cmath:641:5: note:   ‘std::isnan’
       isnan(_Tp __x)
       ^
  make[3]: *** [audacity-BlockFile.o] Error 1

  isnan() is not defined, but std::isnan() is defined. Thus use
  std::isnan() for all C++11 compilers, since isnan() is part of C++11.
  The fix was accepted upstream:
  https://github.com/wxWidgets/wxWidgets/pull/283

  [Test Case]

  1) Create a git recipe in /tmp/bug-1581807.recipe with following
  content:

  # git-build-recipe format 0.4 deb-version {debupstream}+git{revdate}+r{revno}+{revno:packaging}
  lp:audacity f1909cb88e0fa4ecc589e715384b90d8bbfe55e6
  merge packaging lp:~audacity-team/audacity/+git/packaging daily-xenial

  2) Build a audacity source package:

  git-build-recipe --allow-fallback-to-native /tmp/bug-1581807.recipe
  /tmp/audacity

  3) Build the source package on xenial (for example with sbuild):

  sbuild -d xenial /tmpfs/audacity_2.1.2+git20160516+r4250+17.dsc

  4) You will experience the build failure described above with the
  unpatched wxwidgets. The build will succeed with the wxwidget patch.

  [Regression Potential]

  The patch changes C preprocessor definition (and not the run-time).
  Thus it could break source builds that use wxwidgts as library.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/wxwidgets3.0/+bug/1581807/+subscriptions