[Debian-astro-maintainers] Bug#838422: casacore: FTBFS on PowerPC variants: HostInfo prototype mismatches

Aaron M. Ucko amu at alum.mit.edu
Wed Sep 21 01:10:41 UTC 2016


Source: casacore
Version: 2.1.0-2
Severity: important
Justification: fails to build from source

Thanks for looking into my previous reports.

Alas, builds of casacore on PowerPC variants (powerpc and ppc64el, and
the non-release ppc64 architecture) are now failing:

  cd /«PKGBUILDDIR»/obj-powerpc-linux-gnu/casa && /usr/bin/c++   -DCFITSIO_VERSION_MAJOR=3 -DCFITSIO_VERSION_MINOR=380 -DHAVE_FFTW3 -DHAVE_FFTW3_THREADS -DHAVE_READLINE -DUSE_THREADS -DWCSLIB_VERSION_MAJOR=5 -DWCSLIB_VERSION_MINOR=15 -Dcasa_casa_EXPORTS -I/«PKGBUILDDIR» -I/«PKGBUILDDIR»/obj-powerpc-linux-gnu  -fcx-fortran-rules -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -fsigned-char -std=c++11 -pthread -fPIC   -o CMakeFiles/casa_casa.dir/OS/HostInfo.cc.o -c /«PKGBUILDDIR»/casa/OS/HostInfo.cc
  /«PKGBUILDDIR»/casa/OS/HostInfo.cc:259:5: error: prototype for 'casa::Int casa::HostInfo::numCPUs()' does not match any in class 'casa::HostInfo'
   Int HostInfo::numCPUs( ) { return 0; }
       ^~~~~~~~
  In file included from /«PKGBUILDDIR»/casa/OS/HostInfo.cc:30:0:
  /«PKGBUILDDIR»/casacore/casa/OS/HostInfo.h:116:16: error: candidate is: static casa::Int casa::HostInfo::numCPUs(bool)
       static Int numCPUs(bool use_aipsrc=false);
                  ^~~~~~~
  /«PKGBUILDDIR»/casa/OS/HostInfo.cc:260:11: error: prototype for 'ptrdiff_t casa::HostInfo::memoryTotal()' does not match any in class 'casa::HostInfo'
   ptrdiff_t HostInfo::memoryTotal( ) { return -1; }
             ^~~~~~~~
  In file included from /«PKGBUILDDIR»/casa/OS/HostInfo.cc:30:0:
  /«PKGBUILDDIR»/casacore/casa/OS/HostInfo.h:121:22: error: candidate is: static ptrdiff_t casa::HostInfo::memoryTotal(bool)
       static ptrdiff_t memoryTotal(bool use_aipsrc=false);
                        ^~~~~~~~~~~

AFAICT, the issue is that, on these architectures, g++ in strict
-std=c++11 mode doesn't predefine __linux, just __linux__, so
aipsenv.h leaves AIPS_LINUX undefined and HostInfo.cc falls back on
stubs that don't match HostInfo.h's prototypes.  (FWIW, there's no
such problem in -std=gnu++11 mode.)

Could you please take a look?

Thanks!



More information about the Debian-astro-maintainers mailing list