diff --git a/SOURCES/boost-1.66-build-s390x.patch b/SOURCES/boost-1.66-build-s390x.patch
deleted file mode 100644
index 2b64dbe..0000000
--- a/SOURCES/boost-1.66-build-s390x.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-
---- boost_1_66_0/boost/predef/architecture.h	2017-12-14 00:56:47.000000000 +0100
-+++ boost_1_66_0-git/boost/predef/architecture.h	2020-03-23 11:37:30.289735409 +0100
-@@ -21,6 +21,7 @@ http://www.boost.org/LICENSE_1_0.txt)
- #include <boost/predef/architecture/ppc.h>
- #include <boost/predef/architecture/pyramid.h>
- #include <boost/predef/architecture/rs6k.h>
-+#include <boost/predef/architecture/s390x.h>
- #include <boost/predef/architecture/sparc.h>
- #include <boost/predef/architecture/superh.h>
- #include <boost/predef/architecture/sys370.h>
---- boost_1_66_0/boost/predef/architecture/s390x.h	1970-01-01 01:00:00.000000000 +0100
-+++ boost_1_66_0-git/boost/predef/architecture/s390x.h	2020-03-23 11:37:48.519735409 +0100
-@@ -0,0 +1,42 @@
-+/*
-+Copyright Andreas Krebbel 2020
-+Distributed under the Boost Software License, Version 1.0.
-+(See accompanying file LICENSE_1_0.txt or copy at
-+http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+#ifndef BOOST_PREDEF_ARCHITECTURE_S390X_H
-+#define BOOST_PREDEF_ARCHITECTURE_S390X_H
-+
-+#include <boost/predef/version_number.h>
-+#include <boost/predef/make.h>
-+
-+/*`
-+[heading `BOOST_ARCH_S390X`]
-+
-+[@http://en.wikipedia.org/wiki/System/390 System/390] architecture.
-+
-+[table
-+    [[__predef_symbol__] [__predef_version__]]
-+
-+    [[`__s390x__`] [__predef_detection__]]
-+    ]
-+ */
-+
-+#define BOOST_ARCH_S390X BOOST_VERSION_NUMBER_NOT_AVAILABLE
-+
-+#if defined(__s390x__)
-+#   undef BOOST_ARCH_S390X
-+#   define BOOST_ARCH_S390X BOOST_VERSION_NUMBER_AVAILABLE
-+#endif
-+
-+#if BOOST_ARCH_S390X
-+#   define BOOST_ARCH_S390X_AVAILABLE
-+#endif
-+
-+#define BOOST_ARCH_S390X_NAME "IBM Z"
-+
-+#endif
-+
-+#include <boost/predef/detail/test.h>
-+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_S390X,BOOST_ARCH_S390X_NAME)
---- boost_1_66_0/boostcpp.jam	2017-12-14 00:56:35.000000000 +0100
-+++ boost_1_66_0-git/boostcpp.jam	2020-03-23 11:37:35.829735409 +0100
-@@ -678,7 +678,7 @@ rule address-model ( )
-     return <conditional>@boostcpp.deduce-address-model ;
- }
- 
--local deducable-architectures = arm mips1 power sparc x86 combined ;
-+local deducable-architectures = arm mips1 power s390x sparc x86 combined ;
- feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
- for a in $(deducable-architectures)
- {
-@@ -701,6 +701,10 @@ rule deduce-architecture ( properties *
-     {
-         result = power ;
-     }
-+    else if [ configure.builds /boost/architecture//s390x : $(filtered) : s390x ]
-+    {
-+        result = s390x ;
-+    }
-     else if [ configure.builds /boost/architecture//sparc : $(filtered) : sparc ]
-     {
-         result = sparc ;
---- boost_1_66_0/libs/config/checks/architecture/Jamroot.jam	2017-12-14 00:56:42.000000000 +0100
-+++ boost_1_66_0-git/libs/config/checks/architecture/Jamroot.jam	2020-03-23 11:37:35.829735409 +0100
-@@ -19,5 +19,6 @@ obj arm      : arm.cpp ;
- obj combined : combined.cpp ;
- obj mips1    : mips1.cpp ;
- obj power    : power.cpp ;
-+obj s390x    : s390x.cpp ;
- obj sparc    : sparc.cpp ;
- obj x86      : x86.cpp ;
---- boost_1_66_0/libs/config/checks/architecture/s390x.cpp	1970-01-01 01:00:00.000000000 +0100
-+++ boost_1_66_0-git/libs/config/checks/architecture/s390x.cpp	2020-03-23 11:37:35.829735409 +0100
-@@ -0,0 +1,11 @@
-+// s390x.cpp
-+//
-+// Copyright (c) 2020 Andreas Krebbel
-+//
-+// Distributed under the Boost Software License Version 1.0. (See
-+// accompanying file LICENSE_1_0.txt or copy at
-+// http://www.boost.org/LICENSE_1_0.txt)
-+
-+#if !defined(__s390x__)
-+#error "Not IBM Z"
-+#endif
---- boost_1_66_0/tools/build/src/tools/builtin.py	2017-12-14 00:56:50.000000000 +0100
-+++ boost_1_66_0-git/tools/build/src/tools/builtin.py	2020-03-23 11:37:35.829735409 +0100
-@@ -250,6 +250,9 @@ def register_globals ():
-         # ia64
-         'ia64',
- 
-+        # IBM Z
-+        's390x',
-+
-         # Sparc
-         'sparc',
- 
---- boost_1_66_0/tools/build/src/tools/features/architecture-feature.jam	2017-12-14 00:56:50.000000000 +0100
-+++ boost_1_66_0-git/tools/build/src/tools/features/architecture-feature.jam	2020-03-23 11:37:35.829735409 +0100
-@@ -15,6 +15,9 @@ feature.feature architecture
-         # ia64
-         ia64
- 
-+	# IBM Z
-+	s390x
-+
-         # Sparc
-         sparc
- 
diff --git a/SOURCES/boost-1.66-docu-update-architectures.patch b/SOURCES/boost-1.66-docu-update-architectures.patch
deleted file mode 100644
index ec87a4e..0000000
--- a/SOURCES/boost-1.66-docu-update-architectures.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From db13a7f7a5c2ca8da48ea364bc9998ccf0aa6184 Mon Sep 17 00:00:00 2001
-From: Andreas Krebbel <krebbel@linux.ibm.com>
-Date: Mon, 23 Mar 2020 09:07:32 +0100
-Subject: [PATCH 2/4] docu: update architectures
-
----
- doc/architectures.qbk | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/doc/architectures.qbk b/doc/architectures.qbk
-index 893c5b3..de6f55a 100644
---- a/libs/context/doc/architectures.qbk
-+++ b/libs/context/doc/architectures.qbk
-@@ -18,6 +18,7 @@ architectures:
-     [[mips1]         [O32|ELF]        [-]        [-]           [-]]
-     [[ppc32]         [SYSV|ELF,XCOFF] [-]        [SYSV|MACH-O] [-]]
-     [[ppc64]         [SYSV|ELF,XCOFF] [-]        [SYSV|MACH-O] [-]]
-+    [[s390x]         [SYSV|ELF]       [-]        [-]           [-]]
-     [[sparc]         [-]              [-]        [-]           [-]]
-     [[x86_64]        [SYSV,X32|ELF]   [MS|PE]    [SYSV|MACH-O] [-]]
- ]
--- 
-2.18.1
-
diff --git a/SOURCES/boost-1.66-fix-fcontext-routines.patch b/SOURCES/boost-1.66-fix-fcontext-routines.patch
deleted file mode 100644
index 30e9571..0000000
--- a/SOURCES/boost-1.66-fix-fcontext-routines.patch
+++ /dev/null
@@ -1,736 +0,0 @@
-From f60b86bddcf964f1a97df7a33aa36bc0160dba38 Mon Sep 17 00:00:00 2001
-From: Andreas Krebbel <krebbel@linux.ibm.com>
-Date: Mon, 23 Mar 2020 09:09:17 +0100
-Subject: [PATCH 4/4] IBM Z: Fix fcontext routines
-
----
- src/asm/jump_s390x_sysv_elf_gas.S  | 257 +++++++++++++++++------------
- src/asm/make_s390x_sysv_elf_gas.S  | 176 ++++++++++----------
- src/asm/ontop_s390x_sysv_elf_gas.S | 238 ++++++++++++++------------
- 3 files changed, 374 insertions(+), 297 deletions(-)
-
-diff --git a/src/asm/jump_s390x_sysv_elf_gas.S b/src/asm/jump_s390x_sysv_elf_gas.S
-index b2163cc..c2a578b 100644
---- a/libs/context/src/asm/jump_s390x_sysv_elf_gas.S
-+++ b/libs/context/src/asm/jump_s390x_sysv_elf_gas.S
-@@ -1,117 +1,156 @@
- /*******************************************************
--*                                                     *
--*  -------------------------------------------------  *
--*  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
--*  -------------------------------------------------  *
--*  |     0     |     8     |    16     |     24    |  *
--*  -------------------------------------------------  *
--*  |    R6     |    R7     |    R8     |    R9     |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
--*  -------------------------------------------------  *
--*  |     32    |    40     |     48    |     56    |  *
--*  -------------------------------------------------  *
--*  |    R10    |    R11    |     R12   |     R13   |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
--*  -------------------------------------------------  *
--*  |     64    |    72     |     80    |     88    |  *
--*  -------------------------------------------------  *
--*  |   R14/LR  |    R15    |     F1    |     F3    |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  24 |  25 |  26 |  27 |  28 | 29  |           |  *
--*  -------------------------------------------------  *
--*  |     96    |    104    |    112    |    120    |  *
--*  -------------------------------------------------  *
--*  |    F5     |    F7     |     PC    |           |  *
--*  -------------------------------------------------  *
--* *****************************************************/
--
--.file  "jump_s390x_sysv_elf_gas.S"
-+ *  -------------------------------------------------  *
-+ *  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
-+ *  -------------------------------------------------  *
-+ *  |     0     |     8     |    16     |    24     |  *
-+ *  -------------------------------------------------  *
-+ *  |   t.fctx  |   t.data  |    r2     |    r6     |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
-+ *  -------------------------------------------------  *
-+ *  |     32    |    40     |     48    |     56    |  *
-+ *  -------------------------------------------------  *
-+ *  |     r7    |     r8    |     r9    |    r10    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
-+ *  -------------------------------------------------  *
-+ *  |     64    |     72    |     80    |     88    |  *
-+ *  -------------------------------------------------  *
-+ *  |    r11    |    r12    |    r13    |    r14    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  24 |  25 |  26 |  27 |  28 | 29  |  30 |  31 |  *
-+ *  -------------------------------------------------  *
-+ *  |     96    |    104    |    112    |    120    |  *
-+ *  -------------------------------------------------  *
-+ *  |     f8    |     f9    |    f10    |    f11    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  32 |  33 |  34 |  35 |  36 |  37 |  38 |  39 |  *
-+ *  -------------------------------------------------  *
-+ *  |    128    |    136    |    144    |    152    |  *
-+ *  -------------------------------------------------  *
-+ *  |    f12    |    f13    |    f14    |    f15    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  40 |  41 |  42 |  43 |  44 |  45 |  46 |  47 |  *
-+ *  -------------------------------------------------  *
-+ *  |    160    |    168    |    176    |           |  *
-+ *  -------------------------------------------------  *
-+ *  |    fpc    |     pc    |           |           |  *
-+ *  -------------------------------------------------  *
-+ *******************************************************/
-+
- .text
--.align  4 # According to the sample code in the ELF ABI docs
--.global jump_fcontext
--.type   jump_fcontext, @function
--
--#define GR_OFFSET	0
--#define LR_OFFSET	64
--#define SP_OFFSET	72
--#define FP_OFFSET	80
--#define PC_OFFSET	112
--#define L_CTX		120
--#define L_STACKFRAME	120
-+.align	8
-+.global	jump_fcontext
-+.type	jump_fcontext, @function
-+
-+#define ARG_OFFSET         0
-+#define GR_OFFSET	   16
-+#define FP_OFFSET	   96
-+#define FPC_OFFSET	   160
-+#define PC_OFFSET	   168
-+#define CONTEXT_SIZE	   176
-+
-+#define REG_SAVE_AREA_SIZE 160
-+
-+/*
-+
-+typedef void*   fcontext_t;
-+
-+struct transfer_t {
-+   fcontext_t  fctx;
-+   void    *   data;
-+};
-+
-+transfer_t jump_fcontext( fcontext_t const to,
-+			  void * data);
-+
-+Incoming args
-+r2 - Hidden argument to the location where the return transfer_t needs to be returned
-+r3 - Context we want to switch to
-+r4 - Data pointer
-+
-+*/
- 
- jump_fcontext:
--    
--    # Reserved the space for stack to store the data of current context
--    # before we jump to the new context.
--    aghi %r15,-L_STACKFRAME
--
--    # save the registers to the stack
--    stmg %r6, %r15, GR_OFFSET(%r15)
--
--    # save the floating point registers
--    std  %f0,FP_OFFSET(%r15)
--    std  %f3,FP_OFFSET+8(%r15)
--    std  %f5,FP_OFFSET+16(%r15)
--    std  %f7,FP_OFFSET+24(%r15)
--
--    # Save LR as PC
--    stg  %r14,PC_OFFSET(%r15)
--
--    # Store the SP pointing to the old context-data into R0
--    lgr	 %r0,%r15
--
--    # Get the SP pointing to the new context-data
--    # Note: Since the return type of the jump_fcontext is struct whose
--    # size is more than 8. The compiler automatically passes the 
--    # address of the transfer_t where the data needs to store into R2.
--
--    # Hence the first param passed to the jump_fcontext which represent
--    # the fctx we want to switch to is present in R3
--    # R2 --> Address of the return transfer_t struct
--    # R3 --> Context we want to switch to
--    # R4 --> Data
--    lgr	%r15,%r3
--
--    # Load the registers with the data present in context-data of the
--    # context we are going to switch to
--    lmg	%r6, %r14, GR_OFFSET(%r15)
--
--    # Restore Floating point registers
--    ld	 %f1,FP_OFFSET(%r15)
--    ld	 %f3,FP_OFFSET+8(%r15)
--    ld	 %f5,FP_OFFSET+16(%r15)
--    ld	 %f7,FP_OFFSET+24(%r15)
--
--    # Load PC
--    lg   %r1,PC_OFFSET(%r15)
--
--    # Adjust the stack 
--    aghi %r15,120
--
--    # R2 --> Address where the return transfer_t is stored
--    # R0 --> FCTX
--    # R4 --> DATA
--
--    # Store the elements to return transfer_t
--    stg %r15, 0(%r2)
--    stg %r4, 8(%r2)
--
--    # Note: The address in R2 points to the place where the return
--    # transfer_t is stored. Since context_function take transfer_t
--    # as first parameter. And R2 is the register which holds the
--    # first parameter value.
--
--    #jump to context
--    br  %r1
-+	.machine "z10"
-+	/* Reserve stack space to store the current context.  */
-+	aghi	%r15,-CONTEXT_SIZE
- 
--.size   jump_fcontext,.-jump_fcontext
--# Mark that we don't need executable stack.
--.section .note.GNU-stack,"",%progbits
-+	/* Save the argument register holding the location of the return value.  */
-+	stg	%r2,GR_OFFSET(%r15)
-+
-+	/* Save the call-saved general purpose registers.  */
-+	stmg	%r6,%r14,GR_OFFSET+8(%r15)
-+
-+	/* Save call-saved floating point registers.  */
-+	std	%f8,FP_OFFSET(%r15)
-+	std	%f9,FP_OFFSET+8(%r15)
-+	std	%f10,FP_OFFSET+16(%r15)
-+	std	%f11,FP_OFFSET+24(%r15)
-+	std	%f12,FP_OFFSET+32(%r15)
-+	std	%f13,FP_OFFSET+40(%r15)
-+	std	%f14,FP_OFFSET+48(%r15)
-+	std	%f15,FP_OFFSET+56(%r15)
-+
-+	/* Save the return address as current pc.  */
-+	stg	%r14,PC_OFFSET(%r15)
- 
-+	/* Save the floating point control register.  */
-+	stfpc	FPC_OFFSET(%r15)
- 
-+	/* Backup the stack pointer pointing to the old context-data into r1.  */
-+	lgr	 %r1,%r15
- 
-+	/* Load the new context pointer as stack pointer.  */
-+	lgr	%r15,%r3
-+
-+	/* Restore the call-saved GPRs from the new context.  */
-+	lmg	%r6,%r14,GR_OFFSET+8(%r15)
-+
-+	/* Restore call-saved floating point registers.  */
-+	ld	%f8,FP_OFFSET(%r15)
-+	ld	%f9,FP_OFFSET+8(%r15)
-+	ld	%f10,FP_OFFSET+16(%r15)
-+	ld	%f11,FP_OFFSET+24(%r15)
-+	ld	%f12,FP_OFFSET+32(%r15)
-+	ld	%f13,FP_OFFSET+40(%r15)
-+	ld	%f14,FP_OFFSET+48(%r15)
-+	ld	%f15,FP_OFFSET+56(%r15)
-+
-+	/* Load the floating point control register.  */
-+	lfpc	FPC_OFFSET(%r15)
-+
-+	/* Restore PC - the location where we will jump to at the end.  */
-+	lg	%r5,PC_OFFSET(%r15)
-+
-+	ltg	%r2,GR_OFFSET(%r15)
-+	jnz	use_return_slot
-+
-+	/* We restore a make_fcontext context.  Use the function
-+	   argument slot in the context we just saved and allocate the
-+	   register save area for the target function.  */
-+	la	%r2,ARG_OFFSET(%r1)
-+	aghi	%r15,-REG_SAVE_AREA_SIZE
-+
-+use_return_slot:
-+	/* Save the two fields in transfer_t.  When calling a
-+	   make_fcontext function this becomes the function argument of
-+	   the target function, otherwise it will be the return value of
-+	   jump_fcontext.  */
-+	stg	%r1,0(%r2)
-+	stg	%r4,8(%r2)
-+
-+	/* Free the restored context.  */
-+	aghi	%r15,CONTEXT_SIZE
-+
-+	/* Jump to the PC loaded from the new context.  */
-+	br	%r5
-+
-+
-+.size   jump_fcontext,.-jump_fcontext
-+.section .note.GNU-stack,"",%progbits
-diff --git a/src/asm/make_s390x_sysv_elf_gas.S b/src/asm/make_s390x_sysv_elf_gas.S
-index d02856c..e7e2d5f 100644
---- a/libs/context/src/asm/make_s390x_sysv_elf_gas.S
-+++ b/libs/context/src/asm/make_s390x_sysv_elf_gas.S
-@@ -1,104 +1,108 @@
- /*******************************************************
--*                                                     *
--*  -------------------------------------------------  *
--*  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
--*  -------------------------------------------------  *
--*  |     0     |     8     |    16     |     24    |  *
--*  -------------------------------------------------  *
--*  |    R6     |    R7     |    R8     |    R9     |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
--*  -------------------------------------------------  *
--*  |     32    |    40     |     48    |     56    |  *
--*  -------------------------------------------------  *
--*  |    R10    |    R11    |     R12   |     R13   |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
--*  -------------------------------------------------  *
--*  |     64    |    72     |     80    |     88    |  *
--*  -------------------------------------------------  *
--*  |   R14/LR  |    R15    |     F1    |     F3    |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  24 |  25 |  26 |  27 |  28 | 29  |           |  *
--*  -------------------------------------------------  *
--*  |     96    |    104    |    112    |    120    |  *
--*  -------------------------------------------------  *
--*  |    F5     |    F7     |     PC    |           |  *
--*  -------------------------------------------------  *
--* *****************************************************/
--
--.file  "make_s390x_sysv_elf_gas.S"
-+ *  -------------------------------------------------  *
-+ *  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
-+ *  -------------------------------------------------  *
-+ *  |     0     |     8     |    16     |    24     |  *
-+ *  -------------------------------------------------  *
-+ *  |   t.fctx  |   t.data  |    r2     |    r6     |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
-+ *  -------------------------------------------------  *
-+ *  |     32    |    40     |     48    |     56    |  *
-+ *  -------------------------------------------------  *
-+ *  |     r7    |     r8    |     r9    |    r10    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
-+ *  -------------------------------------------------  *
-+ *  |     64    |     72    |     80    |     88    |  *
-+ *  -------------------------------------------------  *
-+ *  |    r11    |    r12    |    r13    |    r14    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  24 |  25 |  26 |  27 |  28 | 29  |  30 |  31 |  *
-+ *  -------------------------------------------------  *
-+ *  |     96    |    104    |    112    |    120    |  *
-+ *  -------------------------------------------------  *
-+ *  |     f8    |     f9    |    f10    |    f11    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  32 |  33 |  34 |  35 |  36 |  37 |  38 |  39 |  *
-+ *  -------------------------------------------------  *
-+ *  |    128    |    136    |    144    |    152    |  *
-+ *  -------------------------------------------------  *
-+ *  |    f12    |    f13    |    f14    |    f15    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  40 |  41 |  42 |  43 |  44 |  45 |  46 |  47 |  *
-+ *  -------------------------------------------------  *
-+ *  |    160    |    168    |    176    |           |  *
-+ *  -------------------------------------------------  *
-+ *  |    fpc    |     pc    |           |           |  *
-+ *  -------------------------------------------------  *
-+ *******************************************************/
-+
- .text
--.align  4 # According to the sample code in the ELF ABI docs
--.global make_fcontext
--.type 	 make_fcontext, @function
--
--#define GR_OFFSET	0
--#define LR_OFFSET	64
--#define SP_OFFSET	72
--#define FP_OFFSET	80
--#define PC_OFFSET	112
--#define L_CTX		120
--#define L_STACKFRAME	120
-+.align	8
-+.global	make_fcontext
-+.type	make_fcontext, @function
- 
--make_fcontext:
-+#define ARG_OFFSET         0
-+#define GR_OFFSET	   16
-+#define R14_OFFSET	   88
-+#define FP_OFFSET	   96
-+#define FPC_OFFSET	   160
-+#define PC_OFFSET	   168
-+#define CONTEXT_SIZE	   176
- 
--		# make_fcontext takes in 3 arguments
--		# arg1 --> The address where the context needs to be made
--		# arg2 --> The size of the context
--		# arg3 --> The address of the context function
-+/*
- 
--		# According to the ELF ABI, the register R2 holds the first arg.
--		# R2 also acts as the register which holds return value
--		# Register R3 holds the second, R4 the third so on.
-+fcontext_t make_fcontext( void * sp, std::size_t size, void (* fn)( transfer_t) );
- 
--		# Shift the address in R2 to a lower 8 byte boundary
-+Create and return a context below SP to call FN.
- 
--		# This is done because according to the ELF ABI Doc, the stack needs
--		# to be 8 byte aligned.
--		# In order to do so, we need to make sure that the address is divisible
--		# by 8. We can check this, by checking if the the last 3 bits of the
--		# address is zero or not. If not AND it with `-8`. 
-+Incoming args
-+r2 - The stack location where to create the context
-+r3 - The size of the context
-+r4 - The address of the context function
- 
--		# Here we AND the lower 16 bits of the memory address present in the 
--		# R2 with the bits 1111 1111 1111 1000 
--		nill    %r2,0xfff0
-+*/
- 
--		# Reserve space for context-data on context-stack.
--		# This is done by shifting the SP/address by 112 bytes.
--		aghi	%r2,-L_CTX
-+make_fcontext:
-+	.machine "z10"
-+	/* Align the stack to an 8 byte boundary.  */
-+	nill    %r2,0xfff0
- 
--		# third arg of make_fcontext() == address of the context-function
--		# Store the address as a PC to jump in, whenever we call the 
--		# make_fcontext.
--		stg 	%r4,PC_OFFSET(%r2)
-+	/* Allocate stack space for the context.  */
-+	aghi	%r2,-CONTEXT_SIZE
- 
--		# Save the address of finish as return-address for context-function
--		# This will be entered after context-function return
--		# The address of finish will be saved in Link register, this register
--		# specifies where we need to jump after the function executes
--		# completely.
--		larl 	%r1,finish
--		stg  	%r1,LR_OFFSET(%r2)
-+	/* Set the r2 save slot to zero.  This indicates jump_fcontext
-+	   that this is a special context.  */
-+	mvghi	GR_OFFSET(%r2),0
- 
--		# Return pointer to context data
--		# R14 acts as the link register
--		# R2 holds the address of the context stack. When we return from the
--		# make_fcontext, R2 is passed back.
--		br 	%r14 
-+	/* Save the floating point control register.  */
-+	stfpc	FPC_OFFSET(%r2)
- 
--	finish:
-+	/* Store the address of the target function as new pc.  */
-+	stg	%r4,PC_OFFSET(%r2)
- 
--		# In finish tasks, you load the exit code and exit the make_fcontext
--		# This is called when the context-function is entirely executed
-+	/* Store a pointer to the finish routine as r14. If a function
-+	   called via context routines just returns that value will be
-+	   loaded and used as return address.  Hence the program will
-+	   just exit.  */
-+	larl	%r1,finish
-+	stg	%r1,R14_OFFSET(%r2)
- 
--		lghi 	%r2,0
--		brasl 	%r14,_exit@PLT
-+	/* Return as usual with the new context returned in r2.  */
-+	br	%r14
-+
-+finish:
-+	/* In finish tasks, you load the exit code and exit the
-+	   make_fcontext This is called when the context-function is
-+	   entirely executed.  */
-+	lghi	%r2,0
-+	brasl	%r14,_exit@PLT
- 
- .size   make_fcontext,.-make_fcontext
--# Mark that we don't need executable stack.
- .section .note.GNU-stack,"",%progbits
--
-diff --git a/src/asm/ontop_s390x_sysv_elf_gas.S b/src/asm/ontop_s390x_sysv_elf_gas.S
-index 4488654..709b3d6 100644
---- a/libs/context/src/asm/ontop_s390x_sysv_elf_gas.S
-+++ b/libs/context/src/asm/ontop_s390x_sysv_elf_gas.S
-@@ -1,112 +1,146 @@
- /*******************************************************
--*                                                     *
--*  -------------------------------------------------  *
--*  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
--*  -------------------------------------------------  *
--*  |     0     |     8     |    16     |     24    |  *
--*  -------------------------------------------------  *
--*  |    R6     |    R7     |    R8     |    R9     |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
--*  -------------------------------------------------  *
--*  |     32    |    40     |     48    |     56    |  *
--*  -------------------------------------------------  *
--*  |    R10    |    R11    |     R12   |     R13   |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
--*  -------------------------------------------------  *
--*  |     64    |    72     |     80    |     88    |  *
--*  -------------------------------------------------  *
--*  |   R14/LR  |    R15    |     F1    |     F3    |  *
--*  -------------------------------------------------  *
--*  -------------------------------------------------  *
--*  |  24 |  25 |  26 |  27 |  28 | 29  |           |  *
--*  -------------------------------------------------  *
--*  |     96    |    104    |    112    |    120    |  *
--*  -------------------------------------------------  *
--*  |    F5     |    F7     |     PC    |           |  *
--*  -------------------------------------------------  *
--* *****************************************************/
--
--.file  "ontop_s390x_sysv_elf_gas.S"
-+ *  -------------------------------------------------  *
-+ *  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
-+ *  -------------------------------------------------  *
-+ *  |     0     |     8     |    16     |    24     |  *
-+ *  -------------------------------------------------  *
-+ *  |   t.fctx  |   t.data  |    r2     |    r6     |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
-+ *  -------------------------------------------------  *
-+ *  |     32    |    40     |     48    |     56    |  *
-+ *  -------------------------------------------------  *
-+ *  |     r7    |     r8    |     r9    |    r10    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
-+ *  -------------------------------------------------  *
-+ *  |     64    |     72    |     80    |     88    |  *
-+ *  -------------------------------------------------  *
-+ *  |    r11    |    r12    |    r13    |    r14    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  24 |  25 |  26 |  27 |  28 | 29  |  30 |  31 |  *
-+ *  -------------------------------------------------  *
-+ *  |     96    |    104    |    112    |    120    |  *
-+ *  -------------------------------------------------  *
-+ *  |     f8    |     f9    |    f10    |    f11    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  32 |  33 |  34 |  35 |  36 |  37 |  38 |  39 |  *
-+ *  -------------------------------------------------  *
-+ *  |    128    |    136    |    144    |    152    |  *
-+ *  -------------------------------------------------  *
-+ *  |    f12    |    f13    |    f14    |    f15    |  *
-+ *  -------------------------------------------------  *
-+ *  -------------------------------------------------  *
-+ *  |  40 |  41 |  42 |  43 |  44 |  45 |  46 |  47 |  *
-+ *  -------------------------------------------------  *
-+ *  |    160    |    168    |    176    |           |  *
-+ *  -------------------------------------------------  *
-+ *  |    fpc    |     pc    |           |           |  *
-+ *  -------------------------------------------------  *
-+ *******************************************************/
-+
- .text
--.align  4 # According to the sample code in the ELF ABI docs
-+.align  8
- .global ontop_fcontext
- .type   ontop_fcontext, @function
- 
--#define GR_OFFSET	0
--#define LR_OFFSET	64
--#define SP_OFFSET	72
--#define FP_OFFSET	80
--#define PC_OFFSET	112
--#define L_CTX		120
-+#define ARG_OFFSET         0
-+#define GR_OFFSET	   16
-+#define R14_OFFSET	   88
-+#define FP_OFFSET	   96
-+#define FPC_OFFSET	   160
-+#define PC_OFFSET	   168
-+#define CONTEXT_SIZE	   176
-+
-+
-+/*
-+
-+typedef void*   fcontext_t;
-+
-+struct transfer_t {
-+   fcontext_t  fctx;
-+   void    *   data;
-+};
-+
-+transfer_t ontop_fcontext( fcontext_t const to,
-+			   void * vp,
-+			   transfer_t (* fn)( transfer_t) );
-+
-+Incoming args
-+r2 - Hidden argument to the location where the return transfer_t needs to be returned
-+r3 - Target context
-+r4 - Data pointer
-+r5 - Function to be executed
-+
-+This implementation assumes that ontop_fcontext will never be called with target contexts
-+created via make_fcontext.
-+
-+*/
- 
- ontop_fcontext:
--    
--    # Reserved the space for stack to store the data of current context
--    # before we jump to the new context.
--    aghi %r15,-L_CTX
--
--    # save the registers to the stack
--    stmg %r6, %r15, GR_OFFSET(%r15)
--
--    # save the floating point registers
--    std  %f0,FP_OFFSET(%r15)
--    std  %f3,FP_OFFSET+8(%r15)
--    std  %f5,FP_OFFSET+16(%r15)
--    std  %f7,FP_OFFSET+24(%r15)
--    # Save LR as PC
--    stg  %r14,PC_OFFSET(%r15)
--
--    # Store the SP pointing to the old context-data into R0
--    lgr  %r0,%r15
--
--    # Get the SP pointing to the new context-data
--    # Note: Since the return type of the jump_fcontext is struct whose
--    # size is more than 8. The compiler automatically passes the 
--    # address of the transfer_t where the data needs to store into R2.
--
--    # Hence the first param passed to the jump_fcontext which represent
--    # the fctx we want to switch to is present in R3
--    # R2 --> Address of the return transfer_t struct
--    # R3 --> Context we want to switch to
--    # R4 --> Data
--    lgr  %r15,%r3
--
--    # Load the registers with the data present in context-data of the
--    # context we are going to switch to
--    lmg  %r6,%r15,GR_OFFSET(%r15)
--
--    # Restore Floating point registers
--    ld	 %f1,FP_OFFSET(%r15)
--    ld	 %f3,FP_OFFSET+8(%r15)
--    ld	 %f5,FP_OFFSET+16(%r15)
--    ld	 %f7,FP_OFFSET+24(%r15)
--
--    # Skip PC
--
--    # Adjust the stack
--    aghi %r15,L_CTX
--
--    # R2 --> Address where the return transfer_t is stored
--    # R0 --> FCTX
--    # R4 --> DATA
--    # R5 --> Context function
--
--    # Store the elements to return transfer_t
--    stg  %r15, 0(%r2)
--    stg  %r4, 8(%r2)
--
--    # Note: The address in R2 points to the place where the return
--    # transfer_t is stored. Since context_function take transfer_t
--    # as first parameter. And R2 is the register which holds the
--    # first parameter value.
--
--    #jump to context function
--    br 	%r5
-+	/* Reserve stack space to store the current context.  */
-+	aghi	%r15,-CONTEXT_SIZE
-+
-+	/* Save the argument register holding the location of the return value.  */
-+	stg	%r2,GR_OFFSET(%r15)
-+
-+	/* Save the call-saved general purpose registers.  */
-+	stmg	%r6,%r14,GR_OFFSET+8(%r15)
-+
-+	/* Save call-saved floating point registers.  */
-+	std	%f8,FP_OFFSET(%r15)
-+	std	%f9,FP_OFFSET+8(%r15)
-+	std	%f10,FP_OFFSET+16(%r15)
-+	std	%f11,FP_OFFSET+24(%r15)
-+	std	%f12,FP_OFFSET+32(%r15)
-+	std	%f13,FP_OFFSET+40(%r15)
-+	std	%f14,FP_OFFSET+48(%r15)
-+	std	%f15,FP_OFFSET+56(%r15)
-+
-+	/* Save the return address as current pc.  */
-+	stg	%r14,PC_OFFSET(%r15)
-+
-+	/* Save the floating point control register.  */
-+	stfpc   FPC_OFFSET(%r15)
-+
-+	/* Backup the stack pointer pointing to the old context-data into r1.  */
-+	lgr	%r1,%r15
-+
-+	/* Load the new context pointer as stack pointer.  */
-+	lgr	%r15,%r3
-+
-+	/* Restore the call-saved GPRs from the new context.  */
-+	lmg	%r6,%r14,GR_OFFSET+8(%r15)
-+
-+	/* Restore call-saved floating point registers.  */
-+	ld	%f8,FP_OFFSET(%r15)
-+	ld	%f9,FP_OFFSET+8(%r15)
-+	ld	%f10,FP_OFFSET+16(%r15)
-+	ld	%f11,FP_OFFSET+24(%r15)
-+	ld	%f12,FP_OFFSET+32(%r15)
-+	ld	%f13,FP_OFFSET+40(%r15)
-+	ld	%f14,FP_OFFSET+48(%r15)
-+	ld	%f15,FP_OFFSET+56(%r15)
-+
-+	/* Load the floating point control register.  */
-+	lfpc   FPC_OFFSET(%r15)
-+
-+	/* Store the transfer_t values located in the saved context.  */
-+	stg	%r1,0(%r1)	       /* transfer_t.fctx = old context */
-+	stg	%r4,8(%r1)             /* transfer_t.data = data */
-+
-+	/* Set up the arguments for the target function.  */
-+	lg	%r2,GR_OFFSET(%r15)
-+	lgr	%r3,%r1
-+
-+	/* Deallocate the context.  */
-+	aghi	%r15,CONTEXT_SIZE
-+
-+	br	%r5
- 
- .size   ontop_fcontext,.-ontop_fcontext
--# Mark that we don't need executable stack.
- .section .note.GNU-stack,"",%progbits
--- 
-2.18.1
-
diff --git a/SOURCES/boost-1.66-optimize-s390x-instructions.patch b/SOURCES/boost-1.66-optimize-s390x-instructions.patch
deleted file mode 100644
index 36527fd..0000000
--- a/SOURCES/boost-1.66-optimize-s390x-instructions.patch
+++ /dev/null
@@ -1,351 +0,0 @@
-From 519786ec38bb5123547071021e4bd7678d7673ad Mon Sep 17 00:00:00 2001
-From: Andreas Krebbel <krebbel@linux.ibm.com>
-Date: Mon, 23 Mar 2020 09:08:27 +0100
-Subject: [PATCH 3/4] Optimize s390x instructions
-
----
- src/asm/jump_s390x_sysv_elf_gas.S  | 84 ++++++++++--------------------
- src/asm/make_s390x_sysv_elf_gas.S  | 27 ++++++----
- src/asm/ontop_s390x_sysv_elf_gas.S | 81 +++++++++-------------------
- 3 files changed, 70 insertions(+), 122 deletions(-)
-
-diff --git a/src/asm/jump_s390x_sysv_elf_gas.S b/src/asm/jump_s390x_sysv_elf_gas.S
-index c011d53..b2163cc 100644
---- a/libs/context/src/asm/jump_s390x_sysv_elf_gas.S
-+++ b/libs/context/src/asm/jump_s390x_sysv_elf_gas.S
-@@ -36,47 +36,34 @@
- .global jump_fcontext
- .type   jump_fcontext, @function
- 
-+#define GR_OFFSET	0
-+#define LR_OFFSET	64
-+#define SP_OFFSET	72
-+#define FP_OFFSET	80
-+#define PC_OFFSET	112
-+#define L_CTX		120
-+#define L_STACKFRAME	120
-+
- jump_fcontext:
-     
-     # Reserved the space for stack to store the data of current context
-     # before we jump to the new context.
--    lay 15,-120(15)
-+    aghi %r15,-L_STACKFRAME
- 
-     # save the registers to the stack
--    stg 6,  0(15)       # save R6     
--    stg 7,  8(15)       # save R7     
--    stg 8,  16(15)      # save R8
--    stg 9,  24(15)      # save R9
--    stg 10, 32(15)      # save R10
--    stg 11, 40(15)      # save R11
--    stg 12, 48(15)      # save R12
--    stg 13, 56(15)      # save R13
--    stg 14, 64(15)      # save R14
--    stg 15, 72(15)      # save R15
-+    stmg %r6, %r15, GR_OFFSET(%r15)
- 
-     # save the floating point registers
--    # Load the FPR into R0 then save it to the stack
--    # Load F1 into R0
--    lgdr 0,1 
--    stg  0,80(15)       # save F1
--
--    # Load F3 into R0
--    lgdr 0,3
--    stg  0,88(15)       # save F3
--
--    # Load F5 into R0
--    lgdr 0,5
--    stg  0,96(15)       # save F5
--
--    # Load F7 into R0
--    lgdr 0,7
--    stg  0,104(15)      # save F7
-+    std  %f0,FP_OFFSET(%r15)
-+    std  %f3,FP_OFFSET+8(%r15)
-+    std  %f5,FP_OFFSET+16(%r15)
-+    std  %f7,FP_OFFSET+24(%r15)
- 
-     # Save LR as PC
--    stg 14,112(15)
-+    stg  %r14,PC_OFFSET(%r15)
- 
-     # Store the SP pointing to the old context-data into R0
--    lgr 0,15
-+    lgr	 %r0,%r15
- 
-     # Get the SP pointing to the new context-data
-     # Note: Since the return type of the jump_fcontext is struct whose
-@@ -88,46 +75,31 @@ jump_fcontext:
-     # R2 --> Address of the return transfer_t struct
-     # R3 --> Context we want to switch to
-     # R4 --> Data
--    lgr 15,3
-+    lgr	%r15,%r3
- 
-     # Load the registers with the data present in context-data of the
-     # context we are going to switch to
--    lg 6,  0(15)       # restore R6     
--    lg 7,  8(15)       # restore R7     
--    lg 8,  16(15)      # restore R8
--    lg 9,  24(15)      # restore R9
--    lg 10, 32(15)      # restore R10
--    lg 11, 40(15)      # restore R11
--    lg 12, 48(15)      # restore R12
--    lg 13, 56(15)      # restore R13
--    lg 14, 64(15)      # restore R14
-+    lmg	%r6, %r14, GR_OFFSET(%r15)
- 
-     # Restore Floating point registers
--    lg   1,80(15)
--    ldgr 1,1            # restore F1
--
--    lg   1,88(15)
--    ldgr 1,3            # restore F3
--
--    lg   1,96(15)
--    ldgr 1,5            # restore F5
--
--    lg   1,104(15)
--    ldgr 1,7            # restore F7
-+    ld	 %f1,FP_OFFSET(%r15)
-+    ld	 %f3,FP_OFFSET+8(%r15)
-+    ld	 %f5,FP_OFFSET+16(%r15)
-+    ld	 %f7,FP_OFFSET+24(%r15)
- 
-     # Load PC
--    lg  1,112(15)
-+    lg   %r1,PC_OFFSET(%r15)
- 
--    # Adjust the stack
--    lay 15, 120(15)
-+    # Adjust the stack 
-+    aghi %r15,120
- 
-     # R2 --> Address where the return transfer_t is stored
-     # R0 --> FCTX
-     # R4 --> DATA
- 
-     # Store the elements to return transfer_t
--    stg 15, 0(2)
--    stg 4, 8(2)
-+    stg %r15, 0(%r2)
-+    stg %r4, 8(%r2)
- 
-     # Note: The address in R2 points to the place where the return
-     # transfer_t is stored. Since context_function take transfer_t
-@@ -135,7 +107,7 @@ jump_fcontext:
-     # first parameter value.
- 
-     #jump to context
--    br 1
-+    br  %r1
- 
- .size   jump_fcontext,.-jump_fcontext
- # Mark that we don't need executable stack.
-diff --git a/src/asm/make_s390x_sysv_elf_gas.S b/src/asm/make_s390x_sysv_elf_gas.S
-index f566533..d02856c 100644
---- a/libs/context/src/asm/make_s390x_sysv_elf_gas.S
-+++ b/libs/context/src/asm/make_s390x_sysv_elf_gas.S
-@@ -36,6 +36,14 @@
- .global make_fcontext
- .type 	 make_fcontext, @function
- 
-+#define GR_OFFSET	0
-+#define LR_OFFSET	64
-+#define SP_OFFSET	72
-+#define FP_OFFSET	80
-+#define PC_OFFSET	112
-+#define L_CTX		120
-+#define L_STACKFRAME	120
-+
- make_fcontext:
- 
- 		# make_fcontext takes in 3 arguments
-@@ -56,40 +64,39 @@ make_fcontext:
- 		# address is zero or not. If not AND it with `-8`. 
- 
- 		# Here we AND the lower 16 bits of the memory address present in the 
--		# R2 with the bits 1111 1111 1111 1000 which when converted into
--		# decimal is 65528
--		nill    2,65528
-+		# R2 with the bits 1111 1111 1111 1000 
-+		nill    %r2,0xfff0
- 
- 		# Reserve space for context-data on context-stack.
- 		# This is done by shifting the SP/address by 112 bytes.
--		lay 2,-120(2)
-+		aghi	%r2,-L_CTX
- 
- 		# third arg of make_fcontext() == address of the context-function
- 		# Store the address as a PC to jump in, whenever we call the 
- 		# make_fcontext.
--		stg 4,112(2)
-+		stg 	%r4,PC_OFFSET(%r2)
- 
- 		# Save the address of finish as return-address for context-function
- 		# This will be entered after context-function return
- 		# The address of finish will be saved in Link register, this register
- 		# specifies where we need to jump after the function executes
- 		# completely.
--		larl 1,finish
--		stg  1,64(2)
-+		larl 	%r1,finish
-+		stg  	%r1,LR_OFFSET(%r2)
- 
- 		# Return pointer to context data
- 		# R14 acts as the link register
- 		# R2 holds the address of the context stack. When we return from the
- 		# make_fcontext, R2 is passed back.
--		br 14 
-+		br 	%r14 
- 
- 	finish:
- 
- 		# In finish tasks, you load the exit code and exit the make_fcontext
- 		# This is called when the context-function is entirely executed
- 
--		lghi 2,0
--		brasl 14,_exit
-+		lghi 	%r2,0
-+		brasl 	%r14,_exit@PLT
- 
- .size   make_fcontext,.-make_fcontext
- # Mark that we don't need executable stack.
-diff --git a/src/asm/ontop_s390x_sysv_elf_gas.S b/src/asm/ontop_s390x_sysv_elf_gas.S
-index 7ab2cf5..4488654 100644
---- a/libs/context/src/asm/ontop_s390x_sysv_elf_gas.S
-+++ b/libs/context/src/asm/ontop_s390x_sysv_elf_gas.S
-@@ -36,47 +36,32 @@
- .global ontop_fcontext
- .type   ontop_fcontext, @function
- 
-+#define GR_OFFSET	0
-+#define LR_OFFSET	64
-+#define SP_OFFSET	72
-+#define FP_OFFSET	80
-+#define PC_OFFSET	112
-+#define L_CTX		120
-+
- ontop_fcontext:
-     
-     # Reserved the space for stack to store the data of current context
-     # before we jump to the new context.
--    lay 15,-120(15)
-+    aghi %r15,-L_CTX
- 
-     # save the registers to the stack
--    stg 6,  0(15)       # save R6     
--    stg 7,  8(15)       # save R7     
--    stg 8,  16(15)      # save R8
--    stg 9,  24(15)      # save R9
--    stg 10, 32(15)      # save R10
--    stg 11, 40(15)      # save R11
--    stg 12, 48(15)      # save R12
--    stg 13, 56(15)      # save R13
--    stg 14, 64(15)      # save R14
--    stg 15, 72(15)      # save R15
-+    stmg %r6, %r15, GR_OFFSET(%r15)
- 
-     # save the floating point registers
--    # Load the FPR into R0 then save it to the stack
--    # Load F1 into R0
--    lgdr 0,1 
--    stg  0,80(15)       # save F1
--
--    # Load F3 into R0
--    lgdr 0,3
--    stg  0,88(15)       # save F3
--
--    # Load F5 into R0
--    lgdr 0,5
--    stg  0,96(15)       # save F5
--
--    # Load F7 into R0
--    lgdr 0,7
--    stg  0,104(15)      # save F7
--
-+    std  %f0,FP_OFFSET(%r15)
-+    std  %f3,FP_OFFSET+8(%r15)
-+    std  %f5,FP_OFFSET+16(%r15)
-+    std  %f7,FP_OFFSET+24(%r15)
-     # Save LR as PC
--    stg 14,112(15)
-+    stg  %r14,PC_OFFSET(%r15)
- 
-     # Store the SP pointing to the old context-data into R0
--    lgr 0,15
-+    lgr  %r0,%r15
- 
-     # Get the SP pointing to the new context-data
-     # Note: Since the return type of the jump_fcontext is struct whose
-@@ -88,38 +73,22 @@ ontop_fcontext:
-     # R2 --> Address of the return transfer_t struct
-     # R3 --> Context we want to switch to
-     # R4 --> Data
--    lgr 15,3
-+    lgr  %r15,%r3
- 
-     # Load the registers with the data present in context-data of the
-     # context we are going to switch to
--    lg 6,  0(15)       # restore R6     
--    lg 7,  8(15)       # restore R7     
--    lg 8,  16(15)      # restore R8
--    lg 9,  24(15)      # restore R9
--    lg 10, 32(15)      # restore R10
--    lg 11, 40(15)      # restore R11
--    lg 12, 48(15)      # restore R12
--    lg 13, 56(15)      # restore R13
--    lg 14, 64(15)      # restore R14
--    lg 15, 72(15)      # restore R15
-+    lmg  %r6,%r15,GR_OFFSET(%r15)
- 
-     # Restore Floating point registers
--    lg   1,80(15)
--    ldgr 1,1            # restore F1
--
--    lg   1,88(15)
--    ldgr 1,3            # restore F3
--
--    lg   1,96(15)
--    ldgr 1,5            # restore F5
--
--    lg   1,104(15)
--    ldgr 1,7            # restore F7
-+    ld	 %f1,FP_OFFSET(%r15)
-+    ld	 %f3,FP_OFFSET+8(%r15)
-+    ld	 %f5,FP_OFFSET+16(%r15)
-+    ld	 %f7,FP_OFFSET+24(%r15)
- 
-     # Skip PC
- 
-     # Adjust the stack
--    lay 15, 120(15)
-+    aghi %r15,L_CTX
- 
-     # R2 --> Address where the return transfer_t is stored
-     # R0 --> FCTX
-@@ -127,8 +96,8 @@ ontop_fcontext:
-     # R5 --> Context function
- 
-     # Store the elements to return transfer_t
--    stg 15, 0(2)
--    stg 4, 8(2)
-+    stg  %r15, 0(%r2)
-+    stg  %r4, 8(%r2)
- 
-     # Note: The address in R2 points to the place where the return
-     # transfer_t is stored. Since context_function take transfer_t
-@@ -136,7 +105,7 @@ ontop_fcontext:
-     # first parameter value.
- 
-     #jump to context function
--    br 5
-+    br 	%r5
- 
- .size   ontop_fcontext,.-ontop_fcontext
- # Mark that we don't need executable stack.
--- 
-2.18.1
-
diff --git a/SOURCES/boost-1.66-support-s390x-arch.patch b/SOURCES/boost-1.66-support-s390x-arch.patch
deleted file mode 100644
index ada7c3b..0000000
--- a/SOURCES/boost-1.66-support-s390x-arch.patch
+++ /dev/null
@@ -1,461 +0,0 @@
-From ffa7c8b7f8033413d7088edcd9947bf782b9d3fd Mon Sep 17 00:00:00 2001
-From: Andreas Krebbel <krebbel@linux.ibm.com>
-Date: Mon, 23 Mar 2020 09:04:54 +0100
-Subject: [PATCH 1/4] S390x: Add Support for s390x arch
-
----
- build/Jamfile.v2                   |  13 +++
- build/architecture.jam             |   4 +
- src/asm/jump_s390x_sysv_elf_gas.S  | 145 +++++++++++++++++++++++++++++
- src/asm/make_s390x_sysv_elf_gas.S  |  97 +++++++++++++++++++
- src/asm/ontop_s390x_sysv_elf_gas.S | 143 ++++++++++++++++++++++++++++
- 5 files changed, 402 insertions(+)
- create mode 100644 src/asm/jump_s390x_sysv_elf_gas.S
- create mode 100644 src/asm/make_s390x_sysv_elf_gas.S
- create mode 100644 src/asm/ontop_s390x_sysv_elf_gas.S
-
-diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
-index 719ca91..08f1675 100644
---- a/libs/context/build/Jamfile.v2
-+++ b/libs/context/build/Jamfile.v2
-@@ -447,6 +447,19 @@ alias asm_sources
-      <binary-format>mach-o
-    ;
- 
-+# S390X
-+# S390X/SYSV/ELF
-+alias asm_sources
-+   : asm/make_s390x_sysv_elf_gas.S
-+     asm/jump_s390x_sysv_elf_gas.S
-+     asm/ontop_s390x_sysv_elf_gas.S
-+   : <abi>sysv
-+     <address-model>64
-+     <architecture>s390x
-+     <binary-format>elf
-+     <toolset>gcc
-+   ;
-+
- # X86
- # X86/SYSV/ELF
- alias asm_sources
-diff --git a/build/architecture.jam b/build/architecture.jam
-index 81dcb49..f62806d 100644
---- a/libs/context/build/architecture.jam
-+++ b/libs/context/build/architecture.jam
-@@ -63,6 +63,10 @@ rule deduce-architecture ( properties * )
-         {
-             return <architecture>power ;
-         }
-+        else if [ configure.builds /boost/architecture//s390x : $(properties) : s390x ]
-+        {
-+            return <architecture>s390x ;
-+        }
-         else if [ configure.builds /boost/architecture//sparc : $(properties) : sparc ]
-         {
-             return <architecture>sparc ;
-diff --git a/src/asm/jump_s390x_sysv_elf_gas.S b/src/asm/jump_s390x_sysv_elf_gas.S
-new file mode 100644
-index 0000000..c011d53
---- /dev/null
-+++ b/libs/context/src/asm/jump_s390x_sysv_elf_gas.S
-@@ -0,0 +1,145 @@
-+/*******************************************************
-+*                                                     *
-+*  -------------------------------------------------  *
-+*  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
-+*  -------------------------------------------------  *
-+*  |     0     |     8     |    16     |     24    |  *
-+*  -------------------------------------------------  *
-+*  |    R6     |    R7     |    R8     |    R9     |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
-+*  -------------------------------------------------  *
-+*  |     32    |    40     |     48    |     56    |  *
-+*  -------------------------------------------------  *
-+*  |    R10    |    R11    |     R12   |     R13   |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
-+*  -------------------------------------------------  *
-+*  |     64    |    72     |     80    |     88    |  *
-+*  -------------------------------------------------  *
-+*  |   R14/LR  |    R15    |     F1    |     F3    |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  24 |  25 |  26 |  27 |  28 | 29  |           |  *
-+*  -------------------------------------------------  *
-+*  |     96    |    104    |    112    |    120    |  *
-+*  -------------------------------------------------  *
-+*  |    F5     |    F7     |     PC    |           |  *
-+*  -------------------------------------------------  *
-+* *****************************************************/
-+
-+.file  "jump_s390x_sysv_elf_gas.S"
-+.text
-+.align  4 # According to the sample code in the ELF ABI docs
-+.global jump_fcontext
-+.type   jump_fcontext, @function
-+
-+jump_fcontext:
-+    
-+    # Reserved the space for stack to store the data of current context
-+    # before we jump to the new context.
-+    lay 15,-120(15)
-+
-+    # save the registers to the stack
-+    stg 6,  0(15)       # save R6     
-+    stg 7,  8(15)       # save R7     
-+    stg 8,  16(15)      # save R8
-+    stg 9,  24(15)      # save R9
-+    stg 10, 32(15)      # save R10
-+    stg 11, 40(15)      # save R11
-+    stg 12, 48(15)      # save R12
-+    stg 13, 56(15)      # save R13
-+    stg 14, 64(15)      # save R14
-+    stg 15, 72(15)      # save R15
-+
-+    # save the floating point registers
-+    # Load the FPR into R0 then save it to the stack
-+    # Load F1 into R0
-+    lgdr 0,1 
-+    stg  0,80(15)       # save F1
-+
-+    # Load F3 into R0
-+    lgdr 0,3
-+    stg  0,88(15)       # save F3
-+
-+    # Load F5 into R0
-+    lgdr 0,5
-+    stg  0,96(15)       # save F5
-+
-+    # Load F7 into R0
-+    lgdr 0,7
-+    stg  0,104(15)      # save F7
-+
-+    # Save LR as PC
-+    stg 14,112(15)
-+
-+    # Store the SP pointing to the old context-data into R0
-+    lgr 0,15
-+
-+    # Get the SP pointing to the new context-data
-+    # Note: Since the return type of the jump_fcontext is struct whose
-+    # size is more than 8. The compiler automatically passes the 
-+    # address of the transfer_t where the data needs to store into R2.
-+
-+    # Hence the first param passed to the jump_fcontext which represent
-+    # the fctx we want to switch to is present in R3
-+    # R2 --> Address of the return transfer_t struct
-+    # R3 --> Context we want to switch to
-+    # R4 --> Data
-+    lgr 15,3
-+
-+    # Load the registers with the data present in context-data of the
-+    # context we are going to switch to
-+    lg 6,  0(15)       # restore R6     
-+    lg 7,  8(15)       # restore R7     
-+    lg 8,  16(15)      # restore R8
-+    lg 9,  24(15)      # restore R9
-+    lg 10, 32(15)      # restore R10
-+    lg 11, 40(15)      # restore R11
-+    lg 12, 48(15)      # restore R12
-+    lg 13, 56(15)      # restore R13
-+    lg 14, 64(15)      # restore R14
-+
-+    # Restore Floating point registers
-+    lg   1,80(15)
-+    ldgr 1,1            # restore F1
-+
-+    lg   1,88(15)
-+    ldgr 1,3            # restore F3
-+
-+    lg   1,96(15)
-+    ldgr 1,5            # restore F5
-+
-+    lg   1,104(15)
-+    ldgr 1,7            # restore F7
-+
-+    # Load PC
-+    lg  1,112(15)
-+
-+    # Adjust the stack
-+    lay 15, 120(15)
-+
-+    # R2 --> Address where the return transfer_t is stored
-+    # R0 --> FCTX
-+    # R4 --> DATA
-+
-+    # Store the elements to return transfer_t
-+    stg 15, 0(2)
-+    stg 4, 8(2)
-+
-+    # Note: The address in R2 points to the place where the return
-+    # transfer_t is stored. Since context_function take transfer_t
-+    # as first parameter. And R2 is the register which holds the
-+    # first parameter value.
-+
-+    #jump to context
-+    br 1
-+
-+.size   jump_fcontext,.-jump_fcontext
-+# Mark that we don't need executable stack.
-+.section .note.GNU-stack,"",%progbits
-+
-+
-+
-diff --git a/src/asm/make_s390x_sysv_elf_gas.S b/src/asm/make_s390x_sysv_elf_gas.S
-new file mode 100644
-index 0000000..f566533
---- /dev/null
-+++ b/libs/context/src/asm/make_s390x_sysv_elf_gas.S
-@@ -0,0 +1,97 @@
-+/*******************************************************
-+*                                                     *
-+*  -------------------------------------------------  *
-+*  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
-+*  -------------------------------------------------  *
-+*  |     0     |     8     |    16     |     24    |  *
-+*  -------------------------------------------------  *
-+*  |    R6     |    R7     |    R8     |    R9     |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
-+*  -------------------------------------------------  *
-+*  |     32    |    40     |     48    |     56    |  *
-+*  -------------------------------------------------  *
-+*  |    R10    |    R11    |     R12   |     R13   |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
-+*  -------------------------------------------------  *
-+*  |     64    |    72     |     80    |     88    |  *
-+*  -------------------------------------------------  *
-+*  |   R14/LR  |    R15    |     F1    |     F3    |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  24 |  25 |  26 |  27 |  28 | 29  |           |  *
-+*  -------------------------------------------------  *
-+*  |     96    |    104    |    112    |    120    |  *
-+*  -------------------------------------------------  *
-+*  |    F5     |    F7     |     PC    |           |  *
-+*  -------------------------------------------------  *
-+* *****************************************************/
-+
-+.file  "make_s390x_sysv_elf_gas.S"
-+.text
-+.align  4 # According to the sample code in the ELF ABI docs
-+.global make_fcontext
-+.type 	 make_fcontext, @function
-+
-+make_fcontext:
-+
-+		# make_fcontext takes in 3 arguments
-+		# arg1 --> The address where the context needs to be made
-+		# arg2 --> The size of the context
-+		# arg3 --> The address of the context function
-+
-+		# According to the ELF ABI, the register R2 holds the first arg.
-+		# R2 also acts as the register which holds return value
-+		# Register R3 holds the second, R4 the third so on.
-+
-+		# Shift the address in R2 to a lower 8 byte boundary
-+
-+		# This is done because according to the ELF ABI Doc, the stack needs
-+		# to be 8 byte aligned.
-+		# In order to do so, we need to make sure that the address is divisible
-+		# by 8. We can check this, by checking if the the last 3 bits of the
-+		# address is zero or not. If not AND it with `-8`. 
-+
-+		# Here we AND the lower 16 bits of the memory address present in the 
-+		# R2 with the bits 1111 1111 1111 1000 which when converted into
-+		# decimal is 65528
-+		nill    2,65528
-+
-+		# Reserve space for context-data on context-stack.
-+		# This is done by shifting the SP/address by 112 bytes.
-+		lay 2,-120(2)
-+
-+		# third arg of make_fcontext() == address of the context-function
-+		# Store the address as a PC to jump in, whenever we call the 
-+		# make_fcontext.
-+		stg 4,112(2)
-+
-+		# Save the address of finish as return-address for context-function
-+		# This will be entered after context-function return
-+		# The address of finish will be saved in Link register, this register
-+		# specifies where we need to jump after the function executes
-+		# completely.
-+		larl 1,finish
-+		stg  1,64(2)
-+
-+		# Return pointer to context data
-+		# R14 acts as the link register
-+		# R2 holds the address of the context stack. When we return from the
-+		# make_fcontext, R2 is passed back.
-+		br 14 
-+
-+	finish:
-+
-+		# In finish tasks, you load the exit code and exit the make_fcontext
-+		# This is called when the context-function is entirely executed
-+
-+		lghi 2,0
-+		brasl 14,_exit
-+
-+.size   make_fcontext,.-make_fcontext
-+# Mark that we don't need executable stack.
-+.section .note.GNU-stack,"",%progbits
-+
-diff --git a/src/asm/ontop_s390x_sysv_elf_gas.S b/src/asm/ontop_s390x_sysv_elf_gas.S
-new file mode 100644
-index 0000000..7ab2cf5
---- /dev/null
-+++ b/libs/context/src/asm/ontop_s390x_sysv_elf_gas.S
-@@ -0,0 +1,143 @@
-+/*******************************************************
-+*                                                     *
-+*  -------------------------------------------------  *
-+*  |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  *
-+*  -------------------------------------------------  *
-+*  |     0     |     8     |    16     |     24    |  *
-+*  -------------------------------------------------  *
-+*  |    R6     |    R7     |    R8     |    R9     |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  8  |  9  |  10 |  11 |  12 |  13 |  14 |  15 |  *
-+*  -------------------------------------------------  *
-+*  |     32    |    40     |     48    |     56    |  *
-+*  -------------------------------------------------  *
-+*  |    R10    |    R11    |     R12   |     R13   |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  16 |  17 |  18 |  19 |  20 |  21 |  22 |  23 |  *
-+*  -------------------------------------------------  *
-+*  |     64    |    72     |     80    |     88    |  *
-+*  -------------------------------------------------  *
-+*  |   R14/LR  |    R15    |     F1    |     F3    |  *
-+*  -------------------------------------------------  *
-+*  -------------------------------------------------  *
-+*  |  24 |  25 |  26 |  27 |  28 | 29  |           |  *
-+*  -------------------------------------------------  *
-+*  |     96    |    104    |    112    |    120    |  *
-+*  -------------------------------------------------  *
-+*  |    F5     |    F7     |     PC    |           |  *
-+*  -------------------------------------------------  *
-+* *****************************************************/
-+
-+.file  "ontop_s390x_sysv_elf_gas.S"
-+.text
-+.align  4 # According to the sample code in the ELF ABI docs
-+.global ontop_fcontext
-+.type   ontop_fcontext, @function
-+
-+ontop_fcontext:
-+    
-+    # Reserved the space for stack to store the data of current context
-+    # before we jump to the new context.
-+    lay 15,-120(15)
-+
-+    # save the registers to the stack
-+    stg 6,  0(15)       # save R6     
-+    stg 7,  8(15)       # save R7     
-+    stg 8,  16(15)      # save R8
-+    stg 9,  24(15)      # save R9
-+    stg 10, 32(15)      # save R10
-+    stg 11, 40(15)      # save R11
-+    stg 12, 48(15)      # save R12
-+    stg 13, 56(15)      # save R13
-+    stg 14, 64(15)      # save R14
-+    stg 15, 72(15)      # save R15
-+
-+    # save the floating point registers
-+    # Load the FPR into R0 then save it to the stack
-+    # Load F1 into R0
-+    lgdr 0,1 
-+    stg  0,80(15)       # save F1
-+
-+    # Load F3 into R0
-+    lgdr 0,3
-+    stg  0,88(15)       # save F3
-+
-+    # Load F5 into R0
-+    lgdr 0,5
-+    stg  0,96(15)       # save F5
-+
-+    # Load F7 into R0
-+    lgdr 0,7
-+    stg  0,104(15)      # save F7
-+
-+    # Save LR as PC
-+    stg 14,112(15)
-+
-+    # Store the SP pointing to the old context-data into R0
-+    lgr 0,15
-+
-+    # Get the SP pointing to the new context-data
-+    # Note: Since the return type of the jump_fcontext is struct whose
-+    # size is more than 8. The compiler automatically passes the 
-+    # address of the transfer_t where the data needs to store into R2.
-+
-+    # Hence the first param passed to the jump_fcontext which represent
-+    # the fctx we want to switch to is present in R3
-+    # R2 --> Address of the return transfer_t struct
-+    # R3 --> Context we want to switch to
-+    # R4 --> Data
-+    lgr 15,3
-+
-+    # Load the registers with the data present in context-data of the
-+    # context we are going to switch to
-+    lg 6,  0(15)       # restore R6     
-+    lg 7,  8(15)       # restore R7     
-+    lg 8,  16(15)      # restore R8
-+    lg 9,  24(15)      # restore R9
-+    lg 10, 32(15)      # restore R10
-+    lg 11, 40(15)      # restore R11
-+    lg 12, 48(15)      # restore R12
-+    lg 13, 56(15)      # restore R13
-+    lg 14, 64(15)      # restore R14
-+    lg 15, 72(15)      # restore R15
-+
-+    # Restore Floating point registers
-+    lg   1,80(15)
-+    ldgr 1,1            # restore F1
-+
-+    lg   1,88(15)
-+    ldgr 1,3            # restore F3
-+
-+    lg   1,96(15)
-+    ldgr 1,5            # restore F5
-+
-+    lg   1,104(15)
-+    ldgr 1,7            # restore F7
-+
-+    # Skip PC
-+
-+    # Adjust the stack
-+    lay 15, 120(15)
-+
-+    # R2 --> Address where the return transfer_t is stored
-+    # R0 --> FCTX
-+    # R4 --> DATA
-+    # R5 --> Context function
-+
-+    # Store the elements to return transfer_t
-+    stg 15, 0(2)
-+    stg 4, 8(2)
-+
-+    # Note: The address in R2 points to the place where the return
-+    # transfer_t is stored. Since context_function take transfer_t
-+    # as first parameter. And R2 is the register which holds the
-+    # first parameter value.
-+
-+    #jump to context function
-+    br 5
-+
-+.size   ontop_fcontext,.-ontop_fcontext
-+# Mark that we don't need executable stack.
-+.section .note.GNU-stack,"",%progbits
--- 
-2.18.1
-
diff --git a/SPECS/boost.spec b/SPECS/boost.spec
index 71ff355..0ee76f2 100644
--- a/SPECS/boost.spec
+++ b/SPECS/boost.spec
@@ -11,7 +11,7 @@
 %bcond_without mpich
 %bcond_without openmpi
 
-%ifnarch %{ix86} x86_64 ppc64le aarch64 s390x
+%ifnarch %{ix86} x86_64 ppc64le aarch64
   %bcond_with context
 %else
   %bcond_without context
@@ -27,7 +27,7 @@ Name: boost
 Summary: The free peer-reviewed portable C++ source libraries
 Version: 1.66.0
 %global version_enc 1_66_0
-Release: 9%{?dist}
+Release: 10%{?dist}
 License: Boost and MIT and Python
 
 %global toplev_dirname %{name}_%{version_enc}
@@ -143,13 +143,6 @@ Patch90: boost-1.66-build-memory-leak.patch
 # https://github.com/boostorg/graph/pull/84
 Patch91: boost-1.66-graph-return-local-addr.patch
 
-# https://bugzilla.redhat.com/show_bug.cgi?id=1782292
-Patch92: boost-1.66-support-s390x-arch.patch
-Patch93: boost-1.66-docu-update-architectures.patch
-Patch94: boost-1.66-optimize-s390x-instructions.patch
-Patch95: boost-1.66-fix-fcontext-routines.patch
-Patch96: boost-1.66-build-s390x.patch
-
 %bcond_with tests
 %bcond_with docs_generated
 
@@ -657,11 +650,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
 %patch89 -p1
 %patch90 -p1
 %patch91 -p2
-%patch92 -p1
-%patch93 -p1
-%patch94 -p1
-%patch95 -p1
-%patch96 -p1
 
 %build
 PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags)
@@ -1321,6 +1309,9 @@ fi
 %{_mandir}/man1/bjam.1*
 
 %changelog
+* Tue Aug 04 2020 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-10
+- Revert changes for s390x support in Boost.Context
+
 * Fri May 29 2020 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-9
 - Actually apply the patches added to the spec in 1.66.0-8