[I'm not subscribed to the aspell-devel list, so please Cc: me on any responses]
I've run into a compile error when using the Tru64 C++ compiler with the last few versions of aspell I've tried (up to and including 0.50.5), and today I finally spent some time to try figure out what the problem is. (I'm pretty weak in C++, so I get easily discouraged by error messages like the ones from this problem... ;-) ). System: Tru64 UNIX 5.1b Compiler: vendor cxx Compaq C++ V6.5-039 for Compaq Tru64 UNIX V5.1B (Rev. 2650) Compiler Driver V6.5-039 (cxx) cxx Driver CXXFLAGS: include at least -std gnu -D__USE_STD_IOSTREAM (without those, there are additional problems) Problem: config.cpp fails with errors like these: cxx: Error: config.cpp, line 413: more than one user-defined conversion from "acommon::PosibErr<acommon::String>" to "acommon::String" applies: function "acommon::PosibErr<Ret>::operator const Ret &() const [with Ret=acommon::String]" function "acommon::String::String(const acommon::PosibErr<acommon::String> &)" String s1 = retrieve(replace); ------------------------^ cxx: Error: config.cpp, line 414: more than one user-defined conversion from "acommon::PosibErr<acommon::String>" to "acommon::String" applies: function "acommon::PosibErr<Ret>::operator const Ret &() const [with Ret=acommon::String]" function "acommon::String::String(const acommon::PosibErr<acommon::String> &)" String s2 = retrieve(second); ------------------------^ and similar errors from lines 417, 420, 426, 427, and 775. Doing some Googling, I turned up: http://www.mail-archive.com/[EMAIL PROTECTED]/msg00109.html which seemed really close, but Kevin's patch was already included in the source, so something else was needed. It turns out that the #ifdef for __SUNPRO_CC is also the right move for Tru64's C++ compiler. With the following patch, all of the source files compile. I'm running into a weird linking error that I think may be a libtool problem (it's not even attempting to create the libaspell.so.15.0.3, but it is creating the symlinks that point to it), so I haven't yet been able to test anything. There are also several warnings (most of them pretty harmless but easy to fix, the remainder worth looking at), and I'll send along patches for the ones I know how to fix when I have time (next week). Thanks! Tim diff -ur aspell-0.50.5.orig/common/posib_err.hpp aspell-0.50.5/common/posib_err.hpp --- aspell-0.50.5.orig/common/posib_err.hpp 2004-01-30 18:58:52.000000000 -0600 +++ aspell-0.50.5/common/posib_err.hpp 2004-03-31 17:29:32.000000000 -0600 @@ -201,7 +201,9 @@ // // // -#ifndef __SUNPRO_CC +#if !defined(__SUNPRO_CC) && !defined(__DECCXX) + // This causes a conflict with the copy constructor for both the + // Sun and Tru64 C++ compilers inline String::String(const PosibErr<String> & other) : std::string(other.data) {} #endif diff -ur aspell-0.50.5.orig/common/string.hpp aspell-0.50.5/common/string.hpp --- aspell-0.50.5.orig/common/string.hpp 2004-01-30 18:59:45.000000000 -0600 +++ aspell-0.50.5/common/string.hpp 2004-03-31 17:28:35.000000000 -0600 @@ -28,8 +28,9 @@ String(ParmString s) : std::string(s) {} String(const std::string & s) : std::string(s) {} String(const String & other) : std::string(other) {} -#ifndef __SUNPRO_CC - // This causes a conflict with the copy constructor on Suns comp +#if !defined(__SUNPRO_CC) && !defined(__DECCXX) + // This causes a conflict with the copy constructor for both the + // Sun and Tru64 C++ compilers inline String(const PosibErr<String> & other); #endif String & operator= (const char * s) { -- Tim Mooney [EMAIL PROTECTED] Information Technology Services (701) 231-1076 (Voice) Room 242-J6, IACC Building (701) 231-8541 (Fax) North Dakota State University, Fargo, ND 58105-5164 _______________________________________________ Aspell-devel mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/aspell-devel