mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 02:44:18 +08:00
libiberty: Fix build with GCC < 7
Tobias reported on IRC that the linker fails to build with GCC 4.8.5. In configure I've tried to use everything actually used in the sha1.c x86 hw implementation, but unfortunately I forgot about implicit function declarations. GCC before 7 did have <cpuid.h> header and bit_SHA define and __get_cpuid function defined inline, but it didn't define __get_cpuid_count, which compiled fine (and the configure test is intentionally compile time only) due to implicit function declaration, but then failed to link when linking the linker, because __get_cpuid_count wasn't defined anywhere. The following patch fixes that by using what autoconf uses in AC_CHECK_DECL to make sure the functions are declared. 2023-12-05 Jakub Jelinek <jakub@redhat.com> * configure.ac (HAVE_X86_SHA1_HW_SUPPORT): Verify __get_cpuid and __get_cpuid_count are not implicitly declared. * configure: Regenerated.
This commit is contained in:
parent
b8cf266f4c
commit
c73cc6fe62
2
libiberty/configure
vendored
2
libiberty/configure
vendored
@ -7667,6 +7667,8 @@ void foo (__m128i *buf, unsigned int e, __m128i msg0, __m128i msg1)
|
||||
int bar (void)
|
||||
{
|
||||
unsigned int eax, ebx, ecx, edx;
|
||||
(void) __get_cpuid;
|
||||
(void) __get_cpuid_count;
|
||||
if (__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx)
|
||||
&& (ebx & bit_SHA) != 0
|
||||
&& __get_cpuid (1, &eax, &ebx, &ecx, &edx)
|
||||
|
@ -771,6 +771,8 @@ void foo (__m128i *buf, unsigned int e, __m128i msg0, __m128i msg1)
|
||||
int bar (void)
|
||||
{
|
||||
unsigned int eax, ebx, ecx, edx;
|
||||
(void) __get_cpuid;
|
||||
(void) __get_cpuid_count;
|
||||
if (__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx)
|
||||
&& (ebx & bit_SHA) != 0
|
||||
&& __get_cpuid (1, &eax, &ebx, &ecx, &edx)
|
||||
|
Loading…
Reference in New Issue
Block a user