[compiler-rt] 953ae94 - [builtins] Fix CPU feature detection for FreeBSD on AArch64 (#76532)

via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 29 02:13:43 PST 2023


Author: Dimitry Andric
Date: 2023-12-29T11:13:40+01:00
New Revision: 953ae94149f09ed1bac189b4d2b790de6b98c60e

URL: https://github.com/llvm/llvm-project/commit/953ae94149f09ed1bac189b4d2b790de6b98c60e
DIFF: https://github.com/llvm/llvm-project/commit/953ae94149f09ed1bac189b4d2b790de6b98c60e.diff

LOG: [builtins] Fix CPU feature detection for FreeBSD on AArch64 (#76532)

 [builtins] Fix CPU feature detection for FreeBSD on AArch64

This is a follow-up to #75635 which broke the build for FreeBSD on
AArch64:

```
compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/freebsd.inc:3:16: error: call to undeclared function 'elf_aux_info'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    3 |   int result = elf_aux_info(AT_HWCAP, &hwcap, sizeof hwcap);
      |                ^
```

Using `elf_aux_info()` requires including `<sys/auxv.h>` first. To
prevent redeclaration issues with `hwcap.inc` attempting to define
`HWCAP_xxx` macros before `<sys/auxv.h>` does so, include `<sys/auxv.h>`
before any of the `.inc` files on FreeBSD.

Added: 
    

Modified: 
    compiler-rt/lib/builtins/cpu_model/aarch64.c

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/builtins/cpu_model/aarch64.c b/compiler-rt/lib/builtins/cpu_model/aarch64.c
index 8e85de2218f7db..44e1cf49d1e927 100644
--- a/compiler-rt/lib/builtins/cpu_model/aarch64.c
+++ b/compiler-rt/lib/builtins/cpu_model/aarch64.c
@@ -34,6 +34,9 @@ _Bool __aarch64_have_lse_atomics
     __attribute__((visibility("hidden"), nocommon)) = false;
 
 #if defined(__FreeBSD__)
+// clang-format off: should not reorder sys/auxv.h alphabetically
+#include <sys/auxv.h>
+// clang-format on
 #include "aarch64/hwcap.inc"
 #include "aarch64/lse_atomics/freebsd.inc"
 #elif defined(__Fuchsia__)


        


More information about the llvm-commits mailing list