--- 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