From: Ross Burton Date: Thu, 12 Dec 2024 17:18:42 +0000 (+0000) Subject: pixman: remove long-obsolete patch X-Git-Tag: uninative-4.7~588 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b404dcbe9aeca9e82db929f021344ef3826726ab;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git pixman: remove long-obsolete patch This patch from the Nokia/Scratchbox days[1] was obsoleted by qemu improvements, specifically "linux-user: fake /proc/self/auxv"[2] which was integrated into qemu 1.1.0 in 2011. [1] If you're reading this and reminiscing I suggest standing up and having a stretch, your back will thank you [2] 257450ee59fd7e781cb4e2316ddc845c40b9fc42 Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-graphics/xorg-lib/pixman/0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch b/meta/recipes-graphics/xorg-lib/pixman/0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch deleted file mode 100644 index 35faafea5b4..00000000000 --- a/meta/recipes-graphics/xorg-lib/pixman/0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 0beed8c190b27a07e7f1145a46a7ca8a75864263 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 23 Aug 2012 18:10:57 +0200 -Subject: [PATCH] ARM: qemu related workarounds in cpu features detection code -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This was ported from meta-oe's patch [1]. The original pixman patch is found -at [2]. - -[1] http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-graphics/xorg-lib/pixman-0.26.2/0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch -[2] http://lists.freedesktop.org/archives/pixman/2011-January/000906.html - -Upstream-Status: Inappropriate [other] qemu fix - -Signed-off-by: Andreas Müller ---- - pixman/pixman-arm.c | 77 ++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 62 insertions(+), 15 deletions(-) - -diff --git a/pixman/pixman-arm.c b/pixman/pixman-arm.c -index d271e96..8f6e241 100644 ---- a/pixman/pixman-arm.c -+++ b/pixman/pixman-arm.c -@@ -128,16 +128,34 @@ detect_cpu_features (void) - #include - #include - #include -+#include - #include - #include - #include - -+/* -+ * The whole CPU capabilities detection is a bit ugly: when running in -+ * userspace qemu, we see /proc/self/auxv from the host system. To make -+ * everything even worse, the size of each value is 64-bit when running -+ * on a 64-bit host system. So the data is totally bogus because we expect -+ * 32-bit values. As AT_PLATFORM value is used as a pointer, it may cause -+ * segfault (null pointer dereference on x86-64 host). So in order to be -+ * on a safe side, we require that AT_PLATFORM value is found only once, -+ * and it has non-zero value (this is still not totally reliable for a big -+ * endian 64-bit host system running qemu and may theoretically fail). -+ */ -+#define ARM_HWCAP_VFP 64 -+#define ARM_HWCAP_NEON 4096 -+ - static arm_cpu_features_t - detect_cpu_features (void) - { - arm_cpu_features_t features = 0; - Elf32_auxv_t aux; - int fd; -+ uint32_t hwcap = 0; -+ const char *plat = NULL; -+ int plat_cnt = 0; - - fd = open ("/proc/self/auxv", O_RDONLY); - if (fd >= 0) -@@ -146,30 +164,59 @@ detect_cpu_features (void) - { - if (aux.a_type == AT_HWCAP) - { -- uint32_t hwcap = aux.a_un.a_val; -- -- /* hardcode these values to avoid depending on specific -- * versions of the hwcap header, e.g. HWCAP_NEON -- */ -- if ((hwcap & 64) != 0) -- features |= ARM_VFP; -- /* this flag is only present on kernel 2.6.29 */ -- if ((hwcap & 4096) != 0) -- features |= ARM_NEON; -+ hwcap = aux.a_un.a_val; - } - else if (aux.a_type == AT_PLATFORM) - { -- const char *plat = (const char*) aux.a_un.a_val; -- -- if (strncmp (plat, "v7l", 3) == 0) -+ plat = (const char*) aux.a_un.a_val; -+ plat_cnt++; -+ } -+ } -+ close (fd); -+ if (plat == NULL || plat_cnt != 1 || *plat != 'v') -+ { -+ /* -+ * Something seems to be really wrong, most likely we are -+ * running under qemu. Let's use machine type from "uname" for -+ * CPU capabilities detection: -+ * http://www.mail-archive.com/qemu-devel at nongnu.org/msg22212.html -+ */ -+ struct utsname u; -+ hwcap = 0; /* clear hwcap, because it is bogus */ -+ if (uname (&u) == 0) -+ { -+ if (strcmp (u.machine, "armv7l") == 0) -+ { - features |= (ARM_V7 | ARM_V6); -- else if (strncmp (plat, "v6l", 3) == 0) -+ hwcap |= ARM_HWCAP_VFP; /* qemu is supposed to emulate vfp */ -+ hwcap |= ARM_HWCAP_NEON; /* qemu is supposed to emulate neon */ -+ } -+ else if (strcmp (u.machine, "armv6l") == 0) -+ { - features |= ARM_V6; -+ hwcap |= ARM_HWCAP_VFP; /* qemu is supposed to emulate vfp */ -+ } - } - } -- close (fd); -+ else if (strncmp (plat, "v7l", 3) == 0) -+ { -+ features |= (ARM_V7 | ARM_V6); -+ } -+ else if (strncmp (plat, "v6l", 3) == 0) -+ { -+ features |= ARM_V6; -+ } - } - -+ /* hardcode these values to avoid depending on specific -+ * versions of the hwcap header, e.g. HWCAP_NEON -+ */ -+ if ((hwcap & ARM_HWCAP_VFP) != 0) -+ features |= ARM_VFP; -+ /* this flag is only present on kernel 2.6.29 */ -+ if ((hwcap & ARM_HWCAP_NEON) != 0) -+ features |= ARM_NEON; -+ - return features; - } - diff --git a/meta/recipes-graphics/xorg-lib/pixman_0.44.2.bb b/meta/recipes-graphics/xorg-lib/pixman_0.44.2.bb index 9e2a102a9b1..2e5bb172f57 100644 --- a/meta/recipes-graphics/xorg-lib/pixman_0.44.2.bb +++ b/meta/recipes-graphics/xorg-lib/pixman_0.44.2.bb @@ -7,9 +7,7 @@ HOMEPAGE = "http://www.pixman.org" SECTION = "x11/libs" DEPENDS = "zlib" -SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \ - file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \ - " +SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz" SRC_URI[sha256sum] = "6349061ce1a338ab6952b92194d1b0377472244208d47ff25bef86fc71973466" # see http://cairographics.org/releases/ - only even minor versions are stable