Re: alignas (C11) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: alignas (C11)
Date
Msg-id 3119480.1769189606@sss.pgh.pa.us
Whole thread Raw
In response to Re: alignas (C11)  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: alignas (C11)
List pgsql-hackers
Peter Eisentraut <peter@eisentraut.org> writes:
> This patch set has been committed, it looks like without buildfarm
> complaints.

Things were fine until test_cplusplusext was added, but now
some older compilers seem to reject this in C++ mode.
For example at [1]:

make[1]: Entering directory '/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/src/test/modules/test_cplusplusext'
g++ -Wall -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard-g -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -I.
-I/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/test/modules/test_cplusplusext
-I../../../../src/include-I/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/include -D_GNU_SOURCE
-I/usr/include/libxml2    -c -o test_cplusplusext.o
/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/test/modules/test_cplusplusext/test_cplusplusext.cpp
In file included from /home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/include/postgres.h:48:0,
                 from
/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/test/modules/test_cplusplusext/test_cplusplusext.cpp:18:
/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/include/c.h:1126:44: warning: requested alignment 4096
islarger than 128 [-Wattributes] 
  alignas(PG_IO_ALIGN_SIZE) char data[BLCKSZ];
                                            ^
/home/debian/20-chimaera/buildroot/HEAD/pgsql.build/../pgsql/src/include/c.h:1132:49: warning: requested alignment 4096
islarger than 128 [-Wattributes] 
  alignas(PG_IO_ALIGN_SIZE) char data[XLOG_BLCKSZ];
                                                 ^

Not sure what to do about that, but I do read it as indicating that we
cannot put any faith in the compiler to honor such large alignment
demands.

A possible short-term(?) workaround is to wrap those two declarations
in "#ifndef __cplusplus", so that C++ code can't declare such
variables.

            regards, tom lane

[1]
https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=chimaera&dt=2026-01-23%2011%3A44%3A01&stg=make-testmodules



pgsql-hackers by date:

Previous
From: Zsolt Parragi
Date:
Subject: Re: Time to add FIDO2 support?
Next
From: Jacob Champion
Date:
Subject: Re: Time to drop RADIUS support?