Tru64: Place cmOStringStream vtable uniquely (#10541)

GCC places the vtable in the object implementing the first non-pure,
non-inline virtual method.  Since the symbol is not weak on Tru64, make
the location unique by putting the destructor in a single object file.
This commit is contained in:
Brad King 2010-06-10 15:18:21 -04:00
parent 3f92947524
commit f20d091a2c
4 changed files with 20 additions and 1 deletions

View File

@ -111,6 +111,7 @@ ENDIF(CMAKE_USE_ELF_PARSER)
# Sources for CMakeLib # Sources for CMakeLib
# #
SET(SRCS SET(SRCS
cmStandardIncludes.cxx
cmBootstrapCommands.cxx cmBootstrapCommands.cxx
cmCacheManager.cxx cmCacheManager.cxx
cmCacheManager.h cmCacheManager.h

View File

@ -0,0 +1,16 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2010 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmStandardIncludes.h"
#if !defined(CMAKE_NO_ANSI_STRING_STREAM)
cmOStringStream::cmOStringStream() {}
cmOStringStream::~cmOStringStream() {}
#endif

View File

@ -241,7 +241,8 @@ typedef cmsys::String cmStdString;
class cmOStringStream: public std::ostringstream class cmOStringStream: public std::ostringstream
{ {
public: public:
cmOStringStream() {} cmOStringStream();
~cmOStringStream();
private: private:
cmOStringStream(const cmOStringStream&); cmOStringStream(const cmOStringStream&);
void operator=(const cmOStringStream&); void operator=(const cmOStringStream&);

View File

@ -166,6 +166,7 @@ CMAKE_UNUSED_SOURCES="\
" "
CMAKE_CXX_SOURCES="\ CMAKE_CXX_SOURCES="\
cmStandardIncludes \
cmake \ cmake \
cmakemain \ cmakemain \
cmakewizard \ cmakewizard \