This file is part of MXE.
See index.html for further information.
From 7b1ff5c3a275e2903a7f35a3817d00f8a75b47d0 Mon Sep 17 00:00:00 2001
From: Tony Theodore
Date: Sun, 29 Mar 2015 12:55:15 +0200
Subject: [PATCH 1/3] fixes
This patch has been taken from:
https://aur.archlinux.org/packages/mingw-w64-boost/
diff --git a/boost/detail/interlocked.hpp b/boost/detail/interlocked.hpp
index 2c91ce2..abc7c6d 100644
--- a/boost/detail/interlocked.hpp
+++ b/boost/detail/interlocked.hpp
@@ -1,6 +1,10 @@
#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+#ifndef BOOST_USE_WINDOWS_H
+#define BOOST_USE_WINDOWS_H
+#endif
+
//
// boost/detail/interlocked.hpp
//
diff --git a/boost/detail/interlocked.hpp.orig b/boost/detail/interlocked.hpp.orig
new file mode 100644
index 0000000..2c91ce2
--- /dev/null
+++ b/boost/detail/interlocked.hpp.orig
@@ -0,0 +1,218 @@
+#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+
+//
+// boost/detail/interlocked.hpp
+//
+// Copyright 2005 Peter Dimov
+//
+// 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)
+//
+
+#include
+
+// MS compatible compilers support #pragma once
+#ifdef BOOST_HAS_PRAGMA_ONCE
+#pragma once
+#endif
+
+#if defined( BOOST_USE_WINDOWS_H )
+
+# include
+
+# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer
+
+#elif defined( BOOST_USE_INTRIN_H )
+
+#include
+
+# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
+
+# if defined(_M_IA64) || defined(_M_AMD64) || defined(__x86_64__) || defined(__x86_64)
+
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
+
+# else
+
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+ ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+ ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
+
+# endif
+
+#elif defined(_WIN32_WCE)
+
+#if _WIN32_WCE >= 0x600
+
+extern "C" long __cdecl _InterlockedIncrement( long volatile * );
+extern "C" long __cdecl _InterlockedDecrement( long volatile * );
+extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
+extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
+extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
+
+# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
+
+#else
+// under Windows CE we still have old-style Interlocked* functions
+
+extern "C" long __cdecl InterlockedIncrement( long* );
+extern "C" long __cdecl InterlockedDecrement( long* );
+extern "C" long __cdecl InterlockedCompareExchange( long*, long, long );
+extern "C" long __cdecl InterlockedExchange( long*, long );
+extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
+
+# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
+
+#endif
+
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+ ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+ ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
+
+#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
+
+#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1400
+
+#include
+
+#else
+
+# if defined( __CLRCALL_PURE_OR_CDECL )
+# define BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL __CLRCALL_PURE_OR_CDECL
+# else
+# define BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL __cdecl
+# endif
+
+extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
+extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
+extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long );
+extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long );
+extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long );
+
+# undef BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL
+
+# if defined( BOOST_MSVC ) && BOOST_MSVC >= 1310
+# pragma intrinsic( _InterlockedIncrement )
+# pragma intrinsic( _InterlockedDecrement )
+# pragma intrinsic( _InterlockedCompareExchange )
+# pragma intrinsic( _InterlockedExchange )
+# pragma intrinsic( _InterlockedExchangeAdd )
+# endif
+
+#endif
+
+# if defined(_M_IA64) || defined(_M_AMD64)
+
+extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
+extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
+
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
+
+# else
+
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+ ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+ ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
+
+# endif
+
+# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
+
+// Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets.
+#elif defined(__MINGW64_VERSION_MAJOR)
+
+// MinGW-w64 provides intrin.h for both 32 and 64-bit targets.
+#include
+
+# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
+# if defined(__x86_64__) || defined(__x86_64)
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
+# else
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+ ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+ ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
+# endif
+
+#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
+
+#define BOOST_INTERLOCKED_IMPORT __declspec(dllimport)
+
+namespace boost
+{
+
+namespace detail
+{
+
+extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
+extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
+extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
+extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
+extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
+
+# if defined(_M_IA64) || defined(_M_AMD64)
+extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
+extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
+# endif
+
+} // namespace detail
+
+} // namespace boost
+
+# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement
+# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange
+# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange
+# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd
+
+# if defined(_M_IA64) || defined(_M_AMD64)
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::boost::detail::InterlockedCompareExchangePointer
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER ::boost::detail::InterlockedExchangePointer
+# else
+# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
+ ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
+# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+ ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
+# endif
+
+#else
+
+# error "Interlocked intrinsics not available"
+
+#endif
+
+#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
diff --git a/libs/context/build/Jamfile.v2 b/libs/context/build/Jamfile.v2
index 7cc8a07..2143ed3 100644
--- a/libs/context/build/Jamfile.v2
+++ b/libs/context/build/Jamfile.v2
@@ -581,6 +581,17 @@ alias asm_context_sources
;
alias asm_context_sources
+ : asm/make_i386_ms_pe_gas.S
+ asm/jump_i386_ms_pe_gas.S
+ dummy.cpp
+ : 32
+ x86
+ pe
+ windows
+ gcc
+ ;
+
+alias asm_context_sources
: asm/make_i386_ms_pe_masm.asm
asm/jump_i386_ms_pe_masm.asm
dummy.cpp
@@ -715,6 +726,17 @@ alias asm_context_sources
;
alias asm_context_sources
+ : asm/make_x86_64_ms_pe_gas.S
+ asm/jump_x86_64_ms_pe_gas.S
+ dummy.cpp
+ : 64
+ x86
+ pe
+ windows
+ gcc
+ ;
+
+alias asm_context_sources
: asm/make_x86_64_ms_pe_masm.asm
asm/jump_x86_64_ms_pe_masm.asm
dummy.cpp
diff --git a/libs/context/build/Jamfile.v2.orig b/libs/context/build/Jamfile.v2.orig
new file mode 100644
index 0000000..7cc8a07
--- /dev/null
+++ b/libs/context/build/Jamfile.v2.orig
@@ -0,0 +1,775 @@
+
+# Boost.Context Library Build Jamfile
+
+# Copyright Oliver Kowalke 2009.
+# 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)
+
+import common ;
+import feature ;
+import indirect ;
+import modules ;
+import os ;
+import toolset ;
+import architecture ;
+
+project boost/context
+ : requirements
+ SOLARIS:_XOPEN_SOURCE=600
+ shared:BOOST_CONTEXT_DYN_LINK=1
+ BOOST_CONTEXT_SOURCE
+ : usage-requirements
+ shared:BOOST_CONTEXT_DYN_LINK=1
+ : source-location ../src
+ ;
+
+local rule default_binary_format ( )
+{
+ local tmp = elf ;
+ if [ os.name ] = "MACOSX" { tmp = mach-o ; }
+ if [ os.name ] = "NT" { tmp = pe ; }
+ if [ os.name ] = "AIX" { tmp = xcoff ; }
+ return $(tmp) ;
+}
+
+feature.feature binary-format
+ : elf
+ mach-o
+ pe
+ xcoff
+ : propagated
+ ;
+feature.set-default binary-format : [ default_binary_format ] ;
+
+
+local rule default_abi ( )
+{
+ local tmp = sysv ;
+ if [ os.name ] = "NT" { tmp = ms ; }
+ else if [ os.platform ] = "ARM" { tmp = aapcs ; }
+ else if [ os.platform ] = "MIPS" { tmp = o32 ; }
+ return $(tmp) ;
+}
+
+feature.feature abi
+ : aapcs
+ eabi
+ ms
+ n32
+ n64
+ o32
+ o64
+ sysv
+ x32
+ : propagated
+ ;
+feature.set-default abi : [ default_abi ] ;
+
+
+actions gas32
+{
+ cpp -x assembler-with-cpp "$(>)" | as --32 -o "$(<)"
+}
+
+actions gas64
+{
+ cpp -x assembler-with-cpp "$(>)" | as --64 -o "$(<)"
+}
+
+actions gasx32
+{
+ cpp -x assembler-with-cpp "$(>)" | as --x32 -o "$(<)"
+}
+
+actions gas
+{
+ cpp -x assembler-with-cpp "$(>)" | as -o "$(<)"
+}
+
+actions armasm
+{
+ armasm "$(>)" "$(<)"
+}
+
+actions masm
+{
+ ml /c /Fo"$(<)" "$(>)"
+}
+
+actions masm64
+{
+ ml64 /c /Fo"$(<)" "$(>)"
+}
+
+
+rule configure ( properties * )
+{
+ local result ;
+
+# if ( ! ( gcc in $(properties)
+# || intel in $(properties)
+# || msvc in $(properties) ) )
+# {
+# result = no ;
+# ECHO "toolset not supported" ;
+# }
+
+ return $(result) ;
+}
+
+# ARM
+# ARM/AAPCS/ELF
+alias asm_context_sources
+ : [ make asm/make_arm_aapcs_elf_gas.o : asm/make_arm_aapcs_elf_gas.S : @gas32 ]
+ [ make asm/jump_arm_aapcs_elf_gas.o : asm/jump_arm_aapcs_elf_gas.S : @gas32 ]
+ : aapcs
+ 32
+ arm
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_arm_aapcs_elf_gas.S
+ asm/jump_arm_aapcs_elf_gas.S
+ : aapcs
+ 32
+ arm
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_arm_aapcs_elf_gas.S
+ asm/jump_arm_aapcs_elf_gas.S
+ : aapcs
+ 32
+ arm
+ elf
+ gcc
+ ;
+
+alias asm_context_sources
+ : asm/make_arm_aapcs_elf_gas.S
+ asm/jump_arm_aapcs_elf_gas.S
+ : aapcs
+ 32
+ arm
+ elf
+ qcc
+ ;
+# ARM/AAPCS/MACH-O
+alias asm_context_sources
+ : [ make asm/make_arm_aapcs_macho_gas.o : asm/make_arm_aapcs_macho_gas.S : @gas32 ]
+ [ make asm/jump_arm_aapcs_macho_gas.o : asm/jump_arm_aapcs_macho_gas.S : @gas32 ]
+ : aapcs
+ 32
+ arm
+ mach-o
+ ;
+
+alias asm_context_sources
+ : asm/make_arm_aapcs_macho_gas.S
+ asm/jump_arm_aapcs_macho_gas.S
+ : aapcs
+ 32
+ arm
+ mach-o
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_arm_aapcs_macho_gas.S
+ asm/jump_arm_aapcs_macho_gas.S
+ : aapcs
+ 32
+ arm
+ mach-o
+ darwin
+ ;
+# ARM/AAPCS/PE
+alias asm_context_sources
+ : [ make asm/make_arm_aapcs_pe_armasm.o : asm/make_arm_aapcs_pe_armasm.asm : @armasm ]
+ [ make asm/jump_arm_aapcs_pe_armasm.o : asm/jump_arm_aapcs_pe_armasm.asm : @armasm ]
+ untested.cpp
+ : aapcs
+ 32
+ arm
+ pe
+ ;
+
+alias asm_context_sources
+ : asm/make_arm_aapcs_pe_armasm.asm
+ asm/jump_arm_aapcs_pe_armasm.asm
+ untested.cpp
+ : aapcs
+ 32
+ arm
+ pe
+ msvc
+ ;
+
+# MIPS
+# MIPS/O32/ELF
+alias asm_context_sources
+ : [ make asm/make_mips32_o32_elf_gas.o : asm/make_mips32_o32_elf_gas.S : @gas32 ]
+ [ make asm/jump_mips32_o32_elf_gas.o : asm/jump_mips32_o32_elf_gas.S : @gas32 ]
+ : o32
+ 32
+ mips1
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_mips32_o32_elf_gas.S
+ asm/jump_mips32_o32_elf_gas.S
+ : o32
+ 32
+ mips1
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_mips32_o32_elf_gas.S
+ asm/jump_mips32_o32_elf_gas.S
+ : o32
+ 32
+ mips1
+ elf
+ gcc
+ ;
+
+# POWERPC_32
+# POWERPC_32/SYSV/ELF
+alias asm_context_sources
+ : [ make asm/make_ppc32_sysv_elf_gas.o : asm/make_ppc32_sysv_elf_gas.S : @gas32 ]
+ [ make asm/jump_ppc32_sysv_elf_gas.o : asm/jump_ppc32_sysv_elf_gas.S : @gas32 ]
+ : sysv
+ 32
+ power
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc32_sysv_elf_gas.S
+ asm/jump_ppc32_sysv_elf_gas.S
+ : sysv
+ 32
+ power
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc32_sysv_elf_gas.S
+ asm/jump_ppc32_sysv_elf_gas.S
+ : sysv
+ 32
+ power
+ elf
+ gcc
+ ;
+# POWERPC_32/SYSV/MACH-O
+alias asm_context_sources
+ : [ make asm/make_ppc32_sysv_macho_gas.o : asm/make_ppc32_sysv_macho_gas.S : @gas32 ]
+ [ make asm/jump_ppc32_sysv_macho_gas.o : asm/jump_ppc32_sysv_macho_gas.S : @gas32 ]
+ : sysv
+ 32
+ power
+ mach-o
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc32_sysv_macho_gas.S
+ asm/jump_ppc32_sysv_macho_gas.S
+ : sysv
+ 32
+ power
+ mach-o
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc32_sysv_macho_gas.S
+ asm/jump_ppc32_sysv_macho_gas.S
+ : sysv
+ 32
+ power
+ mach-o
+ darwin
+ ;
+#POWERPC_32/SYSV/XCOFF
+alias asm_context_sources
+ : [ make asm/make_ppc32_sysv_xcoff_gas.o : asm/make_ppc32_sysv_xcoff_gas.S : @gas ]
+ [ make asm/jump_ppc32_sysv_xcoff_gas.o : asm/jump_ppc32_sysv_xcoff_gas.S : @gas ]
+ : sysv
+ 32
+ power
+ xcoff
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc32_sysv_xcoff_gas.S
+ asm/jump_ppc32_sysv_xcoff_gas.S
+ : sysv
+ 32
+ power
+ xcoff
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc32_sysv_xcoff_gas.S
+ asm/jump_ppc32_sysv_xcoff_gas.S
+ : sysv
+ 32
+ power
+ xcoff
+ gcc
+ ;
+
+# POWERPC_64
+# POWERPC_64/SYSV/ELF
+alias asm_context_sources
+ : [ make asm/make_ppc64_sysv_elf_gas.o : asm/make_ppc64_sysv_elf_gas.S : @gas64 ]
+ [ make asm/jump_ppc64_sysv_elf_gas.o : asm/jump_ppc64_sysv_elf_gas.S : @gas64 ]
+ : sysv
+ 64
+ power
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc64_sysv_elf_gas.S
+ asm/jump_ppc64_sysv_elf_gas.S
+ : sysv
+ 64
+ power
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc64_sysv_elf_gas.S
+ asm/jump_ppc64_sysv_elf_gas.S
+ : sysv
+ 64
+ power
+ elf
+ gcc
+ ;
+# POWERPC_64/SYSV/MACH-O
+alias asm_context_sources
+ : [ make asm/make_ppc64_sysv_macho_gas.o : asm/make_ppc64_sysv_macho_gas.S : @gas ]
+ [ make asm/jump_ppc64_sysv_macho_gas.o : asm/jump_ppc64_sysv_macho_gas.S : @gas ]
+ untested.cpp
+ : sysv
+ 64
+ power
+ mach-o
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc64_sysv_macho_gas.S
+ asm/jump_ppc64_sysv_macho_gas.S
+ untested.cpp
+ : sysv
+ 64
+ power
+ mach-o
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc64_sysv_macho_gas.S
+ asm/jump_ppc64_sysv_macho_gas.S
+ untested.cpp
+ : sysv
+ 64
+ power
+ mach-o
+ darwin
+ ;
+# POWERPC_64/SYSV/XCOFF
+alias asm_context_sources
+ : [ make asm/make_ppc64_sysv_xcoff_gas.o : asm/make_ppc64_sysv_xcoff_gas.S : @gas ]
+ [ make asm/jump_ppc64_sysv_xcoff_gas.o : asm/jump_ppc64_sysv_xcoff_gas.S : @gas ]
+ : sysv
+ 64
+ power
+ xcoff
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc64_sysv_xcoff_gas.S
+ asm/jump_ppc64_sysv_xcoff_gas.S
+ : sysv
+ 64
+ power
+ xcoff
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_ppc64_sysv_xcoff_gas.S
+ asm/jump_ppc64_sysv_xcoff_gas.S
+ : sysv
+ 64
+ power
+ xcoff
+ gcc
+ ;
+
+# POWERPC universal
+# POWERPC_32_64/SYSV/MACH-O
+alias asm_context_sources
+ : asm/make_ppc32_ppc64_sysv_macho_gas.S
+ asm/jump_ppc32_ppc64_sysv_macho_gas.S
+ : sysv
+ 32_64
+ power
+ mach-o
+ ;
+
+# SPARC
+# SPARC/SYSV/ELF
+alias asm_context_sources
+ : [ make asm/make_sparc_sysv_elf_gas.o : asm/make_sparc_sysv_elf_gas.S : @gas32 ]
+ [ make asm/jump_sparc_sysv_elf_gas.o : asm/jump_sparc_sysv_elf_gas.S : @gas32 ]
+ unsupported.cpp
+ : sysv
+ 32
+ sparc
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_sparc_sysv_elf_gas.S
+ asm/jump_sparc_sysv_elf_gas.S
+ unsupported.cpp
+ : sysv
+ 32
+ sparc
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_sparc_sysv_elf_gas.S
+ asm/jump_sparc_sysv_elf_gas.S
+ unsupported.cpp
+ : sysv
+ 32
+ sparc
+ elf
+ gcc
+ ;
+
+# SPARC_64
+# SPARC_64/SYSV/ELF
+alias asm_context_sources
+ : [ make asm/make_sparc64_sysv_elf_gas.o : asm/make_sparc64_sysv_elf_gas.S : @gas64 ]
+ [ make asm/jump_sparc64_sysv_elf_gas.o : asm/jump_sparc64_sysv_elf_gas.S : @gas64 ]
+ unsupported.cpp
+ : sysv
+ 64
+ sparc
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_sparc64_sysv_elf_gas.S
+ asm/jump_sparc64_sysv_elf_gas.S
+ unsupported.cpp
+ : sysv
+ 64
+ sparc
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_sparc64_sysv_elf_gas.S
+ asm/jump_sparc64_sysv_elf_gas.S
+ unsupported.cpp
+ : sysv
+ 64
+ sparc
+ elf
+ gcc
+ ;
+
+# X86
+# X86/SYSV/ELF
+alias asm_context_sources
+ : [ make asm/make_i386_sysv_elf_gas.o : asm/make_i386_sysv_elf_gas.S : @gas32 ]
+ [ make asm/jump_i386_sysv_elf_gas.o : asm/jump_i386_sysv_elf_gas.S : @gas32 ]
+ : sysv
+ 32
+ x86
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_sysv_elf_gas.S
+ asm/jump_i386_sysv_elf_gas.S
+ : sysv
+ 32
+ x86
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_sysv_elf_gas.S
+ asm/jump_i386_sysv_elf_gas.S
+ : sysv
+ 32
+ x86
+ elf
+ gcc
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_sysv_elf_gas.S
+ asm/jump_i386_sysv_elf_gas.S
+ : sysv
+ 32
+ x86
+ elf
+ intel
+ ;
+# X86/SYSV/MACH-O
+alias asm_context_sources
+ : [ make asm/make_i386_sysv_macho_gas.o : asm/make_i386_sysv_macho_gas.S : @gas32 ]
+ [ make asm/jump_i386_sysv_macho_gas.o : asm/jump_i386_sysv_macho_gas.S : @gas32 ]
+ : sysv
+ 32
+ x86
+ mach-o
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_sysv_macho_gas.S
+ asm/jump_i386_sysv_macho_gas.S
+ : sysv
+ 32
+ x86
+ mach-o
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_sysv_macho_gas.S
+ asm/jump_i386_sysv_macho_gas.S
+ : sysv
+ 32
+ x86
+ mach-o
+ darwin
+ ;
+# X86/MS/PE
+alias asm_context_sources
+ : [ make asm/make_i386_ms_pe_masm.o : asm/make_i386_ms_pe_masm.asm : @masm ]
+ [ make asm/jump_i386_ms_pe_masm.o : asm/jump_i386_ms_pe_masm.asm : @masm ]
+ dummy.cpp
+ : ms
+ 32
+ x86
+ pe
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_ms_pe_masm.asm
+ asm/jump_i386_ms_pe_masm.asm
+ dummy.cpp
+ : ms
+ 32
+ x86
+ pe
+ intel
+ ;
+
+alias asm_context_sources
+ : asm/make_i386_ms_pe_masm.asm
+ asm/jump_i386_ms_pe_masm.asm
+ dummy.cpp
+ : ms
+ 32
+ x86
+ pe
+ msvc
+ ;
+
+# X86_64
+# X86_64/SYSV/ELF
+alias asm_context_sources
+ : [ make asm/make_x86_64_sysv_elf_gas.o : asm/make_x86_64_sysv_elf_gas.S : @gas64 ]
+ [ make asm/jump_x86_64_sysv_elf_gas.o : asm/jump_x86_64_sysv_elf_gas.S : @gas64 ]
+ : sysv
+ 64
+ x86
+ elf
+ ;
+
+alias asm_context_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ : sysv
+ 64
+ x86
+ elf
+ clang
+ ;
+
+alias asm_context_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ : sysv
+