[Rd] Compilation failure on Solaris: any advice?

From: Jon Clayden <jon.clayden_at_gmail.com>
Date: Mon, 03 Dec 2012 17:28:32 +0000


Dear all,

The current version of my RNiftyReg package is failing to compile on CRAN's Solaris testbed, but I don't have access to a Solaris system to debug on, and Googling the error hasn't been very helpful. The error is

CC -library=stlport4 -I/home/ripley/R/cc/include -DNDEBUG -DNDEBUG -DRNIFTYREG -I/usr/local/include -KPIC -O -xlibmil -xtarget=native -nofstore -c niftyreg.cpp -o niftyreg.o
"_reg_f3d_sym.cpp", line 25: Error: reg_f3d may not have a type qualifier.
"niftyreg.cpp", line 527: Where: While instantiating
"reg_f3d_sym<double>::reg_f3d_sym(int, int)".
"niftyreg.cpp", line 527: Where: Instantiated from non-template code.
"_reg_f3d_sym.cpp", line 26: Error: reg_f3d<T> cannot be initialized
in a constructor.
"niftyreg.cpp", line 527: Where: While instantiating
"reg_f3d_sym<double>::reg_f3d_sym(int, int)".
"niftyreg.cpp", line 527: Where: Instantiated from non-template code.
"_reg_f3d_sym.cpp", line 26: Error: Could not find
reg_f3d<double>::reg_f3d() to initialize base class.
"niftyreg.cpp", line 527: Where: While instantiating
"reg_f3d_sym<double>::reg_f3d_sym(int, int)".
"niftyreg.cpp", line 527: Where: Instantiated from non-template code.
3 Error(s) detected.
*** Error code 2

make: Fatal error: Command failed for target `niftyreg.o'

(Full log at [1].) The relevant part of the source is a C++ class constructor, part of the library that my package interfaces to:

template <class T>
reg_f3d_sym<T>::reg_f3d_sym(int refTimePoint,int floTimePoint)

    :reg_f3d<T>::reg_f3d(refTimePoint,floTimePoint) {

    this->executableName=(char *)"NiftyReg F3D SYM";

    this->backwardControlPointGrid=NULL;
    this->backwardWarped=NULL;
    this->backwardWarpedGradientImage=NULL;
    this->backwardDeformationFieldImage=NULL;
    this->backwardVoxelBasedMeasureGradientImage=NULL;
    this->backwardNodeBasedGradientImage=NULL;

    this->backwardBestControlPointPosition=NULL;
    this->backwardConjugateG=NULL;
    this->backwardConjugateH=NULL;

    this->backwardProbaJointHistogram=NULL;     this->backwardLogJointHistogram=NULL;

    this->floatingMaskImage=NULL;
    this->currentFloatingMask=NULL;
    this->floatingMaskPyramid=NULL;
    this->backwardActiveVoxelNumber=NULL;

    this->inverseConsistencyWeight=0.1;

#ifndef NDEBUG

    printf("[NiftyReg DEBUG] reg_f3d_sym constructor called\n"); #endif
}

The error does not occur on any Windows, Linux or OS X system which I have access to, so this would seem to be an issue relating to the Solaris compiler toolchain in particular. Can anyone shed any light on it, please?

Thanks in advance,
Jon

--
[1]
http://www.r-project.org/nosvn/R.check/r-patched-solaris-x86/RNiftyReg-00install.html

	[[alternative HTML version deleted]]

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Mon 03 Dec 2012 - 17:32:02 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 05 Dec 2012 - 21:12:52 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive