--- 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 #include #include +#include #include #include #include --- 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 +#include + +/*` +[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_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 @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