[LTP] [PATCH] openat2: Move includes to lapi, remove _GNU_SOURCE

Li Wang liwang@redhat.com
Thu Feb 5 10:41:38 CET 2026


On Thu, Feb 05, 2026 at 02:08:42PM +0800, Li Wang wrote:
> On Wed, Feb 04, 2026 at 01:43:23PM +0100, Petr Vorel wrote:
> > Improve 767b3e519e. struct open_how is also used in lapi/openat2.h,
> > which is used by all openat2*.c tests.  Therefore move <fcntl.h> to the
> > lapi header (and use lapi/fcntl.h instead).
> > 
> > Also remove _GNU_SOURCE which should not be needed.
> > 
> > While at it, move include "config.h" to the top.
> > 
> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > Hi Li,
> > 
> > my points from the original patchset why not use _GNU_SOURCE:
> > 
> > glibc test tst-openat2.c [1] which includes <fcntl.h>, uses struct
> 
> Interesting, I haven't figure out why it can be built within glibc itself.

I think that becuase it uses '-D_GNU_SOURCE' cflags has already globally
enabled the GNU extension (equivalent to '#define _GNU_SOURCE'), which is
done uniformly by glibc's build system.

 glibc/Makerules: ALL_BUILD_CFLAGS = $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -D_GNU_SOURCE \
			-DIS_IN_build -include $(common-objpfx)config.h

To verify this, when I add the '-D_GNU_SOURCE' cflgs in the LTP/openat20*.c
compliation, it build succeed as well:

 # gcc -I../../../../include -I../../../../include \
   -I../../../../include/old/ -Wformat -Werror=format-security \
   -Werror=implicit-function-declaration -Werror=return-type -fno-common \
   -g -O2 -fno-strict-aliasing -pipe -Wall -W -Wold-style-definition \
   -D_GNU_SOURCE \
   -std=gnu99 -L../../../../lib openat202.c  -lltp -o openat202

So, to this patch, we need to add the _GNU_SOURCE definition.

-- 
Regards,
Li Wang



More information about the ltp mailing list