package/virglrenderer: fix i915 backend build on 32-bit platforms
PATCH 1/1 package/virglrenderer: fix i915 backend build on 32-bit platforms
When the Intel (i915) DRM backend is enabled, the build fails on 32-bit platforms:
../src/drm/i915/i915_ccmd.c:267:63: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
267 | struct drm_i915_gem_memory_class_instance *classes = (void*)mem_regions->regions;
| ^drm_i915_gem_create_ext_memory_regions::regions is a __u64, which cannot be cast directly to a 32-bit pointer. Backport the upstream fix, which casts through uintptr_t first.
This issue has been present since commit 76d4a9b297eb ("package/virglrenderer: new package"), which added the package with the i915 backend. It therefore affects 2026.08 and later.
Fixes:
https://autobuild.buildroot.org/results/72c81920e6d1fbc36de8930f4ad2f70f88c4cf29
Fixes 76d4a9b297ebd4ed15000bce62873049b9e75f5a ("package/virglrenderer: new package")
Assisted-by Claude:claude-opus-5-5
Signed-off-by Yegor Yefremov <[email protected]>
--- ...m-i915-fix-build-on-32-bit-platforms.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 package/virglrenderer/0002-drm-i915-fix-build-on-32-bit-platforms.patch
package/virglrenderer/0002-drm-i915-fix-build-on-32-bit-platforms.patch new file +43 -0
@@ -0,0 +1,43 @@ +From 8d6123bb9e3b1959077bc3792a9163f85c78d0d4 Mon Sep 17 00:00:00 2001 +From: Yegor Yefremov <[email protected]> +Date: Sat, 7 Nov 2026 09:33:13 +0100 +Subject: [PATCH] drm/i915: fix build on 32-bit platforms + +drm_i915_gem_create_ext_memory_regions::regions is a __u64. Casting it +directly to a pointer fails on 32-bit platforms, where pointers are +only 32 bits wide: + + ../src/drm/i915/i915_ccmd.c:267:63: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] + 267 | struct drm_i915_gem_memory_class_instance *classes = (void*)mem_regions->regions; + | ^ + +Cast through uintptr_t first. The value was assigned from a uintptr_t +just above, so no information is lost. + +Seen in Buildroot's autobuilder: + +https://autobuild.buildroot.org/results/72c81920e6d1fbc36de8930f4ad2f70f88c4cf29 + +Upstream: https://gitlab.freedesktop.org/virgl/virglrenderer/-/commit/8d6123bb9e3b1959077bc3792a9163f85c78d0d4 +Signed-off-by: Yegor Yefremov <[email protected]> +Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1712> +--- + src/drm/i915/i915_ccmd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/drm/i915/i915_ccmd.c b/src/drm/i915/i915_ccmd.c +index 2db97ed15..cc07e2802 100644 +--- a/src/drm/i915/i915_ccmd.c ++++ b/src/drm/i915/i915_ccmd.c +@@ -276,7 +276,7 @@ i915_ccmd_gem_create_ext(struct drm_context *dctx, struct vdrm_ccmd_req *hdr) + if (ext_size < 0) + break; + +- struct drm_i915_gem_memory_class_instance *classes = (void*)mem_regions->regions; ++ struct drm_i915_gem_memory_class_instance *classes = (void *)(uintptr_t)mem_regions->regions; + + for (unsigned i = 0; i < mem_regions->num_regions; i++) { + struct drm_i915_gem_memory_class_instance *class = classes + i; +-- +GitLab +
Signature · 6 lines
2.34.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot