[Cmake-commits] CMake branch, next, updated. v2.8.10-641-g3a39804

Brad King brad.king at kitware.com
Wed Oct 31 16:30:34 EDT 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  3a39804fef4ff652a6dc7e90f2fad86a8eb0cbe8 (commit)
       via  e496c5402193ee26fa245c1970f87d795f56bdab (commit)
      from  698d8779ee06b2f973fd9938987e59bc11cf22b4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a39804fef4ff652a6dc7e90f2fad86a8eb0cbe8
commit 3a39804fef4ff652a6dc7e90f2fad86a8eb0cbe8
Merge: 698d877 e496c54
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Oct 31 16:30:31 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Oct 31 16:30:31 2012 -0400

    Merge topic 'parisc-default-flags' into next
    
    e496c54 Linux/PA-RISC: Link with --unique=.text.* to help binutils


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e496c5402193ee26fa245c1970f87d795f56bdab
commit e496c5402193ee26fa245c1970f87d795f56bdab
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Sun Oct 28 23:23:29 2012 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Oct 31 16:28:51 2012 -0400

    Linux/PA-RISC: Link with --unique=.text.* to help binutils
    
    There is a binutils bug that leads to errors like this:
    
    /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.6.3/../../../../hppa2.0-unknown-linux-gnu/bin/ld: libCMakeLib.a(cmTarget.cxx.o)(.text+0x12084): cannot reach 00001d28__ZNSspLEPKc@@GLIBCXX_3.4+0, recompile with -ffunction-sections
    /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.6.3/../../../../hppa2.0-unknown-linux-gnu/bin/ld: libCMakeLib.a(cmTarget.cxx.o)(.text+0x12084): cannot handle R_PARISC_PCREL17F for std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@@GLIBCXX_3.4
    /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.6.3/../../../../hppa2.0-unknown-linux-gnu/bin/ld: final link failed: Bad value
    
    Until someone finds out what needs to be fixed in binutils this allows anyone
    to compile a working CMake even in debug mode.

diff --git a/CompileFlags.cmake b/CompileFlags.cmake
index b2044e4..20f5dec 100644
--- a/CompileFlags.cmake
+++ b/CompileFlags.cmake
@@ -62,3 +62,9 @@ endif ()
 if (CMAKE_ANSI_CFLAGS)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}")
 endif ()
+
+# avoid binutils problem with large binaries, e.g. when building CMake in debug mode
+# See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50230
+if (CMAKE_SYSTEM_NAME STREQUAL Linux AND CMAKE_SYSTEM_PROCESSOR STREQUAL parisc)
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--unique=.text.*")
+endif ()
diff --git a/bootstrap b/bootstrap
index 713f01f..a0529f2 100755
--- a/bootstrap
+++ b/bootstrap
@@ -93,6 +93,19 @@ else
   cmake_system_openvms=false
 fi
 
+# Determine whether this is Linux
+if echo "${cmake_system}" | grep Linux >/dev/null 2>&1; then
+  cmake_system_linux=true
+  # find out if it is a HP PA-RISC machine
+  if uname -m | grep parisc >/dev/null 2>&1; then
+    cmake_machine_parisc=true
+  else
+    cmake_machine_parisc=false
+  fi
+else
+  cmake_system_linux=false
+fi
+
 # Choose the generator to use for bootstrapping.
 if ${cmake_system_mingw}; then
   # Bootstrapping from an MSYS prompt.
@@ -678,6 +691,14 @@ if ${cmake_system_haiku}; then
   cmake_ld_flags="${LDFLAGS} -lroot -lbe"
 fi
 
+if ${cmake_system_linux}; then
+  # avoid binutils problem with large binaries, e.g. when building CMake in debug mode
+  # See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50230
+  if ${cmake_machine_parisc}; then
+    cmake_ld_flags="${LDFLAGS} -Wl,--unique=.text.*"
+  fi
+fi
+
 #-----------------------------------------------------------------------------
 # Detect known toolchains on some platforms.
 cmake_toolchains=''

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list