File: workround_armhf_compiler_bug.patch

package info (click to toggle)
starlink-ast 9.2.10%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 27,784 kB
  • sloc: ansic: 190,153; sh: 11,451; makefile: 759; perl: 171
file content (35 lines) | stat: -rw-r--r-- 1,203 bytes parent folder | download | duplicates (3)
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: Ole Streicher <olebole@debian.org>
Date: Tue, 5 Jul 2016 15:13:46 +0200
Subject: Work around a weird optimization bug in armhf

Without this patch, compilation on armhf fails with

```
/tmp/ccJsRMs3.s: Assembler messages:
/tmp/ccJsRMs3.s:21403: Warning: base register written back, and overlaps one of transfer registers
/tmp/ccJsRMs3.s:28133: Error: registers may not be the same -- `str r3,[r3],#4'
/tmp/ccJsRMs3.s:28971: Warning: base register written back, and overlaps one of transfer registers
```

on gcc-4.9.4. See
https://buildd.debian.org/status/fetch.php?pkg=starlink-ast&arch=armhf&ver=8.0.2%2Bdfsg-1&stamp=1414223014
as example.

The error appears with MAKE_MASK(F, float), while the warnings are
with MAKE_MASK(D, double) and MAKE_MASK(LD, long double).
---
 src/region.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/region.c b/src/region.c
index 5586041..f7edcef 100644
--- a/src/region.c
+++ b/src/region.c
@@ -279,6 +279,7 @@ f     - AST_SHOWMESH: Display a mesh of points on the surface of a Region
 *     they should usually extend astSimplify and astRegCentre.
 
 */
+#pragma GCC optimize ("no-expensive-optimizations")
 
 /* Module Macros. */
 /* ============== */