zlib: fix ARMv8 CRC32 compilation in GCC

GCC compilation in ARM architectures with CRC32 extension was
broken, as the extension was guarded for clang.

For GCC we are enforcing armv8-a+crc architecture at module
level, so the builtin extensions are available. Then we
just include arm_acle.h to declare the required builtins.

ThinLTO requires all modules to use same target, so this
change makes GCC fail with ThinLTO (that was not supported
anyway). Added a GN assert to explicitely fail in this case.

Adapted from Vladislav Mukulov <vladislav.mukulov@lge.com>
original patch.

Bug: 819294
Change-Id: Ifa5cf64318f88220052c44126db90bef999b7113
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1642730
Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Original-Commit-Position: refs/heads/master@{#667541}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 68e95088b6f73f489aa1e1023b7864794627cae1
2 files changed