aboutsummaryrefslogtreecommitdiff
path: root/BUILDING.md
diff options
context:
space:
mode:
authorAdam Langley <agl@google.com>2016-08-24 17:34:18 -0700
committerCQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>2016-08-26 17:45:49 +0000
commit008f081c6304f79b2506d4a035a3b4bf72ee01b4 (patch)
treebe3b5899801d25d5840504f30eda7863dff021fe /BUILDING.md
parent81f433540ef5f34769e0febd429be065dff886fa (diff)
downloadboringssl-008f081c6304f79b2506d4a035a3b4bf72ee01b4.zip
boringssl-008f081c6304f79b2506d4a035a3b4bf72ee01b4.tar.gz
boringssl-008f081c6304f79b2506d4a035a3b4bf72ee01b4.tar.bz2
Allow .arch directives with Clang.
Some, very recent, versions of Clang now support `.arch`. Allow them to see these directives with BORINGSSL_CLANG_SUPPORTS_DOT_ARCH. BUG=39 Change-Id: I122ab4b3d5f14502ffe0c6e006950dc64abf0201 Reviewed-on: https://boringssl-review.googlesource.com/10600 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
Diffstat (limited to 'BUILDING.md')
-rw-r--r--BUILDING.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/BUILDING.md b/BUILDING.md
index 5631ded..522bee1 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -134,6 +134,18 @@ to enabling the 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