diff --git a/NEWS b/NEWS index d231676da06..b815dd441ea 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ PHP NEWS Core: . Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku. (David Carlier) + . Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky) Date: . Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz) diff --git a/configure.ac b/configure.ac index 983bbe5c596..ca1777c5705 100644 --- a/configure.ac +++ b/configure.ac @@ -562,10 +562,12 @@ dnl Checks for GCC function attributes on all systems except ones without glibc dnl Fix for these systems is already included in GCC 7, but not on GCC 6. dnl dnl At least some versions of FreeBSD seem to have buggy ifunc support, see -dnl bug #77284. Conservatively don't use ifuncs on FreeBSD. -AS_CASE([$host_alias], [*-*-*android*|*-*-*uclibc*|*-*-*musl*|*freebsd*|*openbsd*], [true], [ - AX_GCC_FUNC_ATTRIBUTE([ifunc]) - AX_GCC_FUNC_ATTRIBUTE([target]) +dnl bug #77284. Conservatively don't use ifuncs on FreeBSD prior to version 12. +AS_CASE([$host_alias], [*-*-*android*|*-*-*uclibc*|*-*-*musl*|*openbsd*], [true], [ + if test "`uname -s 2>/dev/null`" != "FreeBSD" || test "`uname -U 2>/dev/null`" -ge 1200000; then + AX_GCC_FUNC_ATTRIBUTE([ifunc]) + AX_GCC_FUNC_ATTRIBUTE([target]) + fi ]) dnl Check for IPv6 support.