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
#
SET(SRCS
cmStandardIncludes.cxx
cmBootstrapCommands.cxx
cmCacheManager.cxx
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
{
public:
cmOStringStream() {}
cmOStringStream();
~cmOStringStream();
private:
cmOStringStream(const cmOStringStream&);
void operator=(const cmOStringStream&);

View File

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