summaryrefslogtreecommitdiff
blob: 07d648e6ea8b557e63b378f1d2dffce39766a655 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From: Rolf Eike Beer <eike@sf-mail.de>
Date: Thu, 12 Sep 2013 18:59:11 +0000 (+0200)
Subject: bootstrap: try better workaround for builds on Linux/HPPA
X-Git-Tag: v2.8.12~21^2
X-Git-Url: http://cmake.org/gitweb?p=cmake.git;a=commitdiff_plain;h=ca63bb1001dea6929e194ac15921fdeb7d434dcd

bootstrap: try better workaround for builds on Linux/HPPA

The workaround currently present works fine without -O or with -O1, but fails
with -Os or -O2 and higher. Using -O2 is common e.g. in Gentoo, as resulting in
bugs like this:

https://bugs.gentoo.org/473276

Prevent the workaround for higher optimization levels to make bootstrapping
more likely to succeed.

This is still a workaround as ld still keeps crashing in some situations.
---

diff --git a/bootstrap b/bootstrap
index fb4a0a0..9784d5d 100755
--- a/bootstrap
+++ b/bootstrap
@@ -692,7 +692,10 @@ 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.*"
+    # if -O[s23] is given the effect is inverted, so do not use the flag then
+    if [ "`echo "${CXXFLAGS}" | sed -r '/^(.* )?(-O[s234])( .*)?$/s/.*/-Os/'`" != "-Os" ]; then
+      cmake_ld_flags="${LDFLAGS} -Wl,--unique=.text.*"
+    fi
   fi
 fi