tools feature gettid: Undef _GNU_SOURCE before defining it

Since most of tools/build/feature/test-*.c feature tests are included in
tools/build/feature/test-all.c, we can't just definie _GNU_SOURCE as it
may already been defined and this will break the build with:

  acme@alta:~$ cat /tmp/build/perf-tools-next/feature/test-all.make.output
  In file included from test-all.c:26:
  test-gettid.c:3:9: error: "_GNU_SOURCE" redefined [-Werror]
      3 | #define _GNU_SOURCE
        |         ^~~~~~~~~~~
  In file included from /usr/include/python3.13/pyconfig.h:9,
                   from /usr/include/python3.13/Python.h:14,
                   from test-python-module.c:2,
                   from test-all.c:14:
  /usr/include/aarch64-linux-gnu/python3.13/pyconfig.h:1810:10: note: this is the location of the previous definition
   1810 | # define _GNU_SOURCE 1
        |          ^~~~~~~~~~~
  cc1: all warnings being treated as errors
  acme@alta:~$

I.e. pyconfig.h is included by the new test-python-module.c, that is at
the start of test-all.c, defines _GNU_SOURCE, noticed on Debian 13
(/usr/include/aarch64-linux-gnu/python3.13/pyconfig.h, libpython
3.13.5-2+deb13u5), and then test-all.c includes test-gettid.c that was
defining it as well, undef it first as does several other tests.

Fixes: 1b7e0280e2 ("perf Makefile: Update Python script installation path")
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2026-09-28 13:31:39 +02:00
parent 0ae6fc78c5
commit b1f035ad79

View File

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (C) 2019, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
#undef _GNU_SOURCE
#define _GNU_SOURCE
#include <unistd.h>