Remove clang assembler .arch workaround.
This makes it difficult to build against the NDK's toolchain file. The problem is __clang__ just means Clang is the frontend and implies nothing about which assembler. When using as, it is fine. When using clang-as on Linux, one needs a clang-as from this year. The only places where we case about clang's integrated assembler are iOS (where perlasm strips out .arch anyway) and build environments like Chromium which have a regularly-updated clang. Thus we can remove this now. Bug: 39 Update-Note: Holler if this breaks the build. If it doesn't break the build, you can probably remove any BORINGSSL_CLANG_SUPPORTS_DOT_ARCH or explicit -march armv8-a+crypto lines in your BoringSSL build. Change-Id: I21ce54b14c659830520c2f1d51c7bd13e0980c68 Reviewed-on: https://boringssl-review.googlesource.com/24124 Commit-Queue: Adam Langley <agl@google.com> Reviewed-by: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
This commit is contained in:
parent
a9c5b7b3fb
commit
4358f104cf
12
BUILDING.md
12
BUILDING.md
@ -145,18 +145,6 @@ corresponding ARM feature.
|
||||
Note that if a feature is enabled in this way, but not actually supported at
|
||||
run-time, BoringSSL will likely crash.
|
||||
|
||||
## Assembling ARMv8 with Clang
|
||||
|
||||
In order to support the ARMv8 crypto instructions, Clang requires that the
|
||||
architecture be `armv8-a+crypto`. However, setting that as a general build flag
|
||||
would allow the compiler to assume that crypto instructions are *always*
|
||||
supported, even without testing for them.
|
||||
|
||||
It's possible to set the architecture in an assembly file using the `.arch`
|
||||
directive, but only very recent versions of Clang support this. If
|
||||
`BORINGSSL_CLANG_SUPPORTS_DOT_ARCH` is defined then `.arch` directives will be
|
||||
used with Clang, otherwise you may need to craft acceptable assembler flags.
|
||||
|
||||
# Running tests
|
||||
|
||||
There are two sets of tests: the C/C++ tests and the blackbox tests. For former
|
||||
|
@ -58,11 +58,7 @@ $code=<<___;
|
||||
#if __ARM_MAX_ARCH__>=7
|
||||
.text
|
||||
___
|
||||
$code.=<<___ if ($flavour =~ /64/);
|
||||
#if !defined(__clang__) || defined(BORINGSSL_CLANG_SUPPORTS_DOT_ARCH)
|
||||
.arch armv8-a+crypto
|
||||
#endif
|
||||
___
|
||||
$code.=".arch armv8-a+crypto\n" if ($flavour =~ /64/);
|
||||
$code.=<<___ if ($flavour !~ /64/);
|
||||
.arch armv7-a // don't confuse not-so-latest binutils with argv8 :-)
|
||||
.fpu neon
|
||||
|
@ -66,11 +66,7 @@ $code=<<___;
|
||||
|
||||
.text
|
||||
___
|
||||
$code.=<<___ if ($flavour =~ /64/);
|
||||
#if !defined(__clang__) || defined(BORINGSSL_CLANG_SUPPORTS_DOT_ARCH)
|
||||
.arch armv8-a+crypto
|
||||
#endif
|
||||
___
|
||||
$code.=".arch armv8-a+crypto\n" if ($flavour =~ /64/);
|
||||
$code.=<<___ if ($flavour !~ /64/);
|
||||
.fpu neon
|
||||
.code 32
|
||||
|
Loading…
Reference in New Issue
Block a user