Define supported architectures using check_architecture().
This replaces the awkward construction that was required for
armv6/armv7/armv7s, where we set the ARCH value to whatever the current
architecture was, if the current architecture was supported.
Work around arm64's broken as(1).
The shipped arm64 as(1) is a thin shim around clang's arm64 integrated
assembler, which does not support documented as(1) behavior.
Clang uses file extensions to determine the default action to
take; unless the assembler input has a .s or .S extension, clang
assumes non-assembler input.
As it turns out, `stdin` (eg, passing "-") has no file extension.
To work around this, we have to pass clang '-x assembler' to override
the default behavior. Unfortunately,...
Include support for generating new trampoline types as unsupported API.
This provides a trampoline_table.h containing the necessary API to
manage the allocation of trampoline tables. This API is unsupported,
and may be included directly by first defining PL_BLOCKIMP_PRIVATE.
Additionally, the gentramp.sh script is included as a framework
resource. It may be used to generate arbitrary trampoline tables using
the .tramp file format as used by the imp_implementationWithBlock