DisplayLink / evdi

Extensible Virtual Display Interface
MIT License
689 stars 179 forks source link

Compiling with GCC-12 #393

Open stappersg opened 1 year ago

stappersg commented 1 year ago

Hello,

Upon running make after git clone I do get

/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h: In function 'vtime_account_hardirq':
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:43:62: error: unused parameter 'tsk' [-Werror=unused-parameter]
   43 | static inline void vtime_account_hardirq(struct task_struct *tsk) { }
      |                                          ~~~~~~~~~~~~~~~~~~~~^~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h: In function 'vtime_flush':
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:44:52: error: unused parameter 'tsk' [-Werror=unused-parameter]
   44 | static inline void vtime_flush(struct task_struct *tsk) { }
      |                                ~~~~~~~~~~~~~~~~~~~~^~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h: In function 'irqtime_account_irq':
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:135:60: error: unused parameter 'tsk' [-Werror=unused-parameter]
  135 | static inline void irqtime_account_irq(struct task_struct *tsk, unsigned int offset) { }
      |                                        ~~~~~~~~~~~~~~~~~~~~^~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:135:78: error: unused parameter 'offset' [-Werror=unused-parameter]
  135 | static inline void irqtime_account_irq(struct task_struct *tsk, unsigned int offset) { }
      |                                                                 ~~~~~~~~~~~~~^~~~~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h: In function 'disable_irq_nosync_lockdep_irqsave':
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h:449:88: error: unused parameter 'flags' [-Werror=unused-parameter]
  449 | static inline void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags)
      |                                                                         ~~~~~~~~~~~~~~~^~~~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h: In function 'enable_irq_lockdep_irqrestore':
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h:473:83: error: unused parameter 'flags' [-Werror=unused-parameter]
  473 | static inline void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags)
      |                                                                    ~~~~~~~~~~~~~~~^~~~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h: In function 'do_softirq_post_smp_call_flush':
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h:595:64: error: unused parameter 'unused' [-Werror=unused-parameter]
  595 | static inline void do_softirq_post_smp_call_flush(unsigned int unused)
      |                                                   ~~~~~~~~~~~~~^~~~~~
cc1: all warnings being treated as errors
make[3]: *** [/usr/src/linux-headers-6.0.0-6-common/scripts/Makefile.build:254: /usr/src/evdi/module/evdi_platform_drv.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.0.0-6-common/Makefile:1876: /usr/src/evdi/module] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-6.0.0-6-amd64'
make[1]: *** [Makefile:86: module] Error 2
make[1]: Leaving directory '/usr/src/evdi/module'
make: *** [Makefile:8: all] Error 2

This happens on a Debian Bookworm (latest and greatest Debian) system.

$ gcc --version
gcc (Debian 12.2.0-11) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$

Encountered while trying to see if https://github.com/DisplayLink/evdi/issues/384 solves my problem of not being able to use DisplayLink monitors on an USB-C docking station.

stappersg commented 1 year ago

Which gcc version is known for succesfull build?

wvdakker commented 1 year ago

Hello Geert,

I can compile it without problems on Bookworm. Perhaps you have an older evdi version? I am using the trunk version.

Greetings Willem

On Wed, 2023-01-04 at 07:49 -0800, Geert Stappers wrote:

Hello, Upon running make after git clone I do get /usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h: In function 'vtime_account_hardirq': /usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:43:62: error: unused parameter 'tsk' [-Werror=unused-parameter]    43 | static inline void vtime_account_hardirq(struct task_struct *tsk) { }       |


/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h: In
function 'vtime_flush':
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:44:52:
error: unused parameter 'tsk' [-Werror=unused-parameter]
   44 | static inline void vtime_flush(struct task_struct *tsk) { }
      |                                ~~~~~~~~~~~~~~~~~~~~^~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h: In
function 'irqtime_account_irq':
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:135:60:
error: unused parameter 'tsk' [-Werror=unused-parameter]
  135 | static inline void irqtime_account_irq(struct task_struct
*tsk, unsigned int offset) { }
      |                                       
~~~~~~~~~~~~~~~~~~~~^~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/vtime.h:135:78:
error: unused parameter 'offset' [-Werror=unused-parameter]
  135 | static inline void irqtime_account_irq(struct task_struct
*tsk, unsigned int offset) { }
      |                                                             
~~~~~~~~~~~~~^~~~~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h: In
function 'disable_irq_nosync_lockdep_irqsave':
/usr/src/linux-headers-6.0.0-6-
common/include/linux/interrupt.h:449:88: error: unused parameter
'flags' [-Werror=unused-parameter]
  449 | static inline void
disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long
*flags)
      |                                                             
~~~~~~~~~~~~~~~^~~~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h: In
function 'enable_irq_lockdep_irqrestore':
/usr/src/linux-headers-6.0.0-6-
common/include/linux/interrupt.h:473:83: error: unused parameter
'flags' [-Werror=unused-parameter]
  473 | static inline void enable_irq_lockdep_irqrestore(unsigned int
irq, unsigned long *flags)
      |                                                             
~~~~~~~~~~~~~~~^~~~~
/usr/src/linux-headers-6.0.0-6-common/include/linux/interrupt.h: In
function 'do_softirq_post_smp_call_flush':
/usr/src/linux-headers-6.0.0-6-
common/include/linux/interrupt.h:595:64: error: unused parameter
'unused' [-Werror=unused-parameter]
  595 | static inline void do_softirq_post_smp_call_flush(unsigned
int unused)
      |                                                  
~~~~~~~~~~~~~^~~~~~
cc1: all warnings being treated as errors
make[3]: *** [/usr/src/linux-headers-6.0.0-6-
common/scripts/Makefile.build:254:
/usr/src/evdi/module/evdi_platform_drv.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.0.0-6-common/Makefile:1876:
/usr/src/evdi/module] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-6.0.0-6-amd64'
make[1]: *** [Makefile:86: module] Error 2
make[1]: Leaving directory '/usr/src/evdi/module'
make: *** [Makefile:8: all] Error 2
This happens on a Debian Bookworm (latest and greatest Debian)
system.
$ gcc --version
gcc (Debian 12.2.0-11) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

$
Encountered while trying to see if #384 solves my problem of not
being able to use DisplayLink monitors on an USB-C docking station.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this
thread.Message ID: ***@***.***>
johnlinahan commented 1 year ago

I'm also unable to build on a fresh install of bookworm:

root@xps:/usr/src/evdi-1.13.1# make
make -C /lib/modules/6.1.0-7-amd64/build M=$PWD
make[1]: Entering directory '/usr/src/linux-headers-6.1.0-7-amd64'
  CC [M]  /usr/src/evdi-1.13.1/evdi_platform_drv.o
gcc-12: warning: include/drm: linker input file unused because linking not done
gcc-12: error: include/drm: linker input file not found: No such file or directory
make[2]: *** [/usr/src/linux-headers-6.1.0-7-common/scripts/Makefile.build:255: /usr/src/evdi-1.13.1/evdi_platform_drv.o] Error 1
make[2]: *** Deleting file '/usr/src/evdi-1.13.1/evdi_platform_drv.o'
make[1]: *** [/usr/src/linux-headers-6.1.0-7-common/Makefile:2037: /usr/src/evdi-1.13.1] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-7-amd64'
make: *** [Makefile:86: module] Error 2

Perhaps I am missing a package? The only one I know to install is dkms. Unfortunately I have no experience with linux drivers or Makefiles :sweat: