summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-06-10 19:18:21 (GMT)
committerBrad King <brad.king@kitware.com>2010-06-10 19:22:40 (GMT)
commitf20d091a2c5b61eeedfd604530f4554518d80d3f (patch)
tree062730d6fbaca94c3301a3ea67e1ae6fd335fbe0
parent3f929475246a3d89ca5d4c5db301d1c4705d0d69 (diff)
downloadCMake-f20d091a2c5b61eeedfd604530f4554518d80d3f.zip
CMake-f20d091a2c5b61eeedfd604530f4554518d80d3f.tar.gz
CMake-f20d091a2c5b61eeedfd604530f4554518d80d3f.tar.bz2
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.
-rw-r--r--Source/CMakeLists.txt1
-rw-r--r--Source/cmStandardIncludes.cxx16
-rw-r--r--Source/cmStandardIncludes.h3
-rwxr-xr-xbootstrap1
4 files changed, 20 insertions, 1 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index dc73cec..dbbb558 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -111,6 +111,7 @@ ENDIF(CMAKE_USE_ELF_PARSER)
# Sources for CMakeLib
#
SET(SRCS
+ cmStandardIncludes.cxx
cmBootstrapCommands.cxx
cmCacheManager.cxx
cmCacheManager.h
diff --git a/Source/cmStandardIncludes.cxx b/Source/cmStandardIncludes.cxx
new file mode 100644
index 0000000..a4bdb2e
--- /dev/null
+++ b/Source/cmStandardIncludes.cxx
@@ -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
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index 9b9cb3b..e8decbb 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -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&);
diff --git a/bootstrap b/bootstrap
index c018b3c..1687776 100755
--- a/bootstrap
+++ b/bootstrap
@@ -166,6 +166,7 @@ CMAKE_UNUSED_SOURCES="\
"
CMAKE_CXX_SOURCES="\
+ cmStandardIncludes \
cmake \
cmakemain \
cmakewizard \