[packages/boost] - cleanup junk in gcc flags - updated x32 context patch
baggins
baggins at pld-linux.org
Sun Jun 7 11:56:37 CEST 2015
commit bfed7e7002fb93c42cad82970861e66ea56f2606
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun Jun 7 11:55:56 2015 +0200
- cleanup junk in gcc flags
- updated x32 context patch
boost-clean-gcc-flags.patch | 59 ++++++++++++++++++++++++++++
boost-x32-context.patch | 93 +++++++++++----------------------------------
boost.spec | 20 ++--------
3 files changed, 86 insertions(+), 86 deletions(-)
---
diff --git a/boost.spec b/boost.spec
index 239e13e..35ee477 100644
--- a/boost.spec
+++ b/boost.spec
@@ -20,6 +20,7 @@ Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
# Source0-md5: b8839650e61e9c1c0a89f371dd475546
Patch0: %{name}-link.patch
Patch1: %{name}-x32-context.patch
+Patch2: %{name}-clean-gcc-flags.patch
# FC Patches:
# https://svn.boost.org/trac/boost/ticket/5637
Patch203: %{name}-1.54.0-mpl-print.patch
@@ -463,7 +464,8 @@ Dokumentacja dla biblioteki Boost C++.
%prep
%setup -q -n %{name}_%{fver}
%patch0 -p1
-#patch1 -p0
+%patch1 -p1
+%patch2 -p1
%patch203 -p0
%patch211 -p1
@@ -472,18 +474,8 @@ Dokumentacja dla biblioteki Boost C++.
%patch221 -p1
%patch222 -p1
-# - don't know how to pass it through (b)jam -s (no way?)
-# due to oversophisticated build flags system.
-# - pass -fPIC due to <shared-linkable> removal.
-%{__sed} -i "s/<optimization>speed : -O3/<optimization>speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/src/tools/gcc.jam
-
-# cleanup -g switch to avoid override debuginfocflags.
-%{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/src/tools/gcc.jam
-# link against shared expat library.
-#%{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
-
cat << EOF > tools/build/src/user-config.jam
-using gcc : %{cxx_version} : %{__cxx} ;
+using gcc : %{cxx_version} : %{__cxx} : <cflags>"%{rpmcflags} -fPIC" <cxxflags>"%{rpmcxxflags} -fPIC" <linkflags>"%{rpmldflags}" ;
EOF
# cleanup backups after patching
@@ -498,10 +490,6 @@ ICU_PATH=%{_prefix} \
-without-libraries=python
./b2 \
-%ifarch x32
- --without-context \
- --without-coroutine \
-%endif
-d2 --toolset=gcc \
variant=release \
debug-symbols=on \
diff --git a/boost-clean-gcc-flags.patch b/boost-clean-gcc-flags.patch
new file mode 100644
index 0000000..d0d52dc
--- /dev/null
+++ b/boost-clean-gcc-flags.patch
@@ -0,0 +1,59 @@
+--- boost_1_58_0/tools/build/src/tools/gcc.jam~ 2015-06-07 11:33:34.000000000 +0200
++++ boost_1_58_0/tools/build/src/tools/gcc.jam 2015-06-07 11:38:59.720016555 +0200
+@@ -366,9 +366,9 @@
+ toolset.flags gcc.compile PCH_FILE <pch>on : <pch-file> ;
+
+ # Declare flags and action for compilation.
+-toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
+-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
+-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
++toolset.flags gcc.compile OPTIONS <optimization>off : ;
++toolset.flags gcc.compile OPTIONS <optimization>speed : ;
++toolset.flags gcc.compile OPTIONS <optimization>space : ;
+
+ toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
+ toolset.flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
+@@ -379,8 +379,8 @@
+ toolset.flags gcc.compile OPTIONS <warnings>all : -Wall -pedantic ;
+ toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : -Werror ;
+
+-toolset.flags gcc.compile OPTIONS <debug-symbols>on : -g ;
+-toolset.flags gcc.compile OPTIONS <profiling>on : -pg ;
++toolset.flags gcc.compile OPTIONS <debug-symbols>on : ;
++toolset.flags gcc.compile OPTIONS <profiling>on : ;
+
+ toolset.flags gcc.compile.c++ OPTIONS <rtti>off : -fno-rtti ;
+ toolset.flags gcc.compile.c++ OPTIONS <exception-handling>off : -fno-exceptions ;
+@@ -448,23 +448,6 @@
+ option = -mlp64 ;
+ }
+ }
+- else
+- {
+- local arch = [ feature.get-values architecture : $(properties) ] ;
+- if $(arch) != arm
+- {
+- if $(model) = 32
+- {
+- option = -m32 ;
+- }
+- else if $(model) = 64
+- {
+- option = -m64 ;
+- }
+- }
+- # For darwin, the model can be 32_64. darwin.jam will handle that
+- # on its own.
+- }
+ OPTIONS on $(targets) += $(option) ;
+ }
+ }
+@@ -1073,7 +1056,7 @@
+ # x86 and compatible
+ # The 'native' option appeared in gcc 4.2 so we cannot safely use it as default.
+ # Use i686 instead for 32-bit.
+-toolset.flags gcc OPTIONS <architecture>x86/<address-model>32/<instruction-set> : -march=i686 ;
++toolset.flags gcc OPTIONS <architecture>x86/<address-model>32/<instruction-set> : ;
+ cpu-flags gcc OPTIONS : x86 : native : -march=native ;
+ cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ;
+ cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ;
diff --git a/boost-x32-context.patch b/boost-x32-context.patch
index f3f69c8..734165f 100644
--- a/boost-x32-context.patch
+++ b/boost-x32-context.patch
@@ -1,85 +1,38 @@
-Index: libs/context/src/asm/jump_x86_64_sysv_elf_gas.S
-===================================================================
---- libs/context/src/asm/jump_x86_64_sysv_elf_gas.S (revision 86799)
-+++ libs/context/src/asm/jump_x86_64_sysv_elf_gas.S (working copy)
-@@ -38,6 +38,12 @@
+--- boost_1_58_0/libs/context/src/asm/jump_i386_sysv_elf_gas.S
++++ boost_1_58_0/libs/context/src/asm/jump_i386_sysv_elf_gas.S
+@@ -17,6 +17,10 @@
* *
- * **************************************************************************************/
+ ****************************************************************************************/
-+#ifdef __ILP32__
-+# define SIZEOF_FCONTEXT_T 0x50
++#ifdef __x86_64__
++#include "jump_x86_64_sysv_elf_gas.S"
+#else
-+# define SIZEOF_FCONTEXT_T 0x58
-+#endif
+
.text
.globl jump_fcontext
- .type jump_fcontext, at function
-@@ -53,11 +59,11 @@ jump_fcontext:
- cmp $0, %rcx
- je 1f
-
-- stmxcsr 0x50(%rdi) /* save MMX control and status word */
-- fnstcw 0x54(%rdi) /* save x87 control word */
-+ stmxcsr (SIZEOF_FCONTEXT_T - 8)(%rdi) /* save MMX control and status word */
-+ fnstcw (SIZEOF_FCONTEXT_T - 4)(%rdi) /* save x87 control word */
+ .align 2
+@@ -88,3 +92,5 @@
-- ldmxcsr 0x50(%rsi) /* restore MMX control and status word */
-- fldcw 0x54(%rsi) /* restore x87 control word */
-+ ldmxcsr (SIZEOF_FCONTEXT_T - 8)(%rsi) /* restore MMX control and status word */
-+ fldcw (SIZEOF_FCONTEXT_T - 4)(%rsi) /* restore x87 control word */
- 1:
-
- leaq 0x8(%rsp), %rax /* exclude the return address and save as stack pointer */
-Index: libs/context/src/asm/make_x86_64_sysv_elf_gas.S
-===================================================================
---- libs/context/src/asm/make_x86_64_sysv_elf_gas.S (revision 86799)
-+++ libs/context/src/asm/make_x86_64_sysv_elf_gas.S (working copy)
-@@ -38,26 +38,43 @@
+ /* Mark that we don't need executable stack. */
+ .section .note.GNU-stack,"",%progbits
++
++#endif
+--- boost_1_58_0/libs/context/src/asm/make_i386_sysv_elf_gas.S
++++ boost_1_58_0/libs/context/src/asm/make_i386_sysv_elf_gas.S
+@@ -17,6 +17,10 @@
* *
- * **************************************************************************************/
+ ****************************************************************************************/
-+#ifdef __ILP32__
-+# define SIZEOF_FCONTEXT_T 0x50
++#ifdef __x86_64__
++#include "make_x86_64_sysv_elf_gas.S"
+#else
-+# define SIZEOF_FCONTEXT_T 0x58
-+#endif
+
.text
.globl make_fcontext
- .type make_fcontext, at function
- .align 16
--make_fcontext:
-- leaq -0x58(%rdi), %rax /* reserve space for fcontext_t at top of context stack */
-+make_fcontext: // (rax, rsi, rdx)
-+ leaq -SIZEOF_FCONTEXT_T(%rdi), %rax /* reserve space for fcontext_t at top of context stack */
-
- /* shift address in RAX to lower 16 byte boundary */
- /* == pointer to fcontext_t and address of context stack */
- andq $-16, %rax
+ .align 2
+@@ -75,3 +79,5 @@
-+#ifdef __ILP32__
-+ mov %edi, 0x40(%rax) /* save address of context stack pointer (base) in fcontext_t */
-+ mov %esi, 0x44(%rax) /* save context stack size in fcontext_t */
-+ mov %edx, 0x38(%rax) /* save address of context function in fcontext_t */
-+#else
- movq %rdi, 0x40(%rax) /* save address of context stack pointer (base) in fcontext_t */
- movq %rsi, 0x48(%rax) /* save context stack size in fcontext_t */
- movq %rdx, 0x38(%rax) /* save address of context function in fcontext_t */
-+#endif
-
-- stmxcsr 0x50(%rax) /* save MMX control and status word */
-- fnstcw 0x54(%rax) /* save x87 control word */
-+ stmxcsr (SIZEOF_FCONTEXT_T - 8)(%rax) /* save MMX control and status word */
-+ fnstcw (SIZEOF_FCONTEXT_T - 4)(%rax) /* save x87 control word */
-
-+#ifdef __ILP32__
-+ leaq -0x10(%rax), %rdx /* reserve space for the return address on context stack, (RSP - 0x8) % 16 == 0 */
-+ mov %edx, 0x30(%rax) /* save address in RDX as stack pointer for context function */
-+#else
- leaq -0x8(%rax), %rdx /* reserve space for the return address on context stack, (RSP - 0x8) % 16 == 0 */
- movq %rdx, 0x30(%rax) /* save address in RDX as stack pointer for context function */
+ /* Mark that we don't need executable stack. */
+ .section .note.GNU-stack,"",%progbits
++
+#endif
-
- leaq finish(%rip), %rcx /* compute abs address of label finish */
- movq %rcx, (%rdx) /* save address of finish as return address for context function */
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/boost.git/commitdiff/bfed7e7002fb93c42cad82970861e66ea56f2606
More information about the pld-cvs-commit
mailing list