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!

Reply via email to