Jon Trulson <j...@radscan.com> writes:

>
> That looks like the compiler can't tell the difference between a const
> and non-const definition.  Perhaps you need to define:
>
> -DSP_VOLATILE=volatile -DSP_CONST=const
>
> for your architecture in programs/nsgmls/Imakefile like Linux and BSD.
>
> You might look an see what else linux/bsd does there and see if any of
> that applies for Sun.
>
> -jon
>
>

Nah.  The issue is traceable back to Ptr.C and Ptr.h.  Stripping out
preprocessor #if noise, the generated entmgr_inst.C tries to do this:

---
  template class Ptr<Origin>;
  template class ConstPtr<Origin>;
---

class Ptr defines and implements a 'clear()' method.
class ConstPtr derives from Ptr, and does this:

---
  using Ptr<T>::clear;
---

which GCC (4.9) is fine with, but SunCC chokes on with the
aforementioned error. I'm not familiar enough with the C++ standard
(heh) to know whether GCC is lenient or SunCC is out of compliance.  I
also don't understand why some classes (e.g. Origin) are a problem,
while others (e.g. InputSourceOrigin) are not... nor why ::clear causes
trouble, but ::isNull does not.  Finally, I don't understand why
removing these instantiation lines causes no errors, unless they aren't
actually necessary (in which case, why are they there...?).

I tried twiddling a number of CXXOPTIONS; none of them helped.


I'm digging into this deeper, but digesting this type of C++ code is
slow-going for me.


Ulrich, this code compiles fine for you with SunStudio?  It sounds like
you've been getting clean builds, yet this is another issue that I've
had for years...

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to