Waldemar Brodkorb пре 2 година
родитељ
комит
34b7ce1d71
2 измењених фајлова са 54 додато и 19 уклоњено
  1. 2 2
      package/php/Makefile
  2. 52 17
      package/php/patches/patch-ext_standard_crc32_c

+ 2 - 2
package/php/Makefile

@@ -4,9 +4,9 @@
 include $(ADK_TOPDIR)/rules.mk
 
 PKG_NAME:=		php
-PKG_VERSION:=		7.4.24
+PKG_VERSION:=		7.4.25
 PKG_RELEASE:=		1
-PKG_HASH:=		ff7658ee2f6d8af05b48c21146af5f502e121def4e76e862df5ec9fa06e98734
+PKG_HASH:=		12a758f1d7fee544387a28d3cf73226f47e3a52fb3049f07fcc37d156d393c0a
 PKG_DESCR:=		php language interpreter
 PKG_SECTION:=		dev/lang
 PKG_BUILDDEP:=		libpng

+ 52 - 17
package/php/patches/patch-ext_standard_crc32_c

@@ -1,17 +1,21 @@
---- php-7.4.24.orig/ext/standard/crc32.c	2021-09-21 13:23:20.000000000 +0200
-+++ php-7.4.24/ext/standard/crc32.c	2021-09-29 10:27:37.144637295 +0200
-@@ -23,7 +23,6 @@
- #if HAVE_AARCH64_CRC32
- # include <arm_acle.h>
- # if defined(__linux__)
--#  include <sys/auxv.h>
- #  include <asm/hwcap.h>
- # endif
+--- php-7.4.25.orig/ext/standard/crc32.c	2021-10-19 17:18:19.000000000 +0200
++++ php-7.4.25/ext/standard/crc32.c	2021-10-29 14:58:12.777563842 +0200
+@@ -20,56 +20,6 @@
+ #include "basic_functions.h"
+ #include "crc32.h"
  
-@@ -32,13 +31,6 @@ static inline int has_crc32_insn() {
- 	static int res = -1;
- 	if (res != -1)
- 		return res;
+-#if HAVE_AARCH64_CRC32
+-# include <arm_acle.h>
+-# if defined(__linux__)
+-#  include <sys/auxv.h>
+-#  include <asm/hwcap.h>
+-# endif
+-
+-static inline int has_crc32_insn() {
+-	/* Only go through the runtime detection once. */
+-	static int res = -1;
+-	if (res != -1)
+-		return res;
 -# if defined(HWCAP_CRC32)
 -	res = getauxval(AT_HWCAP) & HWCAP_CRC32;
 -	return res;
@@ -19,10 +23,41 @@
 -	res = getauxval(AT_HWCAP2) & HWCAP2_CRC32;
 -	return res;
 -# else
- 	res = 0;
- 	return res;
- # endif
-@@ -85,13 +77,6 @@ PHP_NAMED_FUNCTION(php_if_crc32)
+-	res = 0;
+-	return res;
+-# endif
+-}
+-
+-# pragma GCC push_options
+-# pragma GCC target ("+nothing+crc")
+-static uint32_t crc32_aarch64(uint32_t crc, char *p, size_t nr) {
+-	while (nr >= sizeof(uint64_t)) {
+-		crc = __crc32d(crc, *(uint64_t *)p);
+-		p += sizeof(uint64_t);
+-		nr -= sizeof(uint64_t);
+-	}
+-	if (nr >= sizeof(int32_t)) {
+-		crc = __crc32w(crc, *(uint32_t *)p);
+-		p += sizeof(uint32_t);
+-		nr -= sizeof(uint32_t);
+-	}
+-	if (nr >= sizeof(int16_t)) {
+-		crc = __crc32h(crc, *(uint16_t *)p);
+-		p += sizeof(uint16_t);
+-		nr -= sizeof(uint16_t);
+-	}
+-	if (nr) {
+-		crc = __crc32b(crc, *p);
+-	}
+-	return crc;
+-}
+-# pragma GCC pop_options
+-#endif
+-
+ /* {{{ proto string crc32(string str)
+    Calculate the crc32 polynomial of a string */
+ PHP_NAMED_FUNCTION(php_if_crc32)
+@@ -85,13 +35,6 @@ PHP_NAMED_FUNCTION(php_if_crc32)
  
  	crc = crcinit^0xFFFFFFFF;