[Cmake-commits] CMake branch, next, updated. v3.1.0-rc1-401-ge459c5b

Chuck Atkins chuck.atkins at kitware.com
Thu Nov 6 19:34:03 EST 2014


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  e459c5bc57f9ffc784a67ea04d207c1fe0d2f301 (commit)
       via  4ad38b3086a357647cc172662b9e5a1929d62d13 (commit)
      from  84af91f9e53e6f0f5a091e357542b5a255650183 (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=e459c5bc57f9ffc784a67ea04d207c1fe0d2f301
commit e459c5bc57f9ffc784a67ea04d207c1fe0d2f301
Merge: 84af91f 4ad38b3
Author:     Chuck Atkins <chuck.atkins at kitware.com>
AuthorDate: Thu Nov 6 19:34:02 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Nov 6 19:34:02 2014 -0500

    Merge topic 'fix-gcc-hppa' into next
    
    4ad38b30 Workaround for short jump tables on PA-RISC.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ad38b3086a357647cc172662b9e5a1929d62d13
commit 4ad38b3086a357647cc172662b9e5a1929d62d13
Author:     Chuck Atkins <chuck.atkins at kitware.com>
AuthorDate: Tue Nov 4 11:01:56 2014 -0500
Commit:     Chuck Atkins <chuck.atkins at kitware.com>
CommitDate: Thu Nov 6 19:33:40 2014 -0500

    Workaround for short jump tables on PA-RISC.
    
    The PA-RISC architecture requires special options for GCC to prevent
    linker errors when libraries reach a certain size and / or complexity.
    See http://mraw.org/blog/2007/10/10/Linking_on_hppa and gcc
    documentation on -mlong-calls.

diff --git a/CompileFlags.cmake b/CompileFlags.cmake
index 5d86876..e7beb3f 100644
--- a/CompileFlags.cmake
+++ b/CompileFlags.cmake
@@ -65,6 +65,16 @@ if(CMAKE_SYSTEM_NAME MATCHES "HP-UX" AND CMAKE_CXX_COMPILER_ID MATCHES "HP")
   endif()
 endif()
 
+# Workaround for short jump tables on PA-RISC
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "^parisc")
+  if(CMAKE_COMPILER_IS_GNUC)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlong-calls")
+  endif()
+  if(CMAKE_COMPILER_IS_GNUCXX)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlong-calls")
+  endif()
+endif()
+
 # use the ansi CXX compile flag for building cmake
 if (CMAKE_ANSI_CXXFLAGS)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}")
@@ -74,10 +84,4 @@ 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 ()
-
 include (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)
diff --git a/bootstrap b/bootstrap
index b09023d..94bed0e 100755
--- a/bootstrap
+++ b/bootstrap
@@ -122,17 +122,32 @@ else
   cmake_system_openvms=false
 fi
 
+# Determine whether this is HP-UX
+if echo "${cmake_system}" | grep HP-UX >/dev/null 2>&1; then
+  cmake_system_hpux=true
+else
+  cmake_system_hpux=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
+else
+  cmake_system_linux=false
+ fi
+
+# Determine whether this is a PA-RISC machine
+# This only works for Linux or HP-UX, not other PA-RISC OSs (BSD maybe?). Also
+# may falsely detect parisc on HP-UX m68k
+cmake_machine_parisc=false
+if ${cmake_system_linux}; then
   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
+elif ${cmake_system_hpux}; then
+  if !(uname -m | grep ia64 >/dev/null 2>&1); then
+    cmake_machine_parisc=true
+  fi
 fi
 
 # Choose the generator to use for bootstrapping.
@@ -744,11 +759,13 @@ 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._*"
+# Workaround for short jump tables on PA-RISC
+if ${cmake_machine_parisc}; then
+  if ${cmake_c_compiler_is_gnu}; then
+    cmake_c_flags="${CFLAGS} -mlong-calls"
+  fi
+  if ${cmake_cxx_compiler_is_gnu}; then
+    cmake_cxx_flags="${CXXFLAGS} -mlong-calls"
   fi
 fi
 

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list