Thread

  1. Re: BUG #19368: f54af9f does not create the correct macro for autotools build

    Masahiko Sawada <sawada.mshk@gmail.com> — 2025-12-31T16:50:00Z

    On Wed, Dec 31, 2025 at 7:59 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
    >
    > PG Bug reporting form <noreply@postgresql.org> writes:
    > > The commit f54af9f2679d added a macro HAVE_LIBURING_QUEUE_INIT_MEM that is
    > > checked to see if slowdown from memory mappings can be avoided when using
    > > io_uring.
    > > This HAVE_LIBURING_QUEUE_INIT_MEM is set by Meson build after checking
    > > liburing.
    > > However, the autotools build seems to set a different macro,
    > > HAVE_IO_URING_QUEUE_INIT_MEM, which is never used.
    >
    > > This means when the server is built with autotools, the slowdown when using
    > > io_uring can never be avoided.
    >
    > This is indeed busted, but I'd argue that the autoconf build has the
    > right macro name and meson and the C code are using the wrong one:
    >
    >   if cc.has_function('io_uring_queue_init_mem',
    >       dependencies: liburing, args: test_c_args)
    >     cdata.set('HAVE_LIBURING_QUEUE_INIT_MEM', 1)
    >   endif
    >
    > That's clearly not following the "HAVE_function" convention.
    
    Agreed. The attached patch should fix the issue.
    
    Regards,
    
    -- 
    Masahiko Sawada
    Amazon Web Services: https://aws.amazon.com