mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-01-25 10:12:13 +03:00
Parts of the Linux kernel build system struggle with _Noreturn. This
results in the following warnings when building on RHEL 8.5, and likely
other environments. Switch to using the __attribute__((noreturn)).
warning: objtool: dbuf_free_range()+0x2b8:
return with modified stack frame
warning: objtool: dbuf_free_range()+0x0:
stack state mismatch: cfa1=7+40 cfa2=7+8
...
WARNING: EXPORT symbol "arc_buf_size" [zfs.ko] version generation
failed, symbol will not be versioned.
WARNING: EXPORT symbol "spa_open" [zfs.ko] version generation
failed, symbol will not be versioned.
...
Additionally, __thread_exit() has been renamed spl_thread_exit() and
made a static inline function. This was needed because the kernel
will generate a warning for symbols which are __attribute__((noreturn))
and then exported with EXPORT_SYMBOL.
While we could continue to use _Noreturn in user space I've also
switched it to __attribute__((noreturn)) purely for consistency
throughout the code base.
Reviewed-by: Ryan Moeller <freqlabs@FreeBSD.org>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #13238
|
||
|---|---|---|
| .. | ||
| acl.h | ||
| atomic.h | ||
| byteorder.h | ||
| callb.h | ||
| callo.h | ||
| cmn_err.h | ||
| condvar.h | ||
| cred.h | ||
| ctype.h | ||
| debug.h | ||
| disp.h | ||
| dkio.h | ||
| errno.h | ||
| fcntl.h | ||
| file.h | ||
| inttypes.h | ||
| isa_defs.h | ||
| kmem_cache.h | ||
| kmem.h | ||
| kstat.h | ||
| list.h | ||
| Makefile.am | ||
| mod_os.h | ||
| mutex.h | ||
| param.h | ||
| proc.h | ||
| processor.h | ||
| procfs_list.h | ||
| random.h | ||
| rwlock.h | ||
| shrinker.h | ||
| sid.h | ||
| signal.h | ||
| simd.h | ||
| stat.h | ||
| string.h | ||
| sunddi.h | ||
| sysmacros.h | ||
| systeminfo.h | ||
| taskq.h | ||
| thread.h | ||
| time.h | ||
| timer.h | ||
| trace_spl.h | ||
| trace_taskq.h | ||
| trace.h | ||
| tsd.h | ||
| types32.h | ||
| types.h | ||
| uio.h | ||
| user.h | ||
| vfs.h | ||
| vmem.h | ||
| vmsystm.h | ||
| vnode.h | ||
| wait.h | ||
| wmsum.h | ||
| zmod.h | ||
| zone.h | ||