diff mbox series

[v2,1/1] package/php: Fix build on arm

Message ID 20240825142323.1780341-1-bernd@kuhls.net
State Superseded
Headers show
Series [v2,1/1] package/php: Fix build on arm | expand

Commit Message

Bernd Kuhls Aug. 25, 2024, 2:23 p.m. UTC
Fixes:
http://autobuild.buildroot.org/results/5e8ef91d84018ccdf85f2156292feb3460bfe698/

Without this patch configure wrongfully detects aarch64 support:

    checking for aarch64 CRC32 API... yes

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
v2: rewritten patch to fix configure.ac (Thomas)

 ...onfigure-check-for-aarch64-CRC32-API.patch | 48 +++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 package/php/0006-Autotools-fix-configure-check-for-aarch64-CRC32-API.patch
diff mbox series

Patch

diff --git a/package/php/0006-Autotools-fix-configure-check-for-aarch64-CRC32-API.patch b/package/php/0006-Autotools-fix-configure-check-for-aarch64-CRC32-API.patch
new file mode 100644
index 0000000000..f2cef640be
--- /dev/null
+++ b/package/php/0006-Autotools-fix-configure-check-for-aarch64-CRC32-API.patch
@@ -0,0 +1,48 @@ 
+From fc8136dc90e4c42a72666ab74f37e2fdc8794fee Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd@kuhls.net>
+Date: Sun, 25 Aug 2024 15:56:37 +0200
+Subject: [PATCH] Autotools: fix configure check for aarch64 CRC32 API
+
+On arm32 bit the check succeeds leading to a build error later on:
+
+/home/autobuild/autobuild/instance-3/output-1/build/php-8.3.10/ext/standard/crc32.c:70:12:
+ error: 'armv8-a' does not support feature 'nothing'
+   70 | #   pragma GCC target ("+nothing+crc")
+
+Upstream: https://github.com/php/php-src/pull/15587
+
+Co-authored-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+[http://lists.busybox.net/pipermail/buildroot/2024-August/761151.html]
+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
+[Bernd: rebased for 8.3.10]
+---
+ configure.ac | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 491963daae..2693ba09f4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -754,7 +754,19 @@
+ PHP_CHECK_IN_ADDR_T
+ 
+ AC_CACHE_CHECK([for aarch64 CRC32 API], ac_cv_func___crc32d,
+-[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <arm_acle.h>]],[[__crc32d(0, 0);]])],[ac_cv_func___crc32d=yes],[ac_cv_func___crc32d="no"])])
++[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
++#include <arm_acle.h>
++# if defined(__GNUC__)
++#  if!defined(__clang__)
++#   pragma GCC push_options
++#   pragma GCC target ("+nothing+crc")
++#  elif defined(__APPLE__)
++#   pragma clang attribute push(__attribute__((target("crc"))), apply_to=function)
++#  else
++#   pragma clang attribute push(__attribute__((target("+nothing+crc"))), apply_to=function)
++#  endif
++# endif
++]], [[__crc32d(0, 0);]])],[ac_cv_func___crc32d=yes],[ac_cv_func___crc32d="no"])])
+ if test "$ac_cv_func___crc32d" = "yes"; then
+   AC_DEFINE([HAVE_AARCH64_CRC32], [1], [Define when aarch64 CRC32 API is available.])
+ fi
+-- 
+2.39.2