openzfs / spl

A shim layer which adds the core interfaces required for OpenZFS.
https://zfsonlinux.org/
GNU General Public License v2.0
282 stars 181 forks source link

Build fails on some linux-4.16 kernels configured with TRIM_UNUSED_KSYMS=y #702

Closed davidraila closed 6 years ago

davidraila commented 6 years ago

On linux-4.16. spl master and spl-0.7-release pass autoconf and configure but seem to fail build on some 4.16 kernels configured with TRIM_UNUSED_KSYMS=y. I believe master built successfully on 4.16, failed on 4.16.1, built on 4.16.2, then failed again on 4.16.3 with TRIM_UNUSED_KSYMS in the kernel config - leading me to search git logs for the compile errors (detail below) and find TRIM_UNUSED_KSYMS dependencies.

Unfortunately I didn't keep the build logs or previous kernel config, but once TRIM_UNUSED_KSYMS was disabled in 4.16.3, I can build/use zfs again. It is possible that I modified TRIM_UNUSED_KSYMS though my transitions through 4.16.{0,1,2,3} but I don't believe that I did. TRIM_UNUSED_KSYMS handling seems stable since 2016-08-01:4b9dddf43084306de34394d666b874b912ca42ca as well, so this may point to something in the kernel and/or kernel/spl:configure interactions.

Thanks, David

=================== Further detail: From memory, I believe the latest compile error presented in spl-condvar.c:163 static long spl_io_schedule_timeout(long time_left) with errors related to an error related to undefined init_timer and setup_timer

also errors presented related to PDE_DATA - which led me to the notes on TRIM_UNUSED_KSYMS in 4b9dddf43084306de34394d666b874b912ca42ca and led me to disable it and successfully build ZFS on 4.16.3 `` spl-kstat.c:33

define PDE_DATA(x) (PDE(x)->data)

``

behlendorf commented 6 years ago

Closing. @davidraila if you're able to reproduce this with the zfs master branch can you please open a new issue of the zfsonlinux/zfs issue tracker. This should already be detected at configure time by zfsonlinux/zfs@4b9dddf43084306de34394d666b874b912ca42ca.