relan / exfat

Free exFAT file system implementation
GNU General Public License v2.0
789 stars 179 forks source link

Compiling failed on kernel 4.18.6 #103

Closed EasyNetDev closed 5 years ago

EasyNetDev commented 5 years ago

Hi,

The module is not compiling under kernel 4.18.6.

Error message when I'm compiling:

# dkms install -m exfat -v 1.2.9

Creating symlink /var/lib/dkms/exfat/1.2.9/source ->
                 /usr/src/exfat-1.2.9

DKMS: add completed.

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
KDIR=/lib/modules/4.18.0-1-amd64/build MDIR=/lib/modules/4.18.0-1-amd64 make...(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.18.0-1-amd64 (x86_64)
Consult /var/lib/dkms/exfat/1.2.9/build/make.log for more information.

# cat /var/lib/dkms/exfat/1.2.9/build/make.log 
DKMS make.log for exfat-1.2.9 for kernel 4.18.0-1-amd64 (x86_64)
Thu Sep 13 11:23:37 CEST 2018
make -C /lib/modules/4.18.0-1-amd64/build M=/var/lib/dkms/exfat/1.2.9/build modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-1-amd64'
  CC [M]  /var/lib/dkms/exfat/1.2.9/build/exfat_core.o
  CC [M]  /var/lib/dkms/exfat/1.2.9/build/exfat_super.o
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c: In function ‘exfat_fill_inode’:
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:1927:27: error: passing argument 2 of ‘exfat_time_fat2unix’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  exfat_time_fat2unix(sbi, &inode->i_mtime, &info.ModifyTimestamp);
                           ^
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:150:6: note: expected ‘struct timespec *’ but argument is of type ‘struct timespec64 *’
 void exfat_time_fat2unix(struct exfat_sb_info *sbi, struct timespec *ts,
      ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:1928:27: error: passing argument 2 of ‘exfat_time_fat2unix’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  exfat_time_fat2unix(sbi, &inode->i_ctime, &info.CreateTimestamp);
                           ^
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:150:6: note: expected ‘struct timespec *’ but argument is of type ‘struct timespec64 *’
 void exfat_time_fat2unix(struct exfat_sb_info *sbi, struct timespec *ts,
      ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:1929:27: error: passing argument 2 of ‘exfat_time_fat2unix’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  exfat_time_fat2unix(sbi, &inode->i_atime, &info.AccessTimestamp);
                           ^
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:150:6: note: expected ‘struct timespec *’ but argument is of type ‘struct timespec64 *’
 void exfat_time_fat2unix(struct exfat_sb_info *sbi, struct timespec *ts,
      ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c: In function ‘exfat_write_inode’:
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:2010:27: error: passing argument 2 of ‘exfat_time_unix2fat’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  exfat_time_unix2fat(sbi, &inode->i_mtime, &info.ModifyTimestamp);
                           ^
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:169:6: note: expected ‘struct timespec *’ but argument is of type ‘struct timespec64 *’
 void exfat_time_unix2fat(struct exfat_sb_info *sbi, struct timespec *ts,
      ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:2011:27: error: passing argument 2 of ‘exfat_time_unix2fat’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  exfat_time_unix2fat(sbi, &inode->i_ctime, &info.CreateTimestamp);
                           ^
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:169:6: note: expected ‘struct timespec *’ but argument is of type ‘struct timespec64 *’
 void exfat_time_unix2fat(struct exfat_sb_info *sbi, struct timespec *ts,
      ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:2012:27: error: passing argument 2 of ‘exfat_time_unix2fat’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  exfat_time_unix2fat(sbi, &inode->i_atime, &info.AccessTimestamp);
                           ^
/var/lib/dkms/exfat/1.2.9/build/exfat_super.c:169:6: note: expected ‘struct timespec *’ but argument is of type ‘struct timespec64 *’
 void exfat_time_unix2fat(struct exfat_sb_info *sbi, struct timespec *ts,
      ^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-4.18.0-1-common/scripts/Makefile.build:323: /var/lib/dkms/exfat/1.2.9/build/exfat_super.o] Error 1
make[3]: *** [/usr/src/linux-headers-4.18.0-1-common/Makefile:1518: _module_/var/lib/dkms/exfat/1.2.9/build] Error 2
make[2]: *** [Makefile:146: sub-make] Error 2
make[1]: *** [Makefile:8: all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-1-amd64'
make: *** [Makefile:35: all] Error 2
relan commented 5 years ago

This project is a FUSE-based implementation, while you're compiling some kernel-based one. :)