Re: [PATCH] libiberty: Fix build with GCC < 7

2023-12-05 Thread Ian Lance Taylor
On Tue, Dec 5, 2023 at 2:06 PM Jakub Jelinek  wrote:
>
> Ok for trunk (both gcc and binutils)?
>
> 2023-12-05  Jakub Jelinek  
>
> * configure.ac (HAVE_X86_SHA1_HW_SUPPORT): Verify __get_cpuid and
> __get_cpuid_count are not implicitly declared.
> * configure: Regenerated.

This is fine.  Thanks.

Ian


[PATCH] libiberty: Fix build with GCC < 7

2023-12-05 Thread Jakub Jelinek
Hi!

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  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.

Bootstrapped/regtested in GCC on x86_64-linux and i686-linux with GCC 12 as
system compiler (HAVE_X86_SHA1_HW_SUPPORT is defined there) and tested by
Tobias with GCC 4.8.5 (it isn't defined there anymore).

Ok for trunk (both gcc and binutils)?

2023-12-05  Jakub Jelinek  

* configure.ac (HAVE_X86_SHA1_HW_SUPPORT): Verify __get_cpuid and
__get_cpuid_count are not implicitly declared.
* configure: Regenerated.

--- libiberty/configure.ac.jj   2023-12-01 08:10:44.877293904 +0100
+++ libiberty/configure.ac  2023-12-05 16:09:49.506323449 +0100
@@ -771,6 +771,8 @@ void foo (__m128i *buf, unsigned int e,
 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)
--- libiberty/configure.jj  2023-12-01 08:10:44.876293919 +0100
+++ libiberty/configure 2023-12-05 16:10:06.415083621 +0100
@@ -7667,6 +7667,8 @@ void foo (__m128i *buf, unsigned int e,
 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)

Jakub