diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-09-17 12:11:34 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-09-17 12:11:34 +0100 |
commit | 7be9edf526114e427a3a44ff8b418fed3ce570aa (patch) | |
tree | e256d444d8a1676de0d3a7379c8422732f39fc0f /x11-apps/igt-gpu-tools | |
parent | b66ecfb4dc09ba76e37787df2f7df1a78c3c1cc9 (diff) |
gentoo auto-resync : 17:09:2024 - 12:11:34
Diffstat (limited to 'x11-apps/igt-gpu-tools')
3 files changed, 0 insertions, 468 deletions
diff --git a/x11-apps/igt-gpu-tools/Manifest b/x11-apps/igt-gpu-tools/Manifest index 0fc8e2b6799b..7e0346e6482c 100644 --- a/x11-apps/igt-gpu-tools/Manifest +++ b/x11-apps/igt-gpu-tools/Manifest @@ -1,7 +1,4 @@ -AUX 1.28-lib-Inline-igt_x86_features-into-ifunc-resolvers.patch 8422 BLAKE2B 785365db8aee93a06ff67aa09cdf2981fe41fd3070c1f75c6d06fa1e48879cbd6561aad41ca7d85d9cda98b3dd0d75b104d61539653529c41efcb371aea6506b SHA512 5185097d476196be06ad817ceba07694b4d27798d666de72f892f04b66c43b28481191051c0a2b2988ad93ef986c6285eb6fc47916260ddef7aab4fb84688d89 -DIST igt-gpu-tools-1.28.tar.xz 2597284 BLAKE2B c15a5b0142f2bf54d0b002b5a17ca705b9cc33662b902edb18e0860c8a1d66c911a082f1c60b3b41f184bd72d7f568554a11d69f9b70978d176eef2cdd1f4e38 SHA512 b0bed7fce28a309f5e5b1f044952abf06ede806ef691b4ddbd52ee437bc9c3701822d65c761c69a8ae5b40695d121193f30aa772cdfaf9ab16c800d7fbcd0abc DIST igt-gpu-tools-1.29.tar.xz 2944444 BLAKE2B 8d34a2b1a9dfc6d8a23be6d2a45436f531e98f0aa8b05346d5a4f2232d4904fc12cb7a986ee335b2a9a31760de10cfed0d92b7de6052ed75baeadc190c5ebee9 SHA512 1bce6cc916b79bee3562cdee945444bfe925efac37c0df61f8adc17b1aade752cb2e31a05c0dc5de5f2c54256f3319cab7ee45014d5d910e16cca50accd2d1ed -EBUILD igt-gpu-tools-1.28-r1.ebuild 2607 BLAKE2B e36147fa2eee202178c9b88ff9b4f268ce9843a256b131e903c0db3a37f40afefa6f01f35f13ab7c6896f8c49b08fdb27906d4e0e2d38974b2d5bff294b1a49f SHA512 e3c2edbc795c8eac7dacb1c9252b5e5b2e959b986bb7915a26c786c5ad75c74b2d64e442493d9b4b5bc19328226511de3625fdbe2ff77f38b61d0c22f4b50404 EBUILD igt-gpu-tools-1.29.ebuild 2518 BLAKE2B 4c4df3d9b6ccea5fdaf92b322177c940c4ac33d0d2020ff725d86ade661b5fdc18308970fe01a17d770d8dea8f72761379e3c63354241fa82d4f461fe8f28f8e SHA512 22d4f463c4124743b96b01a983dafd976638a7512600e66d6563011be22c8e3e68940bf8b30f34e311c8cc6481981d30b746543d424f81dda68c88339167e689 EBUILD igt-gpu-tools-9999.ebuild 2518 BLAKE2B 4c4df3d9b6ccea5fdaf92b322177c940c4ac33d0d2020ff725d86ade661b5fdc18308970fe01a17d770d8dea8f72761379e3c63354241fa82d4f461fe8f28f8e SHA512 22d4f463c4124743b96b01a983dafd976638a7512600e66d6563011be22c8e3e68940bf8b30f34e311c8cc6481981d30b746543d424f81dda68c88339167e689 MISC metadata.xml 743 BLAKE2B 41f82413bcc0ca4cae3b142bca8871403fa73cba2f54328b283854336e637128b53c01f33655c65d65dbb132b56a3e1a6e0dd889cf840eb3f5f25fd9f8fb14cf SHA512 812de04b016d8154e0255abae0174ff89a89dcb2eb2430e198284a0dac2bd93dfea0e0268abbae5a97c5b7fb6a9cc2c70f398844de634b8b2bab118057e2bc2a diff --git a/x11-apps/igt-gpu-tools/files/1.28-lib-Inline-igt_x86_features-into-ifunc-resolvers.patch b/x11-apps/igt-gpu-tools/files/1.28-lib-Inline-igt_x86_features-into-ifunc-resolvers.patch deleted file mode 100644 index e1239ff11a2c..000000000000 --- a/x11-apps/igt-gpu-tools/files/1.28-lib-Inline-igt_x86_features-into-ifunc-resolvers.patch +++ /dev/null @@ -1,354 +0,0 @@ -From cdf2915c810e77e1b77071e46acd6d9c696c4473 Mon Sep 17 00:00:00 2001 -From: Matt Turner <mattst88@gmail.com> -Date: Thu, 21 Mar 2024 14:41:50 -0400 -Subject: [PATCH] lib: Inline igt_x86_features() into ifunc resolvers - -Quoting https://sourceware.org/glibc/wiki/GNU_IFUNC - -> When LD_BIND_NOW=1 or -Wl,z,now is in effect symbols must be -> immediately resolved at startup. In cases where an external function -> call depends needs to be made that may fail if such a call has not -> been initialized yet (PLT-based relocation which is processed later). -> For example calling strlen in an IFUNC resolver built with -Wl,z,now -> may lead to a segfault because the PLT is not yet resolved. - -We cannot rely on function calls through the PLT in ifunc resolvers as -the PLT may not have been initialized yet. - -In practice, this causes crashes when igt is linked with -Wl,-z,now or -when linked with the mold linker. - -To avoid this problem, we do two things: - 1. move igt_x86_features() to igt_x86.h so its definition is - available to compilation units that call the function. - 2. mark the ifunc resolvers with __attribute__((flatten)) to ensure - igt_x86_features() is inlined. Since this function is only called - from a few places it does not significantly increase binary size - to inline it. - -Linux distros (at least Fedora since v23, Gentoo/Hardened, soon standard -Gentoo) use `-Wl,-z now` to improve security. By binding upfront, the -loader can mark the GOT as read-only for a security enhancement. See -https://wiki.gentoo.org/wiki/Hardened/Toolchain for more details. - -[Fixed whitespaces (Kamil)] -Bug: https://bugs.gentoo.org/788625 -Bug: https://bugs.gentoo.org/925348 -Reviewed-by: Zbigniew KempczyĆski <zbigniew.kempczynski@intel.com> -Signed-off-by: Matt Turner <mattst88@gmail.com> ---- - lib/igt_halffloat.c | 8 +++ - lib/igt_x86.c | 119 ++------------------------------------------ - lib/igt_x86.h | 118 ++++++++++++++++++++++++++++++++++++++++++- - 3 files changed, 129 insertions(+), 116 deletions(-) - -diff --git a/lib/igt_halffloat.c b/lib/igt_halffloat.c -index 5dbe08e01..560952d20 100644 ---- a/lib/igt_halffloat.c -+++ b/lib/igt_halffloat.c -@@ -194,6 +194,10 @@ static void half_to_float(const uint16_t *h, float *f, unsigned int num) - f[i] = _half_to_float(h[i]); - } - -+/* The PLT is not initialized when ifunc resolvers run, so all external -+ * functions must be inlined with __attribute__((flatten)). -+ */ -+__attribute__((flatten)) - static void (*resolve_float_to_half(void))(const float *f, uint16_t *h, unsigned int num) - { - if (igt_x86_features() & F16C) -@@ -205,6 +209,10 @@ static void (*resolve_float_to_half(void))(const float *f, uint16_t *h, unsigned - void igt_float_to_half(const float *f, uint16_t *h, unsigned int num) - __attribute__((ifunc("resolve_float_to_half"))); - -+/* The PLT is not initialized when ifunc resolvers run, so all external -+ * functions must be inlined with __attribute__((flatten)). -+ */ -+__attribute__((flatten)) - static void (*resolve_half_to_float(void))(const uint16_t *h, float *f, unsigned int num) - { - if (igt_x86_features() & F16C) -diff --git a/lib/igt_x86.c b/lib/igt_x86.c -index 8c102fd13..4842164e9 100644 ---- a/lib/igt_x86.c -+++ b/lib/igt_x86.c -@@ -27,14 +27,6 @@ - - #include "config.h" - --#ifdef HAVE_CPUID_H --#include <cpuid.h> --#else --#define __get_cpuid_max(x, y) 0 --#define __cpuid(level, a, b, c, d) a = b = c = d = 0 --#define __cpuid_count(level, count, a, b, c, d) a = b = c = d = 0 --#endif -- - #include "igt_x86.h" - #include "igt_aux.h" - -@@ -49,114 +41,7 @@ - * @include: igt_x86.h - */ - --#define BASIC_CPUID 0x0 --#define EXTENDED_CPUID 0x80000000 -- --#ifndef bit_MMX --#define bit_MMX (1 << 23) --#endif -- --#ifndef bit_SSE --#define bit_SSE (1 << 25) --#endif -- --#ifndef bit_SSE2 --#define bit_SSE2 (1 << 26) --#endif -- --#ifndef bit_SSE3 --#define bit_SSE3 (1 << 0) --#endif -- --#ifndef bit_SSSE3 --#define bit_SSSE3 (1 << 9) --#endif -- --#ifndef bit_SSE4_1 --#define bit_SSE4_1 (1 << 19) --#endif -- --#ifndef bit_SSE4_2 --#define bit_SSE4_2 (1 << 20) --#endif -- --#ifndef bit_OSXSAVE --#define bit_OSXSAVE (1 << 27) --#endif -- --#ifndef bit_AVX --#define bit_AVX (1 << 28) --#endif -- --#ifndef bit_F16C --#define bit_F16C (1 << 29) --#endif -- --#ifndef bit_AVX2 --#define bit_AVX2 (1<<5) --#endif -- --#define xgetbv(index,eax,edx) \ -- __asm__ ("xgetbv" : "=a"(eax), "=d"(edx) : "c" (index)) -- --#define has_YMM 0x1 -- - #if defined(__x86_64__) || defined(__i386__) --unsigned igt_x86_features(void) --{ -- unsigned max = __get_cpuid_max(BASIC_CPUID, 0); -- unsigned eax, ebx, ecx, edx; -- unsigned features = 0; -- unsigned extra = 0; -- -- if (max >= 1) { -- __cpuid(1, eax, ebx, ecx, edx); -- -- if (ecx & bit_SSE3) -- features |= SSE3; -- -- if (ecx & bit_SSSE3) -- features |= SSSE3; -- -- if (ecx & bit_SSE4_1) -- features |= SSE4_1; -- -- if (ecx & bit_SSE4_2) -- features |= SSE4_2; -- -- if (ecx & bit_OSXSAVE) { -- unsigned int bv_eax, bv_ecx; -- xgetbv(0, bv_eax, bv_ecx); -- if ((bv_eax & 6) == 6) -- extra |= has_YMM; -- } -- -- if ((extra & has_YMM) && (ecx & bit_AVX)) -- features |= AVX; -- -- if (edx & bit_MMX) -- features |= MMX; -- -- if (edx & bit_SSE) -- features |= SSE; -- -- if (edx & bit_SSE2) -- features |= SSE2; -- -- if (ecx & bit_F16C) -- features |= F16C; -- } -- -- if (max >= 7) { -- __cpuid_count(7, 0, eax, ebx, ecx, edx); -- -- if ((extra & has_YMM) && (ebx & bit_AVX2)) -- features |= AVX2; -- } -- -- return features; --} -- - char *igt_x86_features_to_string(unsigned features, char *line) - { - char *ret = line; -@@ -284,6 +169,10 @@ static void memcpy_from_wc(void *dst, const void *src, unsigned long len) - memcpy(dst, src, len); - } - -+/* The PLT is not initialized when ifunc resolvers run, so all external -+ * functions must be inlined with __attribute__((flatten)). -+ */ -+__attribute__((flatten)) - static void (*resolve_memcpy_from_wc(void))(void *, const void *, unsigned long) - { - if (igt_x86_features() & SSE4_1) -diff --git a/lib/igt_x86.h b/lib/igt_x86.h -index c7b84dec2..f1df4c1a9 100644 ---- a/lib/igt_x86.h -+++ b/lib/igt_x86.h -@@ -30,6 +30,14 @@ - #ifndef IGT_X86_H - #define IGT_X86_H - -+#ifdef HAVE_CPUID_H -+#include <cpuid.h> -+#else -+#define __get_cpuid_max(x, y) 0 -+#define __cpuid(level, a, b, c, d) a = b = c = d = 0 -+#define __cpuid_count(level, count, a, b, c, d) a = b = c = d = 0 -+#endif -+ - #define MMX 0x1 - #define SSE 0x2 - #define SSE2 0x4 -@@ -42,7 +50,115 @@ - #define F16C 0x200 - - #if defined(__x86_64__) || defined(__i386__) --unsigned igt_x86_features(void); -+ -+#define BASIC_CPUID 0x0 -+#define EXTENDED_CPUID 0x80000000 -+ -+#ifndef bit_MMX -+#define bit_MMX (1 << 23) -+#endif -+ -+#ifndef bit_SSE -+#define bit_SSE (1 << 25) -+#endif -+ -+#ifndef bit_SSE2 -+#define bit_SSE2 (1 << 26) -+#endif -+ -+#ifndef bit_SSE3 -+#define bit_SSE3 (1 << 0) -+#endif -+ -+#ifndef bit_SSSE3 -+#define bit_SSSE3 (1 << 9) -+#endif -+ -+#ifndef bit_SSE4_1 -+#define bit_SSE4_1 (1 << 19) -+#endif -+ -+#ifndef bit_SSE4_2 -+#define bit_SSE4_2 (1 << 20) -+#endif -+ -+#ifndef bit_OSXSAVE -+#define bit_OSXSAVE (1 << 27) -+#endif -+ -+#ifndef bit_AVX -+#define bit_AVX (1 << 28) -+#endif -+ -+#ifndef bit_F16C -+#define bit_F16C (1 << 29) -+#endif -+ -+#ifndef bit_AVX2 -+#define bit_AVX2 (1<<5) -+#endif -+ -+#define xgetbv(index, eax, edx) \ -+ __asm__ ("xgetbv" : "=a"(eax), "=d"(edx) : "c" (index)) -+ -+#define has_YMM 0x1 -+ -+static inline unsigned igt_x86_features(void) -+{ -+ unsigned max = __get_cpuid_max(BASIC_CPUID, 0); -+ unsigned eax, ebx, ecx, edx; -+ unsigned features = 0; -+ unsigned extra = 0; -+ -+ if (max >= 1) { -+ __cpuid(1, eax, ebx, ecx, edx); -+ -+ if (ecx & bit_SSE3) -+ features |= SSE3; -+ -+ if (ecx & bit_SSSE3) -+ features |= SSSE3; -+ -+ if (ecx & bit_SSE4_1) -+ features |= SSE4_1; -+ -+ if (ecx & bit_SSE4_2) -+ features |= SSE4_2; -+ -+ if (ecx & bit_OSXSAVE) { -+ unsigned int bv_eax, bv_ecx; -+ -+ xgetbv(0, bv_eax, bv_ecx); -+ if ((bv_eax & 6) == 6) -+ extra |= has_YMM; -+ } -+ -+ if ((extra & has_YMM) && (ecx & bit_AVX)) -+ features |= AVX; -+ -+ if (edx & bit_MMX) -+ features |= MMX; -+ -+ if (edx & bit_SSE) -+ features |= SSE; -+ -+ if (edx & bit_SSE2) -+ features |= SSE2; -+ -+ if (ecx & bit_F16C) -+ features |= F16C; -+ } -+ -+ if (max >= 7) { -+ __cpuid_count(7, 0, eax, ebx, ecx, edx); -+ -+ if ((extra & has_YMM) && (ebx & bit_AVX2)) -+ features |= AVX2; -+ } -+ -+ return features; -+} -+ - char *igt_x86_features_to_string(unsigned features, char *line); - #else - static inline unsigned igt_x86_features(void) --- -2.43.2 - diff --git a/x11-apps/igt-gpu-tools/igt-gpu-tools-1.28-r1.ebuild b/x11-apps/igt-gpu-tools/igt-gpu-tools-1.28-r1.ebuild deleted file mode 100644 index 1970fac8edf8..000000000000 --- a/x11-apps/igt-gpu-tools/igt-gpu-tools-1.28-r1.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -EGIT_REPO_URI="https://gitlab.freedesktop.org/drm/${PN}.git" -if [[ ${PV} = *9999* ]]; then - GIT_ECLASS="git-r3" -fi - -PYTHON_COMPAT=( python3_{10..12} ) -inherit ${GIT_ECLASS} meson python-any-r1 - -DESCRIPTION="Intel GPU userland tools" - -HOMEPAGE="https://gitlab.freedesktop.org/drm/igt-gpu-tools" -if [[ ${PV} != *9999* ]]; then - KEYWORDS="~amd64 ~x86" - SRC_URI="https://www.x.org/releases/individual/app/${P}.tar.xz" -fi -LICENSE="MIT" -SLOT="0" -IUSE="chamelium doc man overlay runner tests unwind valgrind video_cards_amdgpu video_cards_intel video_cards_nouveau X xv" -REQUIRED_USE=" - || ( video_cards_amdgpu video_cards_intel video_cards_nouveau ) - overlay? ( - video_cards_intel - || ( X xv ) - ) - doc? ( tests ) - runner? ( tests ) -" -RESTRICT="test" - -RDEPEND=" - dev-libs/elfutils - dev-libs/glib:2 - sys-apps/kmod - sys-libs/zlib:= - sys-process/procps:= - virtual/libudev:= - >=x11-libs/cairo-1.12.0[X?] - >=x11-libs/libdrm-2.4.82[video_cards_amdgpu?,video_cards_intel?,video_cards_nouveau?] - >=x11-libs/libpciaccess-0.10 - x11-libs/pixman - chamelium? ( - dev-libs/xmlrpc-c:=[curl] - sci-libs/gsl:= - media-libs/alsa-lib - ) - overlay? ( - >=x11-libs/libXrandr-1.3 - xv? ( - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXv - ) - ) - runner? ( dev-libs/json-c:= ) - unwind? ( sys-libs/libunwind:= ) - valgrind? ( dev-debug/valgrind ) - " -DEPEND="${RDEPEND} - doc? ( >=dev-util/gtk-doc-1.25-r1 ) - man? ( dev-python/docutils ) - overlay? ( - >=dev-util/peg-0.1.18 - x11-base/xorg-proto - ) - video_cards_intel? ( - app-alternatives/yacc - app-alternatives/lex - ) -" -BDEPEND="${PYTHON_DEPS}" - -PATCHES=( - "${FILESDIR}"/${PV}-lib-Inline-igt_x86_features-into-ifunc-resolvers.patch -) - -src_prepare() { - sed -e "s/find_program('rst2man-3'/find_program('rst2man.py', 'rst2man-3'/" -i man/meson.build - default_src_prepare -} - -src_configure() { - local gpus="" - use video_cards_amdgpu && gpus+="amdgpu," - use video_cards_intel && gpus+="intel," - use video_cards_nouveau && gpus+="nouveau," - - local overlay_backends="" - use overlay && use xv && overlay_backends+="xv," - use overlay && use X && overlay_backends+="x," - - local emesonargs=( - $(meson_feature overlay) - -Doverlay_backends=${overlay_backends%?} - $(meson_feature chamelium) - $(meson_feature valgrind) - $(meson_feature man) - -Dtestplan=disabled - -Dsphinx=disabled - $(meson_feature doc docs) - $(meson_feature tests) - -Dxe_driver=disabled - -Dlibdrm_drivers=${gpus%?} - $(meson_feature unwind libunwind) - $(meson_feature runner) - ) - meson_src_configure -} |