- Apply upstream patch that fixes the ppc64 code in boost::context
(boost#8374): boost-fix_ppc64_asm.patch OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=101
This commit is contained in:
parent
a4b6095cc3
commit
ef9f1558cf
46
boost-fix_ppc64_asm.patch
Normal file
46
boost-fix_ppc64_asm.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From: Oliver Kowalke <olli@boost.org>
|
||||
Date: 2013-04-03 14:12:25+02:00
|
||||
Subject: Fix ppc64 assembler code in context
|
||||
Upstream: boost#8374
|
||||
|
||||
|
||||
Compiling libs/context/src/asm/make_ppc64_sysv_elf_gas.S failed with:
|
||||
|
||||
libs/context/src/asm/make_ppc64_sysv_elf_gas.S: Assembler messages:
|
||||
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:102: Error: operand out of range (59 is not between 0 and 31)
|
||||
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:108: Error: operand out of range (64 is not between 0 and 31)
|
||||
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:131: Error: syntax error; found @', expected ,'
|
||||
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:131: Error: junk at end of line: `@plt'
|
||||
|
||||
---
|
||||
libs/context/src/asm/make_ppc64_sysv_elf_gas.S | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: libs/context/src/asm/make_ppc64_sysv_elf_gas.S
|
||||
===================================================================
|
||||
--- libs/context/src/asm/make_ppc64_sysv_elf_gas.S.orig 2012-11-30 08:38:52.000000000 +0100
|
||||
+++ libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-04-03 14:10:43.651126381 +0200
|
||||
@@ -99,13 +99,13 @@ make_fcontext:
|
||||
|
||||
# call align_stack, R3 contains address at 16 byte boundary after return
|
||||
# == pointer to fcontext_t and address of context stack
|
||||
- rlwinm %r3, %r3, 0, 0, 59
|
||||
+ clrrdi %r3, %r3, 4
|
||||
|
||||
std %r0, 184(%r3) # save address of context stack (base) in fcontext_t
|
||||
std %r4, 192(%r3) # save context stack size in fcontext_t
|
||||
std %r5, 176(%r3) # save address of context function in fcontext_t
|
||||
|
||||
- subf %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers)
|
||||
+ subi %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers)
|
||||
std %r0, 152(%r3) # save the stack base
|
||||
|
||||
mflr %r0 # load LR
|
||||
@@ -128,5 +128,6 @@ finish:
|
||||
stwu %r1, -32(%r1) # allocate stack space, SP % 16 == 0
|
||||
|
||||
li %r3, 0 # set return value to zero
|
||||
- bl _exit@plt # exit application
|
||||
+ bl _exit # exit application
|
||||
+ nop
|
||||
.size .make_fcontext, .-.make_fcontext
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 3 14:20:58 CEST 2013 - pth@suse.de
|
||||
|
||||
- Apply upstream patch that fixes the ppc64 code in boost::context
|
||||
(boost#8374): boost-fix_ppc64_asm.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 22 10:36:57 UTC 2013 - idonmez@suse.com
|
||||
|
||||
|
@ -103,6 +103,8 @@ Patch2: boost-no_type_punning.patch
|
||||
Patch8: boost-no_segfault_in_Regex_filter.patch
|
||||
Patch20: boost-strict_aliasing.patch
|
||||
Patch50: boost-use_std_xml_catalog.patch
|
||||
#PATCH-FIX-UPSTREAM Fix erroneous assembler code for ppc64 [boost#8374]
|
||||
Patch51: boost-fix_ppc64_asm.patch
|
||||
Recommends: %{all_libs}
|
||||
|
||||
%define _docdir %{_datadir}/doc/packages/boost-%{version}
|
||||
@ -392,11 +394,9 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {}
|
||||
%patch1
|
||||
%patch2
|
||||
%patch8
|
||||
#%%patch9
|
||||
#%%patch19
|
||||
%patch20
|
||||
%patch50
|
||||
|
||||
%patch51
|
||||
#stupid build machinery copies .orig files
|
||||
find . -name \*.orig -exec rm {} +
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user