Skip to content

In-kernel build error: error: macro "__assign_str" passed 2 arguments, but takes just 1 #16475

Closed
@robn

Description

@robn

System information

Type Version/Name
Distribution Name N/A
Distribution Version N/A
Kernel Version Linux 6.10+
Architecture all?
OpenZFS Version all

Describe the problem you're observing

Build fails against kernel 6.10+ (in-kernel and "GPL hack" builds):

In file included from ./include/trace/trace_events.h:419,
                 from ./include/trace/define_trace.h:102,
                 from /home/robn/code/zfs/include/os/linux/zfs/sys/trace_dbgmsg.h:80,
                 from /home/robn/code/zfs/module/os/linux/zfs/trace.c:44:
/home/robn/code/zfs/include/os/linux/zfs/sys/trace_dbgmsg.h:65:1: error: macro "__assign_str" passed 2 arguments, but takes just 1
   65 | );
      | ^~

__assign_str in 6.10 dropped second argument in torvalds/linux@2c92ca849fcc.

Most of the (probable) fix is robn/zfs@ee94ce9c8, but it needs configure support. I messed with it last night, but it didn't look like a simple check, because of the whole tracepoint sequencing thing. Probably lifting the guts of the DECLARE_EVENT_CLASS check and parameterising it to include __assign_str() is the "right" way to do it. I have no particular time or interest for this; feel free to grab the patch and finish it, and ask me if you like an assist.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: DefectIncorrect behavior (e.g. crash, hang)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions