From nobody Sun Apr 20 08:13:09 2025 X-Original-To: current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZgLpw6RB4z5skMy for ; Sun, 20 Apr 2025 08:13:12 +0000 (UTC) (envelope-from rhurlin@gwdg.de) Received: from mx-2023-1.gwdg.de (mx-2023-1.gwdg.de [134.76.10.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZgLpw2s0Jz3KGw; Sun, 20 Apr 2025 08:13:12 +0000 (UTC) (envelope-from rhurlin@gwdg.de) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gwdg.de; s=2023-rsa; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: Reply-To:CC:References:To:Subject:MIME-Version:Date:Message-ID:Sender: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=xmuY8571yRNqvS0LqLXSrDkvh2GRIAZ+/e484ADrb+s=; b=bgWzYAYK5LOPG/Y78JkoRvsEJS hFHWGUuW/VijxT5JkL/QNPDLNwVMuzWwCJpVSnNpCaK5t+YpOcBhw8FUpk1iq6YQt0u8bf/sFIS/I h+BeGuJ5meBPwBew/WVNoUWMg0oxfbMXc9V+X2ixhYidytWK/hInepMSuZAbfVkU4XOVVMH7TB/64 dlkJfpvwKRUupv8tV85GNIKTT+VtPCAz7Qv3/+pGIjdmzT79RPzZe8jKclugPk2btoI2jelxz1KKj t8qwOhnI9DSc7CYcicR6M11j+WmZvlyO1ilqb+fYBqb24iO6Q+Ax9cQ9YoUoscHlxKmnx7AyVj72L bnLQUOpw==; Received: from xmailer.gwdg.de ([134.76.10.29]:56701) by mailer.gwdg.de with esmtp (GWDG Mailer) (envelope-from ) id 1u6PnX-009D11-1y; Sun, 20 Apr 2025 10:13:07 +0200 Received: from mbx19-gwd-03.um.gwdg.de ([10.108.142.56] helo=email.gwdg.de) by mailer.gwdg.de with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (GWDG Mailer) (envelope-from ) id 1u6Pna-0007Uo-07; Sun, 20 Apr 2025 10:13:10 +0200 Received: from [192.168.178.23] (10.250.9.200) by MBX19-GWD-03.um.gwdg.de (10.108.142.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 20 Apr 2025 10:13:09 +0200 Message-ID: <4a8bd5c1-6811-4e9e-b8e9-5fd6def79dec@gwdg.de> Date: Sun, 20 Apr 2025 10:13:09 +0200 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: graphics/drm-61-kmod build failure for main-n276560-83dcc133c876 Content-Language: en-US, de-DE To: Mark Johnston References: CC: Reply-To: Rainer Hurling From: Rainer Hurling In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.250.9.200] X-ClientProxiedBy: mbx19-sub-01.um.gwdg.de (10.108.142.54) To MBX19-GWD-03.um.gwdg.de (10.108.142.56) X-Virus-Scanned: (clean) by clamav X-Spam-Level: - X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:207592, ipnet:134.76.0.0/16, country:DE] X-Rspamd-Queue-Id: 4ZgLpw2s0Jz3KGw X-Spamd-Bar: ---- Am 19.04.25 um 16:02 schrieb Mark Johnston: > On Sat, Apr 19, 2025 at 06:06:59AM -0700, David Wolfskill wrote: >> Running: >> FreeBSD g1-118.catwhisker.org 15.0-CURRENT FreeBSD 15.0-CURRENT #445 main-n276537-7121e9414f29: Fri Apr 18 12:36:30 UTC 2025 root@g1-120.catwhisker.org:/common/S4/obj/usr/src/amd64.amd64/sys/CANARY amd64 >> >> after updating sources to main-n276560-83dcc133c876, with a ports tree >> at main-n703265-33b43edfb65d, I find: >> >> ... >> --- i915_gem_mman.o --- >> /common/S4/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:77: error: call to undeclared function 'vm_page_next'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] >> 171 | for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) { >> | ^ >> /common/S4/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:75: error: incompatible integer to pointer conversion assigning to 'vm_page_t' (aka 'struct vm_page *') from 'int' [-Wint-conversion] >> 171 | for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) { >> | ^ ~~~~~~~~~~~~~~~~~~ >> 2 errors generated. >> *** [i915_gem_mman.o] Error code 1 >> >> make[1]: stopped making "all" in /common/S4/obj/usr/src/amd64.amd64/sys/CANARY/common/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/i915 >> make[1]: 1 error >> [end of excerpt from typescript -- dhw] >> >> This is using METAMODE (as I've done for ages, now); unfortunately: >> >> .ERROR_TARGET='all' >> .ERROR_META_FILE='' >> .MAKE.LEVEL='2' >> MAKEFILE='' >> >> so not much to be gained there (that I can see). > > Something like the following diff is needed. It needs to be built > against the latest main, where __FreeBSD_version is bumped. > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c > index 2a9946c7d0..f61eeefe7a 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c > @@ -34,6 +34,7 @@ > #include > #include > #include > +#include > #endif > > #ifdef __linux__ /* Mute unused function warning. */ > @@ -168,9 +169,16 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data, > if ((rv == KERN_SUCCESS) && (args->flags & I915_MMAP_WC)) { > VM_OBJECT_WLOCK(vmobj); > if (vm_object_set_memattr(vmobj, VM_MEMATTR_WRITE_COMBINING) != KERN_SUCCESS) { > - for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) { > +#if __FreeBSD_version >= 1500038 > + struct pctrie_iter pages; > + vm_page_t page; > + > + vm_page_iter_init(&pages, vmobj); > + VM_RADIX_FORALL(page, &pages) > +#else > + for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) > +#endif > pmap_page_set_memattr(page, VM_MEMATTR_WRITE_COMBINING); > - } > } > VM_OBJECT_WUNLOCK(vmobj); > } > As expected, this error also happens with graphics/drm-66-kmod : ===> i915 (all) cc -O2 -pipe -fno-strict-aliasing -DLINUXKPI_VERSION=60600 '-DKBUILD_MODNAME="i915kms"' '-DLINUXKPI_PARAM_PREFIX=i915_' -DDRM_SYSCTL_PARAM_PREFIX=_i915kms -DCONFIG_DRM_AMDGPU_CIK -DCONFIG_DRM_AMDGPU_SI -DCONFIG_DRM_AMD_DC -DCONFIG_DRM_AMD_DC_SI -DCONFIG_AMD_PMC -DCONFIG_DRM_EXEC -DCONFIG_DRM_I915_FORCE_PROBE='"*"' -DCONFIG_DRM_I915_REQUEST_TIMEOUT=20000 -DCONFIG_DRM_I915_CAPTURE_ERROR -DCONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -DCONFIG_DRM_I915_STOP_TIMEOUT=100 -DCONFIG_DRM_I915_PREEMPT_TIMEOUT=640 -DCONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 -DCONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 -DCONFIG_DRM_I915_TIMESLICE_DURATION=1 -DCONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 -DCONFIG_DRM_I915_FENCE_TIMEOUT=10000 -DCONFIG_DRM_MIPI_DSI -DCONFIG_DRM_PANEL_ORIENTATION_QUIRKS -DCONFIG_APERTURE_HELPERS -DCONFIG_DRM_FBDEV_EMULATION -DCONFIG_DRM_FBDEV_OVERALLOC=100 -DCONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG -DCONFIG_BACKLIGHT_CLASS_DEVICE -DCONFIG_DEBUG_FS -DCONFIG_DMI -DCONFIG_FB -DCONFIG_MTRR -DCONFIG_PCI -DCONFIG_PM -DCONFIG_PM_SLEEP -DCONFIG_SMP -DCONFIG_SUSPEND -DCONFIG_VIDEO_CMDLINE -DCONFIG_ACPI -DCONFIG_ACPI_SLEEP -DCONFIG_X86 -DCONFIG_X86_PAT -DCONFIG_64BIT -DCONFIG_AS_MOVNTDQA -DCONFIG_COMPAT -DCONFIG_X86_64 -DCONFIG_DRM_AMD_DC_FP -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/linuxkpi/gplv2/include -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/linuxkpi/bsd/include -I/usr/src/sys/compat/linuxkpi/common/include -I/usr/src/sys/compat/linuxkpi/dummy/include -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/include -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/include/drm -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/include/uapi -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/drivers/gpu -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/drivers/gpu/drm/i915 -I/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/drivers/gpu/drm/i915/display -include /usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/obj/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/i915/opt_global.h -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include -fdebug-prefix-map=./x86=/usr/src/sys/x86/include -fdebug-prefix-map=./i386=/usr/src/sys/i386/include -MD -MF.depend.i915_gem_mman.o -MTi915_gem_mman.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wswitch -Wno-error=tautological-compare -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length -Wno-pointer-arith -Wno-format -Wno-cast-qual -Wno-unused-but-set-variable -mno-aes -mno-avx -std=gnu17 -c /usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/drivers/gpu/drm/i915/gem/i915_gem_mman.c -o i915_gem_mman.o /usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:77: error: call to undeclared function 'vm_page_next'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] 171 | for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) { | ^ /usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:75: error: incompatible integer to pointer conversion assigning to 'vm_page_t' (aka 'struct vm_page *') from 'int' [-Wint-conversion] 171 | for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) { | ^ ~~~~~~~~~~~~~~~~~~ 2 errors generated. *** Error code 1 Stop. make[1]: stopped making "all" in /usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_2/i915 The patch from Mark also applies for drm-66-kmod, builds and installs fine. Many thanks!