FreeBSD Bugzilla – Attachment 231833 Details for
Bug 261660
databases/mysql80-server: Fails to build on aarch64: innobase/ut/crc32.cc:114:10: fatal error: 'asm/hwcap.h' file not found
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Smaller diff for CRC32/Crypto fixes
patch-storage_innobase_ut_crc32.cc (text/plain), 2.98 KB, created by
Daniel O'Connor
on 2022-02-15 10:57:04 UTC
(
hide
)
Description:
Smaller diff for CRC32/Crypto fixes
Filename:
MIME Type:
Creator:
Daniel O'Connor
Created:
2022-02-15 10:57:04 UTC
Size:
2.98 KB
patch
obsolete
>--- /usr/ports/databases/mysql80-server/work/mysql-8.0.27/storage/innobase/ut/crc32.cc.orig 2021-09-28 11:46:34.000000000 +0000 >+++ /usr/ports/databases/mysql80-server/work/mysql-8.0.27/storage/innobase/ut/crc32.cc 2022-02-15 10:54:46.337868000 +0000 >@@ -111,7 +111,9 @@ > #endif /* CRC32_ARM64 */ > > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __FreeBSD__ > #include <asm/hwcap.h> >+#endif > #include <sys/auxv.h> > #endif /* CRC32_ARM64_DEFAULT */ > >@@ -360,8 +362,25 @@ > #endif /* CRC32_ARM64_APPLE */ > > #ifdef CRC32_ARM64_DEFAULT >+#ifdef __FreeBSD__ >+bool can_use_crc32() { >+ unsigned long capabilities; >+ >+ if (elf_aux_info(AT_HWCAP, &capabilities, sizeof(unsigned long))) >+ return false; >+ return capabilities & HWCAP_CRC32; >+} >+bool can_use_poly_mul() { >+ unsigned long capabilities; >+ >+ if (elf_aux_info(AT_HWCAP, &capabilities, sizeof(unsigned long))) >+ return false; >+ return capabilities & HWCAP_CRC32; >+} >+#else > bool can_use_crc32() { return getauxval(AT_HWCAP) & HWCAP_CRC32; } > bool can_use_poly_mul() { return getauxval(AT_HWCAP) & HWCAP_PMULL; } >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > > /** A helper template to statically unroll a loop with a fixed number of >@@ -470,25 +489,33 @@ > > #ifdef CRC32_ARM64 > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crc"))) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint32_t crc32_impl::update(uint32_t crc, unsigned char data) { > return __crc32cb(crc, data); > } > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crc"))) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint32_t crc32_impl::update(uint32_t crc, uint16_t data) { > return __crc32ch(crc, data); > } > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crc"))) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint32_t crc32_impl::update(uint32_t crc, uint32_t data) { > return __crc32cw(crc, data); > } > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crc"))) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint64_t crc32_impl::update(uint64_t crc, uint64_t data) { > return (uint64_t)__crc32cd((uint32_t)crc, data); >@@ -534,7 +561,9 @@ > } > template <uint32_t w> > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crypto"))) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint64_t use_pclmul::polynomial_mul_rev(uint32_t rev_u) { > constexpr uint64_t flipped_w = flip_at_32(w); >@@ -777,7 +806,9 @@ > MY_ATTRIBUTE((flatten)) > #endif /* CRC32_ARM64_APPLE */ > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crc+crypto"), flatten)) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint32_t crc32_using_pclmul(const byte *data, size_t len) { > return crc32<use_pclmul>(0, data, len); >@@ -797,7 +828,9 @@ > MY_ATTRIBUTE((flatten)) > #endif /* CRC32_ARM64_APPLE */ > #ifdef CRC32_ARM64_DEFAULT >+#ifndef __clang__ > MY_ATTRIBUTE((target("+crc"), flatten)) >+#endif > #endif /* CRC32_ARM64_DEFAULT */ > uint32_t crc32_using_unrolled_loop_poly_mul(const byte *data, size_t len) { > return crc32<use_unrolled_loop_poly_mul>(0, data, len);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 261660
:
231500
|
231777
|
231790
| 231833 |
231834