intrepidcs / intrepid-socketcan-kernel-module

Kernel-mode SocketCAN module for Intrepid devices
17 stars 6 forks source link

Make does not build successfully #14

Closed d4n13lx13 closed 1 year ago

d4n13lx13 commented 1 year ago

I am following the ReadMe instructions to build the intrepid.ko module but make seems to fail due to some gcc error on Ubuntu 18.04.

Linux CAMKHLNCNFHKN49 5.4.0-122-generic #138~18.04.1-Ubuntu SMP Fri Jun 24 14:14:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

When I run make this is what I get:

make[1]: Entering directory '/usr/src/linux-headers-5.4.0-122-generic'
  CC [M]  /home/szf38s/intrepid-socketcan-kernel-module/intrepid.o
/home/szf38s/intrepid-socketcan-kernel-module/intrepid.c: In function ‘intrepid_dev_ioctl’:
/home/szf38s/intrepid-socketcan-kernel-module/intrepid.c:949:4: error: a label can only be part of a statement and a declaration is not a statement
    struct intrepid_netdevice *result = NULL;
    ^~~~~~
/home/szf38s/intrepid-socketcan-kernel-module/intrepid.c:951:4: error: expected expression before ‘char’
    char requestedNameBuffer[IFALIASZ] = {0};
    ^~~~
/home/szf38s/intrepid-socketcan-kernel-module/intrepid.c:952:4: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
    char* requestedName = NULL;
    ^~~~
/home/szf38s/intrepid-socketcan-kernel-module/intrepid.c:955:37: error: ‘requestedNameBuffer’ undeclared (first use in this function); did you mean ‘requestedName’?
     bytesNotCopied = copy_from_user(requestedNameBuffer, (void __user*)arg, IFALIASZ);
                                     ^~~~~~~~~~~~~~~~~~~
                                     requestedName
/home/szf38s/intrepid-socketcan-kernel-module/intrepid.c:955:37: note: each undeclared identifier is reported only once for each function it appears in
scripts/Makefile.build:270: recipe for target '/home/szf38s/intrepid-socketcan-kernel-module/intrepid.o' failed
make[2]: *** [/home/szf38s/intrepid-socketcan-kernel-module/intrepid.o] Error 1
Makefile:1762: recipe for target '/home/szf38s/intrepid-socketcan-kernel-module' failed
make[1]: *** [/home/szf38s/intrepid-socketcan-kernel-module] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-122-generic'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2

Running sudo make results in

make[1]: Entering directory '/usr/src/linux-headers-5.4.0-122-generic'
  LEX     scripts/kconfig/lexer.lex.c
/bin/sh: 1: flex: not found
scripts/Makefile.host:9: recipe for target 'scripts/kconfig/lexer.lex.c' failed
make[3]: *** [scripts/kconfig/lexer.lex.c] Error 127
Makefile:617: recipe for target 'syncconfig' failed
make[2]: *** [syncconfig] Error 2
Makefile:723: recipe for target 'include/config/auto.conf.cmd' failed
make[1]: *** [include/config/auto.conf.cmd] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-122-generic'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2

Current dependencies versions -

Reading state information... Done
build-essential is already the newest version (12.4ubuntu1).
gcc is already the newest version (4:7.4.0-1ubuntu2.3).
git is already the newest version (1:2.17.1-1ubuntu0.12).
linux-headers-generic is already the newest version (4.15.0.189.174).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Are there any reasons why I am unable to successfully build this module?

kschwarz-intrepidcs commented 1 year ago

Thanks for the report, this has been fixed with e455a8847c0198cf2ea85c54b47d0fce1b751238

d4n13lx13 commented 1 year ago

Thank you, resolved my issue.