mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Use function attributes for SSE 4.2 even when targeting that extension
On Red Hat 9 systems (or similar), the packaged gcc targets x86-64-v2,
but clang does not. This has caused build failures in the wake of
commit e2809e3a1
when building --with-llvm.
The most expedient fix is to use the same function attributes for
the inlined function as we do for the global function.
Reported-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> (plus members skimmer and bumblebee)
Diagnosed-by: Tom Lane <tgl@sss.pgh.pa.us>
Tested-by: Todd Cook <cookt@blackduck.com>
Discussion: https://postgr.es/m/CANWCAZZSxs3a1YRKehkgk2OHKbrVn+xZ+AWW8Co2R_f70NqqmA@mail.gmail.com
This commit is contained in:
@ -52,7 +52,13 @@ typedef uint32 pg_crc32c;
|
||||
|
||||
extern pg_crc32c pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len);
|
||||
|
||||
/*
|
||||
* We can only get here if the host compiler targets SSE 4.2, but on some
|
||||
* systems gcc and clang don't have the same built-in targets, so we still
|
||||
* must use a function attribute here to accommodate "--with-llvm" builds.
|
||||
*/
|
||||
pg_attribute_no_sanitize_alignment()
|
||||
pg_attribute_target("sse4.2")
|
||||
static inline
|
||||
pg_crc32c
|
||||
pg_comp_crc32c_dispatch(pg_crc32c crc, const void *data, size_t len)
|
||||
|
Reference in New Issue
Block a user