From: Masahiko Sawada Date: Wed, 31 Dec 2025 19:18:14 +0000 (-0800) Subject: Fix macro name for io_uring_queue_init_mem check. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85d5bd308bf5dc3068a4c28aa0f12cc22272f789;p=thirdparty%2Fpostgresql.git Fix macro name for io_uring_queue_init_mem check. Commit f54af9f2679d added a check for io_uring_queue_init_mem(). However, it used the macro name HAVE_LIBURING_QUEUE_INIT_MEM in both meson.build and the C code, while the Autotools build script defined HAVE_IO_URING_QUEUE_INIT_MEM. As a result, the optimization was never enabled in builds configured with Autotools, as the C code checked for the wrong macro name. This commit changes the macro name to HAVE_IO_URING_QUEUE_INIT_MEM in meson.build and the C code. This matches the actual function name (io_uring_queue_init_mem), following the standard HAVE_ convention. Backpatch to 18, where the macro was introduced. Bug: #19368 Reported-by: Evan Si Reviewed-by: Tom Lane Discussion: https://postgr.es/m/19368-016d79a7f3a1c599@postgresql.org Backpatch-through: 18 --- diff --git a/meson.build b/meson.build index ec08cd49056..f95b99f7063 100644 --- a/meson.build +++ b/meson.build @@ -1030,7 +1030,7 @@ if liburing.found() if cc.has_function('io_uring_queue_init_mem', dependencies: liburing, args: test_c_args) - cdata.set('HAVE_LIBURING_QUEUE_INIT_MEM', 1) + cdata.set('HAVE_IO_URING_QUEUE_INIT_MEM', 1) endif endif diff --git a/src/backend/storage/aio/method_io_uring.c b/src/backend/storage/aio/method_io_uring.c index 00cb017ca3c..6916ae69832 100644 --- a/src/backend/storage/aio/method_io_uring.c +++ b/src/backend/storage/aio/method_io_uring.c @@ -156,7 +156,7 @@ pgaio_uring_check_capabilities(void) * also has a secondary benefit: We can determine precisely how much * memory we need for each io_uring instance. */ -#if defined(HAVE_LIBURING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) +#if defined(HAVE_IO_URING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) { struct io_uring test_ring; size_t ring_size; @@ -341,7 +341,7 @@ pgaio_uring_shmem_init(bool first_time) * with its data in shared memory. Otherwise fall back io_uring * creating a memory mapping for each ring. */ -#if defined(HAVE_LIBURING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) +#if defined(HAVE_IO_URING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) if (pgaio_uring_caps.mem_init_size > 0) { struct io_uring_params p = {0};