www/firefox: fix build on aarch64

The interface has changed a bit on -current:

In file included from Unified_cpp_gfx_skia1.cpp:137:
/wrkdirs/usr/ports/www/firefox/work/firefox-71.0/gfx/skia/skia/src/core/SkCpu.cpp:81:13: error: use of undeclared identifier 'ID_AA64ISAR0_CRC32'
        if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {

PR:		243653
Reviewed by:	jbeich
Approved by:	jbeich , manu (mentor, implicit)
This commit is contained in:
Mikael Urankar 2020-03-31 15:13:15 +00:00
parent 70e31bb7b2
commit f5c45d042b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=529979
3 changed files with 21 additions and 12 deletions

View file

@ -4,21 +4,24 @@ gfx/skia/skia/src/core/SkCpu.cpp:81:27: error: use of undeclared identifier 'get
uint32_t hwcaps = getauxval(AT_HWCAP); uint32_t hwcaps = getauxval(AT_HWCAP);
^ ^
--- gfx/skia/skia/src/core/SkCpu.cpp.orig 2019-02-27 22:18:23 UTC --- gfx/skia/skia/src/core/SkCpu.cpp.orig 2020-02-10 09:43:20 UTC
+++ gfx/skia/skia/src/core/SkCpu.cpp +++ gfx/skia/skia/src/core/SkCpu.cpp
@@ -70,6 +70,20 @@ @@ -70,6 +70,23 @@
return features; return features;
} }
+#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__) +#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__)
+ #include <machine/armreg.h> + #include <machine/armreg.h>
+ #ifndef ID_AA64ISAR0_CRC32_VAL
+ #define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
+ #endif
+ +
+ static uint32_t read_cpu_features() { + static uint32_t read_cpu_features() {
+ uint32_t features = 0; + uint32_t features = 0;
+ uint64_t id_aa64isar0; + uint64_t id_aa64isar0;
+ +
+ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); + id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
+ if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) { + if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {
+ features |= SkCpu::CRC32; + features |= SkCpu::CRC32;
+ } + }
+ return features; + return features;

View file

@ -4,21 +4,24 @@ gfx/skia/skia/src/core/SkCpu.cpp:81:27: error: use of undeclared identifier 'get
uint32_t hwcaps = getauxval(AT_HWCAP); uint32_t hwcaps = getauxval(AT_HWCAP);
^ ^
--- gfx/skia/skia/src/core/SkCpu.cpp.orig 2019-02-27 22:18:23 UTC --- gfx/skia/skia/src/core/SkCpu.cpp.orig 2020-02-07 01:27:03 UTC
+++ gfx/skia/skia/src/core/SkCpu.cpp +++ gfx/skia/skia/src/core/SkCpu.cpp
@@ -70,6 +70,20 @@ @@ -70,6 +70,23 @@
return features; return features;
} }
+#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__) +#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__)
+ #include <machine/armreg.h> + #include <machine/armreg.h>
+ #ifndef ID_AA64ISAR0_CRC32_VAL
+ #define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
+ #endif
+ +
+ static uint32_t read_cpu_features() { + static uint32_t read_cpu_features() {
+ uint32_t features = 0; + uint32_t features = 0;
+ uint64_t id_aa64isar0; + uint64_t id_aa64isar0;
+ +
+ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); + id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
+ if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) { + if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {
+ features |= SkCpu::CRC32; + features |= SkCpu::CRC32;
+ } + }
+ return features; + return features;

View file

@ -4,21 +4,24 @@ gfx/skia/skia/src/core/SkCpu.cpp:81:27: error: use of undeclared identifier 'get
uint32_t hwcaps = getauxval(AT_HWCAP); uint32_t hwcaps = getauxval(AT_HWCAP);
^ ^
--- gfx/skia/skia/src/core/SkCpu.cpp.orig 2019-02-27 22:18:23 UTC --- gfx/skia/skia/src/core/SkCpu.cpp.orig 2020-02-07 22:13:22 UTC
+++ gfx/skia/skia/src/core/SkCpu.cpp +++ gfx/skia/skia/src/core/SkCpu.cpp
@@ -70,6 +70,20 @@ @@ -72,6 +72,23 @@
return features; return features;
} }
+#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__) +#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__)
+ #include <machine/armreg.h> + #include <machine/armreg.h>
+ #ifndef ID_AA64ISAR0_CRC32_VAL
+ #define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
+ #endif
+ +
+ static uint32_t read_cpu_features() { + static uint32_t read_cpu_features() {
+ uint32_t features = 0; + uint32_t features = 0;
+ uint64_t id_aa64isar0; + uint64_t id_aa64isar0;
+ +
+ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); + id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
+ if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) { + if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {
+ features |= SkCpu::CRC32; + features |= SkCpu::CRC32;
+ } + }
+ return features; + return features;