Evdi does not compile on RedHat 8.6
- Are you using the latest driver? ** Yes
- Are you using the latest EVDI version? ** Yes
- If you are using a DisplayLink device, have you checked 'troubleshooting' on DisplayLink's website? ** Yes
- Is this issue related to evdi/kernel? ** Yes
- Linux distribution and its version RedHat 8.6
- Linux kernel version 4.18.0-372.9.1.el8.x86_64
- Desktop environment in use GNOME
I've seen the same issue for 8.5 at #331. Logs are almost the same.
make[2] : on entre dans le répertoire « /usr/src/kernels/4.18.0-372.9.1.el8.x86_64 »
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_platform_drv.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_platform_dev.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_sysfs.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_connector.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_encoder.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_drm_drv.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_fb.o
CC [M] /home/gauthier.vigouroux/projects/evdi/module/evdi_gem.o
/home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.c:397:19: error: initialisation de « void (*)(struct drm_plane *, struct drm_atomic_state *) » depuis le type pointeur « void (*)(struct drm_plane *, struct drm_plane_state *) » qui est incompatible [-Werror=incompatible-pointer-types]
.atomic_update = evdi_plane_atomic_update,
^~~~~~~~~~~~~~~~~~~~~~~~
/home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.c:397:19: note: (près de l'initialisation de « evdi_plane_helper_funcs.atomic_update »)
/home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.c:401:16: error: « drm_gem_fb_prepare_fb » non déclaré ici (hors de toute fonction); vouliez-vous utiliser « drm_gem_fb_create » ?
.prepare_fb = drm_gem_fb_prepare_fb
^~~~~~~~~~~~~~~~~~~~~
drm_gem_fb_create
/home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.c:406:19: error: initialisation de « void (*)(struct drm_plane *, struct drm_atomic_state *) » depuis le type pointeur « void (*)(struct drm_plane *, struct drm_plane_state *) » qui est incompatible [-Werror=incompatible-pointer-types]
.atomic_update = evdi_cursor_atomic_update,
^~~~~~~~~~~~~~~~~~~~~~~~~
/home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.c:406:19: note: (près de l'initialisation de « evdi_cursor_helper_funcs.atomic_update »)
cc1 : tous les avertissements sont traités comme des erreurs
make[3]: *** [scripts/Makefile.build:315: /home/gauthier.vigouroux/projects/evdi/module/evdi_modeset.o] Error 1
make[3]: *** Attente des tâches non terminées....
make[2]: *** [Makefile:1577: _module_/home/gauthier.vigouroux/projects/evdi/module] Error 2
make[2] : on quitte le répertoire « /usr/src/kernels/4.18.0-372.9.1.el8.x86_64 »
make[1]: *** [Makefile:81: module] Error 2
make[1] : on quitte le répertoire « /home/gauthier.vigouroux/projects/evdi/module »
make: *** [Makefile:8: all] Error 2
Ran into this when trying to follow https://unix.stackexchange.com/a/585078. See if the above PR works for you.
I've trying to build target dkms (first step) but it returns me :
$sudo make install_dkms
dkms install .
Creating symlink /var/lib/dkms/evdi/1.7.2/source -> /usr/src/evdi-1.7.2
Building module:
cleaning build area...
make -j8 KERNELRELEASE=4.18.0-372.9.1.el8.x86_64 all INCLUDEDIR=/lib/modules/4.18.0-372.9.1.el8.x86_64/build/include KVERSION=4.18.0-372.9.1.el8.x86_64 DKMS_BUILD=1...(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.18.0-372.9.1.el8.x86_64 (x86_64)
Consult /var/lib/dkms/evdi/1.7.2/build/make.log for more information.
make: *** [Makefile:91: install_dkms] Error 10
The make.log file is like this :
DKMS make.log for evdi-1.7.2 for kernel 4.18.0-372.9.1.el8.x86_64 (x86_64)
mar. juin 21 10:18:56 CEST 2022
make[1] : on entre dans le répertoire « /var/lib/dkms/evdi/1.7.2/build »
make KBUILD_VERBOSE=1 M=/var/lib/dkms/evdi/1.7.2/build SUBDIRS=/var/lib/dkms/evdi/1.7.2/build SRCROOT=/var/lib/dkms/evdi/1.7.2/build CONFIG_MODULE_SIG= -C /lib/modules/4.18.0-372.9.1.el8.x86_64/build modules
make[2] : on entre dans le répertoire « /usr/src/kernels/4.18.0-372.9.1.el8.x86_64 »
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
mkdir -p /var/lib/dkms/evdi/1.7.2/build/.tmp_versions ; rm -f /var/lib/dkms/evdi/1.7.2/build/.tmp_versions/*
make -f ./scripts/Makefile.build obj=/var/lib/dkms/evdi/1.7.2/build
(cat /dev/null; echo kernel//var/lib/dkms/evdi/1.7.2/build/evdi.ko;) > /var/lib/dkms/evdi/1.7.2/build/modules.order
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_drv.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_drv"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_drv.o /var/lib/dkms/evdi/1.7.2/build/evdi_drv.c
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_modeset.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_modeset"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_modeset.o /var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_connector.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_connector"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_connector.o /var/lib/dkms/evdi/1.7.2/build/evdi_connector.c
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_encoder.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_encoder"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_encoder.o /var/lib/dkms/evdi/1.7.2/build/evdi_encoder.c
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_main.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_main"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_main.o /var/lib/dkms/evdi/1.7.2/build/evdi_main.c
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_fb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_fb"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_fb.o /var/lib/dkms/evdi/1.7.2/build/evdi_fb.c
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_gem.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_gem"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_gem.o /var/lib/dkms/evdi/1.7.2/build/evdi_gem.c
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:90:3: error: « struct drm_driver » n'a pas de membre nommé « preclose »; vouliez-vous employer « postclose » ?
.preclose = evdi_driver_preclose,
^~~~~~~~
postclose
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:90:14: error: initialisation de « void (*)(struct drm_device *) » depuis le type pointeur « void (*)(struct drm_device *, struct drm_file *) » qui est incompatible [-Werror=incompatible-pointer-types]
.preclose = evdi_driver_preclose,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:90:14: note: (près de l'initialisation de « driver.release »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:98:3: error: « struct drm_driver » n'a pas de membre nommé « gem_free_object »; vouliez-vous employer « gem_create_object » ?
.gem_free_object = evdi_gem_free_object,
^~~~~~~~~~~~~~~
gem_create_object
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:98:21: error: initialisation de « void (*)(struct drm_device *) » depuis le type pointeur « void (*)(struct drm_gem_object *) » qui est incompatible [-Werror=incompatible-pointer-types]
.gem_free_object = evdi_gem_free_object,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:98:21: note: (près de l'initialisation de « driver.lastclose »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:100:3: error: « struct drm_driver » n'a pas de membre nommé « gem_vm_ops »
.gem_vm_ops = &evdi_gem_vm_ops,
^~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:100:16: error: initialisation de « void (*)(struct drm_device *) » depuis le type pointeur « const struct vm_operations_struct * » qui est incompatible [-Werror=incompatible-pointer-types]
.gem_vm_ops = &evdi_gem_vm_ops,
^
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:100:16: note: (près de l'initialisation de « driver.unload »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:104:18: error: « drm_gem_dumb_destroy » non déclaré ici (hors de toute fonction); vouliez-vous utiliser « drm_mode_destroy » ?
.dumb_destroy = drm_gem_dumb_destroy,
^~~~~~~~~~~~~~~~~~~~
drm_mode_destroy
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:114:3: error: « struct drm_driver » n'a pas de membre nommé « gem_prime_export »; vouliez-vous employer « gem_prime_import » ?
.gem_prime_export = drm_gem_prime_export,
^~~~~~~~~~~~~~~~
gem_prime_import
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:114:22: error: initialisation de « int (*)(struct drm_device *, struct drm_file *, int, uint32_t *) » {alias « int (*)(struct drm_device *, struct drm_file *, int, unsigned int *) »} depuis le type pointeur « struct dma_buf * (*)(struct drm_gem_object *, int) » qui est incompatible [-Werror=incompatible-pointer-types]
.gem_prime_export = drm_gem_prime_export,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:114:22: note: (près de l'initialisation de « driver.prime_fd_to_handle »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:115:3: error: « struct drm_driver » n'a pas de membre nommé « gem_prime_get_sg_table »; vouliez-vous employer « gem_prime_import_sg_table » ?
.gem_prime_get_sg_table = evdi_prime_get_sg_table,
^~~~~~~~~~~~~~~~~~~~~~
gem_prime_import_sg_table
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:115:28: error: initialisation de « struct drm_gem_object * (*)(struct drm_device *, struct dma_buf *) » depuis le type pointeur « struct sg_table * (*)(struct drm_gem_object *) » qui est incompatible [-Werror=incompatible-pointer-types]
.gem_prime_get_sg_table = evdi_prime_get_sg_table,
^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:115:28: note: (près de l'initialisation de « driver.gem_prime_import »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:118:3: error: « struct drm_driver » n'a pas de membre nommé « enable_vblank »
.enable_vblank = evdi_enable_vblank,
^~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:118:19: error: initialisation de « int (*)(struct drm_gem_object *, struct vm_area_struct *) » depuis le type pointeur « int (*)(struct drm_device *, unsigned int) » qui est incompatible [-Werror=incompatible-pointer-types]
.enable_vblank = evdi_enable_vblank,
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:118:19: note: (près de l'initialisation de « driver.gem_prime_mmap »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:119:3: error: « struct drm_driver » n'a pas de membre nommé « disable_vblank »
.disable_vblank = evdi_disable_vblank,
^~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:119:20: error: initialisation de « int (*)(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *) » depuis le type pointeur « void (*)(struct drm_device *, unsigned int) » qui est incompatible [-Werror=incompatible-pointer-types]
.disable_vblank = evdi_disable_vblank,
^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:119:20: note: (près de l'initialisation de « driver.dumb_create »)
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c: Dans la fonction « evdi_platform_probe »:
/var/lib/dkms/evdi/1.7.2/build/evdi_drv.c:189:20: error: « struct dev_archdata » n'a pas de membre nommé « iommu »
pdev->dev.archdata.iommu = INTEL_IOMMU_DUMMY_DOMAIN;
^
gcc -Wp,-MD,/var/lib/dkms/evdi/1.7.2/build/.evdi_painter.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -DCONFIG_TPAUSE=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude/drm -DEL8 -DMODULE -DKBUILD_BASENAME='"evdi_painter"' -DKBUILD_MODNAME='"evdi"' -c -o /var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_painter.o /var/lib/dkms/evdi/1.7.2/build/evdi_painter.c
cc1 : certains avertissements sont traités comme des erreurs
make[3]: *** [scripts/Makefile.build:316: /var/lib/dkms/evdi/1.7.2/build/evdi_drv.o] Error 1
make[3]: *** Attente des tâches non terminées....
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c: Dans la fonction « evdi_crtc_cursor_set »:
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:135:2: error: déclaration implicite de la fonction « drm_gem_object_put_unlocked »; vouliez-vous utiliser « drm_gem_object_put_locked » ? [-Werror=implicit-function-declaration]
drm_gem_object_put_unlocked(obj);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_gem_object_put_locked
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c: Au plus haut niveau:
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:167:20: error: initialisation de « void (*)(struct drm_crtc *, struct drm_atomic_state *) » depuis le type pointeur « void (*)(struct drm_crtc *, struct drm_crtc_state *) » qui est incompatible [-Werror=incompatible-pointer-types]
.atomic_flush = evdi_crtc_atomic_flush,
^~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:167:20: note: (près de l'initialisation de « evdi_helper_funcs.atomic_flush »)
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:310:19: error: initialisation de « void (*)(struct drm_plane *, struct drm_atomic_state *) » depuis le type pointeur « void (*)(struct drm_plane *, struct drm_plane_state *) » qui est incompatible [-Werror=incompatible-pointer-types]
.atomic_update = evdi_plane_atomic_update,
^~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:310:19: note: (près de l'initialisation de « evdi_plane_helper_funcs.atomic_update »)
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:311:16: error: « drm_gem_fb_prepare_fb » non déclaré ici (hors de toute fonction); vouliez-vous utiliser « drm_gem_fb_create » ?
.prepare_fb = drm_gem_fb_prepare_fb
^~~~~~~~~~~~~~~~~~~~~
drm_gem_fb_create
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:315:19: error: initialisation de « void (*)(struct drm_plane *, struct drm_atomic_state *) » depuis le type pointeur « void (*)(struct drm_plane *, struct drm_plane_state *) » qui est incompatible [-Werror=incompatible-pointer-types]
.atomic_update = evdi_cursor_atomic_update,
^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_modeset.c:315:19: note: (près de l'initialisation de « evdi_cursor_helper_funcs.atomic_update »)
cc1 : certains avertissements sont traités comme des erreurs
make[3]: *** [scripts/Makefile.build:316: /var/lib/dkms/evdi/1.7.2/build/evdi_modeset.o] Error 1
./tools/objtool/objtool orc generate --module --no-fp --retpoline "/var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_connector.o";
./tools/objtool/objtool orc generate --module --no-fp --retpoline "/var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_encoder.o";
./tools/objtool/objtool orc generate --module --no-fp --retpoline "/var/lib/dkms/evdi/1.7.2/build/.tmp_evdi_main.o";
/var/lib/dkms/evdi/1.7.2/build/evdi_fb.c: Dans la fonction « evdi_user_framebuffer_destroy »:
/var/lib/dkms/evdi/1.7.2/build/evdi_fb.c:325:3: error: déclaration implicite de la fonction « drm_gem_object_put_unlocked »; vouliez-vous utiliser « drm_gem_object_put_locked » ? [-Werror=implicit-function-declaration]
drm_gem_object_put_unlocked(&efb->obj->base);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_gem_object_put_locked
/var/lib/dkms/evdi/1.7.2/build/evdi_fb.c: Dans la fonction « evdi_fbdev_init »:
/var/lib/dkms/evdi/1.7.2/build/evdi_fb.c:499:8: error: trop d'arguments pour la fonction « drm_fb_helper_init »
ret = drm_fb_helper_init(dev, &efbdev->helper, 1);
^~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/evdi/1.7.2/build/evdi_fb.c:26:
./include/drm/drm_fb_helper.h:215:5: note: déclaré ici
int drm_fb_helper_init(struct drm_device *dev, struct drm_fb_helper *helper);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_fb.c:508:2: error: déclaration implicite de la fonction « drm_fb_helper_single_add_all_connectors »; vouliez-vous utiliser « drm_fb_helper_initial_config » ? [-Werror=implicit-function-declaration]
drm_fb_helper_single_add_all_connectors(&efbdev->helper);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_fb_helper_initial_config
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c: Dans la fonction « evdi_gem_create »:
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:87:2: error: déclaration implicite de la fonction « drm_gem_object_put_unlocked »; vouliez-vous utiliser « drm_gem_object_put_locked » ? [-Werror=implicit-function-declaration]
drm_gem_object_put_unlocked(&obj->base);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_gem_object_put_locked
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c: Dans la fonction « evdi_gem_vmap »:
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:189:19: error: trop peu d'arguments pour la fonction « dma_buf_vmap »
obj->vmapping = dma_buf_vmap(obj->base.import_attach->dmabuf);
^~~~~~~~~~~~
In file included from /var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:18:
./include/linux/dma-buf.h:508:5: note: déclaré ici
int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
^~~~~~~~~~~~
cc1 : certains avertissements sont traités comme des erreurs
make[3]: *** [scripts/Makefile.build:315: /var/lib/dkms/evdi/1.7.2/build/evdi_fb.o] Error 1
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c: Dans la fonction « evdi_prime_import_sg_table »:
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:300:2: error: déclaration implicite de la fonction « drm_prime_sg_to_page_addr_arrays »; vouliez-vous utiliser « drm_prime_sg_to_dma_addr_array » ? [-Werror=implicit-function-declaration]
drm_prime_sg_to_page_addr_arrays(sg, obj->pages, NULL, npages);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_prime_sg_to_dma_addr_array
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c: Dans la fonction « evdi_prime_get_sg_table »:
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:311:34: error: passage de l'argument 1 de « drm_prime_pages_to_sg » depuis un type pointeur incompatible [-Werror=incompatible-pointer-types]
return drm_prime_pages_to_sg(bo->pages, bo->base.size >> PAGE_SHIFT);
~~^~~~~~~
In file included from ./include/drm/drm_file.h:39,
from ./include/drm/drm_vblank.h:32,
from /var/lib/dkms/evdi/1.7.2/build/evdi_drv.h:25,
from /var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:16:
./include/drm/drm_prime.h:92:18: note: « struct drm_device * » attendu mais l'argument est de type « struct page ** »
struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:311:57: warning: le passage de l'argument 2 de « drm_prime_pages_to_sg » transforme un entier en pointeur sans transtypage [-Wint-conversion]
return drm_prime_pages_to_sg(bo->pages, bo->base.size >> PAGE_SHIFT);
In file included from ./include/drm/drm_file.h:39,
from ./include/drm/drm_vblank.h:32,
from /var/lib/dkms/evdi/1.7.2/build/evdi_drv.h:25,
from /var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:16:
./include/drm/drm_prime.h:92:18: note: « struct page ** » attendu mais l'argument est de type « size_t » {alias « long unsigned int »}
struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:311:10: error: trop peu d'arguments pour la fonction « drm_prime_pages_to_sg »
return drm_prime_pages_to_sg(bo->pages, bo->base.size >> PAGE_SHIFT);
^~~~~~~~~~~~~~~~~~~~~
In file included from ./include/drm/drm_file.h:39,
from ./include/drm/drm_vblank.h:32,
from /var/lib/dkms/evdi/1.7.2/build/evdi_drv.h:25,
from /var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:16:
./include/drm/drm_prime.h:92:18: note: déclaré ici
struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_gem.c:313:1: warning: le contrôle a atteint la fin d'une fonction non « void » [-Wreturn-type]
}
^
cc1 : certains avertissements sont traités comme des erreurs
make[3]: *** [scripts/Makefile.build:315: /var/lib/dkms/evdi/1.7.2/build/evdi_gem.o] Error 1
/var/lib/dkms/evdi/1.7.2/build/evdi_painter.c: Dans la fonction « evdi_log_pixel_format »:
/var/lib/dkms/evdi/1.7.2/build/evdi_painter.c:677:29: error: la taille de stockage de « format_name » est inconnue
struct drm_format_name_buf format_name;
^~~~~~~~~~~
/var/lib/dkms/evdi/1.7.2/build/evdi_painter.c:679:2: error: déclaration implicite de la fonction « drm_get_format_name »; vouliez-vous utiliser « drm_get_format_info » ? [-Werror=implicit-function-declaration]
drm_get_format_name(pixel_format, &format_name);
^~~~~~~~~~~~~~~~~~~
drm_get_format_info
/var/lib/dkms/evdi/1.7.2/build/evdi_painter.c:677:29: warning: variable inutilisée « format_name » [-Wunused-variable]
struct drm_format_name_buf format_name;
^~~~~~~~~~~
cc1 : certains avertissements sont traités comme des erreurs
make[3]: *** [scripts/Makefile.build:315: /var/lib/dkms/evdi/1.7.2/build/evdi_painter.o] Error 1
make[2]: *** [Makefile:1577: _module_/var/lib/dkms/evdi/1.7.2/build] Error 2
make[2] : on quitte le répertoire « /usr/src/kernels/4.18.0-372.9.1.el8.x86_64 »
make[1]: *** [Makefile:28: all] Error 2
make[1] : on quitte le répertoire « /var/lib/dkms/evdi/1.7.2/build »
cc1 returns is : some warnings are treated as errors Desactivate warning as error can maybe resolve this error ?
Hmm does non-DKMS build work for you? I don't have DKMS set up on my system (yet), so I haven't tested it, although I would assume it would work the same way.
Creating symlink /var/lib/dkms/evdi/1.7.2/source -> /usr/src/evdi-1.7.2
Version 1.7.2 is ancient, please use the latest version + the patch mentioned in the comments above. Works fine here on CentOS Stream 8 and RHEL 8.6+