mbox series

[v3,00/68] Define _GNU_SOURCE for sources using

Message ID 20240509200022.253089-1-edliaw@google.com
Headers show
Series Define _GNU_SOURCE for sources using | expand

Message

Edward Liaw May 9, 2024, 7:57 p.m. UTC
Centralizes the definition of _GNU_SOURCE into KHDR_INCLUDES and removes
redefinitions of _GNU_SOURCE from source code.

809216233555 ("selftests/harness: remove use of LINE_MAX") introduced
asprintf into kselftest_harness.h, which is a GNU extension and needs
_GNU_SOURCE to either be defined prior to including headers or with the
-D_GNU_SOURCE flag passed to the compiler.

v1: https://lore.kernel.org/linux-kselftest/20240430235057.1351993-1-edliaw@google.com/
v2: https://lore.kernel.org/linux-kselftest/20240507214254.2787305-1-edliaw@google.com/
 - Add -D_GNU_SOURCE to KHDR_INCLUDES so that it is in a single
   location.
 - Remove #define _GNU_SOURCE from source code to resolve redefinition
   warnings.
v3:
 - Rebase onto linux-next.
 - Split patches by directory.
 - Add -D_GNU_SOURCE directly to CFLAGS in lib.mk.
 - Delete additional _GNU_SOURCE definitions from source code in
   linux-next.
 - Delete additional -D_GNU_SOURCE flags from Makefiles.

Edward Liaw (68):
  selftests: Compile kselftest headers with -D_GNU_SOURCE
  selftests/sgx: Include KHDR_INCLUDES in Makefile
  selftests: Compile with -D_GNU_SOURCE when including lib.mk
  selftests/arm64: Drop define _GNU_SOURCE
  selftests/arm64: Drop duplicate -D_GNU_SOURCE
  selftests/bpf: Drop define _GNU_SOURCE
  selftests/breakpoints: Drop define _GNU_SOURCE
  selftests/cachestat: Drop define _GNU_SOURCE
  selftests/capabilities: Drop define _GNU_SOURCE
  selftests/cgroup: Drop define _GNU_SOURCE
  selftests/clone3: Drop define _GNU_SOURCE
  selftests/core: Drop define _GNU_SOURCE
  selftests/damon: Drop define _GNU_SOURCE
  selftests/drivers: Drop define _GNU_SOURCE
  selftests/exec: Drop duplicate -D_GNU_SOURCE
  selftests/fchmodat2: Drop define _GNU_SOURCE
  selftests/filelock: Drop define _GNU_SOURCE
  selftests/filesystems: Drop define _GNU_SOURCE
  selftests/firmware: Drop define _GNU_SOURCE
  selftests/fpu: Drop define _GNU_SOURCE
  selftests/futex: Drop define _GNU_SOURCE
  selftests/futex: Drop duplicate -D_GNU_SOURCE
  selftests/intel_pstate: Drop duplicate -D_GNU_SOURCE
  selftests/iommu: Drop duplicate -D_GNU_SOURCE
  selftests/ipc: Drop define _GNU_SOURCE
  selftests/kcmp: Drop define _GNU_SOURCE
  selftests/landlock: Drop define _GNU_SOURCE
  selftests/lsm: Drop define _GNU_SOURCE
  selftests/membarrier: Drop define _GNU_SOURCE
  selftests/memfd: Drop define _GNU_SOURCE
  selftests/mincore: Drop define _GNU_SOURCE
  selftests/mm: Drop define _GNU_SOURCE
  selftests/mount: Drop define _GNU_SOURCE
  selftests/mount_setattr: Drop define _GNU_SOURCE
  selftests/move_mount_set_group: Drop define _GNU_SOURCE
  selftests/mqueue: Drop define _GNU_SOURCE
  selftests/net: Drop define _GNU_SOURCE
  selftests/net: Drop duplicate -D_GNU_SOURCE
  selftests/nolibc: Drop define _GNU_SOURCE
  selftests/nsfs: Drop define _GNU_SOURCE
  selftests/openat2: Drop define _GNU_SOURCE
  selftests/perf_events: Drop define _GNU_SOURCE
  selftests/pid_namespace: Drop define _GNU_SOURCE
  selftests/pidfd: Drop define _GNU_SOURCE
  selftests/ptrace: Drop define _GNU_SOURCE
  selftests/powerpc: Drop define _GNU_SOURCE
  selftests/proc: Drop define _GNU_SOURCE
  selftests/proc: Drop duplicate -D_GNU_SOURCE
  selftests/ptp: Drop define _GNU_SOURCE
  selftests/resctrl: Drop duplicate -D_GNU_SOURCE
  selftests/riscv: Drop define _GNU_SOURCE
  selftests/riscv: Drop duplicate -D_GNU_SOURCE
  selftests/rlimits: Drop define _GNU_SOURCE
  selftests/rseq: Drop define _GNU_SOURCE
  selftests/safesetid: Drop define _GNU_SOURCE
  selftests/sched: Drop define _GNU_SOURCE
  selftests/seccomp: Drop define _GNU_SOURCE
  selftests/sigaltstack: Drop define _GNU_SOURCE
  selftests/splice: Drop define _GNU_SOURCE
  selftests/syscall_user_dispatch: Drop define _GNU_SOURCE
  selftests/thermal: Drop define _GNU_SOURCE
  selftests/timens: Drop define _GNU_SOURCE
  selftests/tmpfs: Drop duplicate -D_GNU_SOURCE
  selftests/uevent: Drop define _GNU_SOURCE
  selftests/user_events: Drop define _GNU_SOURCE
  selftests/vDSO: Drop define _GNU_SOURCE
  selftests/wireguard: Drop define _GNU_SOURCE
  selftests/x86: Drop define _GNU_SOURCE

 tools/testing/selftests/arm64/fp/fp-ptrace.c                  | 3 ---
 tools/testing/selftests/arm64/fp/fp-stress.c                  | 2 --
 tools/testing/selftests/arm64/fp/vlset.c                      | 1 -
 tools/testing/selftests/arm64/mte/check_buffer_fill.c         | 3 ---
 tools/testing/selftests/arm64/mte/check_child_memory.c        | 3 ---
 tools/testing/selftests/arm64/mte/check_gcr_el1_cswitch.c     | 3 ---
 tools/testing/selftests/arm64/mte/check_ksm_options.c         | 3 ---
 tools/testing/selftests/arm64/mte/check_mmap_options.c        | 3 ---
 tools/testing/selftests/arm64/mte/check_tags_inclusion.c      | 3 ---
 tools/testing/selftests/arm64/mte/check_user_mem.c            | 3 ---
 tools/testing/selftests/arm64/pauth/pac.c                     | 3 ---
 tools/testing/selftests/arm64/signal/Makefile                 | 2 +-
 tools/testing/selftests/bpf/bench.c                           | 1 -
 tools/testing/selftests/bpf/benchs/bench_trigger.c            | 1 -
 tools/testing/selftests/bpf/cgroup_helpers.c                  | 1 -
 tools/testing/selftests/bpf/map_tests/task_storage_map.c      | 1 -
 tools/testing/selftests/bpf/network_helpers.c                 | 2 --
 tools/testing/selftests/bpf/prog_tests/bind_perm.c            | 1 -
 tools/testing/selftests/bpf/prog_tests/bpf_cookie.c           | 1 -
 tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c  | 1 -
 tools/testing/selftests/bpf/prog_tests/bpf_obj_pinning.c      | 1 -
 tools/testing/selftests/bpf/prog_tests/btf_endian.c           | 1 -
 tools/testing/selftests/bpf/prog_tests/btf_skc_cls_ingress.c  | 2 --
 tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c           | 2 --
 tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c   | 2 --
 tools/testing/selftests/bpf/prog_tests/cls_redirect.c         | 3 ---
 tools/testing/selftests/bpf/prog_tests/connect_ping.c         | 2 --
 tools/testing/selftests/bpf/prog_tests/core_retro.c           | 1 -
 tools/testing/selftests/bpf/prog_tests/d_path.c               | 1 -
 tools/testing/selftests/bpf/prog_tests/deny_namespace.c       | 1 -
 tools/testing/selftests/bpf/prog_tests/fexit_sleep.c          | 1 -
 .../selftests/bpf/prog_tests/flow_dissector_reattach.c        | 2 --
 tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c     | 1 -
 tools/testing/selftests/bpf/prog_tests/htab_reuse.c           | 1 -
 tools/testing/selftests/bpf/prog_tests/htab_update.c          | 1 -
 tools/testing/selftests/bpf/prog_tests/map_in_map.c           | 1 -
 tools/testing/selftests/bpf/prog_tests/ns_current_pid_tgid.c  | 2 --
 tools/testing/selftests/bpf/prog_tests/perf_branches.c        | 1 -
 tools/testing/selftests/bpf/prog_tests/perf_buffer.c          | 1 -
 tools/testing/selftests/bpf/prog_tests/perf_event_stackmap.c  | 1 -
 tools/testing/selftests/bpf/prog_tests/perf_link.c            | 1 -
 tools/testing/selftests/bpf/prog_tests/perf_skip.c            | 2 --
 tools/testing/selftests/bpf/prog_tests/preempted_bpf_ma_op.c  | 1 -
 tools/testing/selftests/bpf/prog_tests/rcu_read_lock.c        | 2 --
 tools/testing/selftests/bpf/prog_tests/reg_bounds.c           | 2 --
 tools/testing/selftests/bpf/prog_tests/ringbuf.c              | 1 -
 tools/testing/selftests/bpf/prog_tests/ringbuf_multi.c        | 1 -
 tools/testing/selftests/bpf/prog_tests/setget_sockopt.c       | 2 --
 tools/testing/selftests/bpf/prog_tests/sk_assign.c            | 2 --
 tools/testing/selftests/bpf/prog_tests/sk_lookup.c            | 2 --
 tools/testing/selftests/bpf/prog_tests/sock_fields.c          | 2 --
 tools/testing/selftests/bpf/prog_tests/task_kfunc.c           | 2 --
 tools/testing/selftests/bpf/prog_tests/task_local_storage.c   | 2 --
 tools/testing/selftests/bpf/prog_tests/task_pt_regs.c         | 1 -
 tools/testing/selftests/bpf/prog_tests/tcp_custom_syncookie.c | 2 --
 tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c      | 2 --
 tools/testing/selftests/bpf/prog_tests/test_bpf_ma.c          | 1 -
 .../testing/selftests/bpf/prog_tests/test_bpf_syscall_macro.c | 1 -
 tools/testing/selftests/bpf/prog_tests/test_bpffs.c           | 1 -
 tools/testing/selftests/bpf/prog_tests/test_overhead.c        | 1 -
 tools/testing/selftests/bpf/prog_tests/token.c                | 1 -
 tools/testing/selftests/bpf/prog_tests/trace_ext.c            | 2 --
 tools/testing/selftests/bpf/prog_tests/trampoline_count.c     | 1 -
 tools/testing/selftests/bpf/prog_tests/user_ringbuf.c         | 2 --
 tools/testing/selftests/bpf/prog_tests/xdp_bonding.c          | 2 --
 tools/testing/selftests/bpf/prog_tests/xdp_synproxy.c         | 2 --
 tools/testing/selftests/bpf/test_flow_dissector.c             | 3 ---
 tools/testing/selftests/bpf/test_lru_map.c                    | 1 -
 tools/testing/selftests/bpf/test_progs.c                      | 1 -
 tools/testing/selftests/bpf/test_sock_addr.c                  | 3 ---
 tools/testing/selftests/bpf/test_tcpnotify_user.c             | 1 -
 tools/testing/selftests/bpf/veristat.c                        | 1 -
 tools/testing/selftests/bpf/xskxceiver.c                      | 2 --
 tools/testing/selftests/breakpoints/breakpoint_test_arm64.c   | 3 ---
 tools/testing/selftests/breakpoints/step_after_suspend_test.c | 3 ---
 tools/testing/selftests/cachestat/test_cachestat.c            | 2 --
 tools/testing/selftests/capabilities/test_execve.c            | 2 --
 tools/testing/selftests/cgroup/cgroup_util.c                  | 3 ---
 tools/testing/selftests/cgroup/test_core.c                    | 2 --
 tools/testing/selftests/cgroup/test_cpu.c                     | 2 --
 tools/testing/selftests/cgroup/test_hugetlb_memcg.c           | 2 --
 tools/testing/selftests/cgroup/test_kmem.c                    | 2 --
 tools/testing/selftests/cgroup/test_memcontrol.c              | 2 --
 tools/testing/selftests/cgroup/test_zswap.c                   | 2 --
 tools/testing/selftests/clone3/clone3.c                       | 2 --
 .../testing/selftests/clone3/clone3_cap_checkpoint_restore.c  | 2 --
 tools/testing/selftests/clone3/clone3_clear_sighand.c         | 2 --
 tools/testing/selftests/clone3/clone3_selftests.h             | 1 -
 tools/testing/selftests/clone3/clone3_set_tid.c               | 2 --
 tools/testing/selftests/core/close_range_test.c               | 2 --
 tools/testing/selftests/damon/debugfs_target_ids_pid_leak.c   | 3 ---
 .../damon/debugfs_target_ids_read_before_terminate_race.c     | 2 --
 tools/testing/selftests/drivers/dma-buf/udmabuf.c             | 1 -
 tools/testing/selftests/exec/Makefile                         | 1 -
 tools/testing/selftests/fchmodat2/fchmodat2_test.c            | 2 --
 tools/testing/selftests/filelock/ofdlocks.c                   | 2 --
 tools/testing/selftests/filesystems/binderfs/binderfs_test.c  | 2 --
 tools/testing/selftests/filesystems/devpts_pts.c              | 1 -
 tools/testing/selftests/filesystems/dnotify_test.c            | 1 -
 tools/testing/selftests/filesystems/epoll/epoll_wakeup_test.c | 2 --
 tools/testing/selftests/filesystems/eventfd/eventfd_test.c    | 2 --
 tools/testing/selftests/filesystems/fat/rename_exchange.c     | 2 --
 tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c   | 2 --
 .../testing/selftests/filesystems/statmount/statmount_test.c  | 3 ---
 tools/testing/selftests/firmware/fw_namespace.c               | 1 -
 tools/testing/selftests/fpu/test_fpu.c                        | 2 --
 tools/testing/selftests/futex/functional/Makefile             | 2 +-
 tools/testing/selftests/futex/functional/futex_requeue_pi.c   | 3 ---
 tools/testing/selftests/intel_pstate/Makefile                 | 2 +-
 tools/testing/selftests/iommu/Makefile                        | 2 --
 tools/testing/selftests/ipc/msgque.c                          | 1 -
 tools/testing/selftests/kcmp/kcmp_test.c                      | 2 --
 tools/testing/selftests/kselftest_harness.h                   | 2 +-
 tools/testing/selftests/landlock/base_test.c                  | 2 --
 tools/testing/selftests/landlock/fs_test.c                    | 2 --
 tools/testing/selftests/landlock/net_test.c                   | 2 --
 tools/testing/selftests/landlock/ptrace_test.c                | 2 --
 tools/testing/selftests/lib.mk                                | 3 +++
 tools/testing/selftests/lsm/common.c                          | 2 --
 tools/testing/selftests/lsm/lsm_get_self_attr_test.c          | 2 --
 tools/testing/selftests/lsm/lsm_list_modules_test.c           | 2 --
 tools/testing/selftests/lsm/lsm_set_self_attr_test.c          | 2 --
 tools/testing/selftests/membarrier/membarrier_test_impl.h     | 1 -
 .../selftests/membarrier/membarrier_test_multi_thread.c       | 1 -
 .../selftests/membarrier/membarrier_test_single_thread.c      | 1 -
 tools/testing/selftests/memfd/common.c                        | 1 -
 tools/testing/selftests/memfd/fuse_test.c                     | 2 --
 tools/testing/selftests/memfd/memfd_test.c                    | 1 -
 tools/testing/selftests/mincore/mincore_selftest.c            | 3 ---
 tools/testing/selftests/mm/cow.c                              | 1 -
 tools/testing/selftests/mm/gup_longterm.c                     | 1 -
 tools/testing/selftests/mm/hugepage-mmap.c                    | 1 -
 tools/testing/selftests/mm/hugepage-mremap.c                  | 2 --
 tools/testing/selftests/mm/hugetlb-madvise.c                  | 2 --
 tools/testing/selftests/mm/hugetlb-read-hwpoison.c            | 2 --
 tools/testing/selftests/mm/khugepaged.c                       | 1 -
 tools/testing/selftests/mm/ksm_functional_tests.c             | 1 -
 tools/testing/selftests/mm/madv_populate.c                    | 1 -
 tools/testing/selftests/mm/map_populate.c                     | 2 --
 tools/testing/selftests/mm/mdwe_test.c                        | 1 -
 tools/testing/selftests/mm/memfd_secret.c                     | 2 --
 tools/testing/selftests/mm/mlock2-tests.c                     | 1 -
 tools/testing/selftests/mm/mrelease_test.c                    | 1 -
 tools/testing/selftests/mm/mremap_dontunmap.c                 | 1 -
 tools/testing/selftests/mm/mremap_test.c                      | 2 --
 tools/testing/selftests/mm/mseal_test.c                       | 1 -
 tools/testing/selftests/mm/pagemap_ioctl.c                    | 1 -
 tools/testing/selftests/mm/pkey-helpers.h                     | 1 -
 tools/testing/selftests/mm/protection_keys.c                  | 1 -
 tools/testing/selftests/mm/seal_elf.c                         | 1 -
 tools/testing/selftests/mm/split_huge_page_test.c             | 2 --
 tools/testing/selftests/mm/thuge-gen.c                        | 2 --
 tools/testing/selftests/mm/uffd-common.h                      | 1 -
 tools/testing/selftests/mount/nosymfollow-test.c              | 1 -
 tools/testing/selftests/mount/unprivileged-remount-test.c     | 1 -
 tools/testing/selftests/mount_setattr/mount_setattr_test.c    | 1 -
 .../move_mount_set_group/move_mount_set_group_test.c          | 1 -
 tools/testing/selftests/mqueue/mq_perf_tests.c                | 1 -
 tools/testing/selftests/net/af_unix/diag_uid.c                | 2 --
 tools/testing/selftests/net/af_unix/scm_pidfd.c               | 1 -
 tools/testing/selftests/net/af_unix/scm_rights.c              | 1 -
 tools/testing/selftests/net/af_unix/unix_connect.c            | 2 --
 tools/testing/selftests/net/csum.c                            | 3 ---
 tools/testing/selftests/net/gro.c                             | 3 ---
 tools/testing/selftests/net/ip_defrag.c                       | 3 ---
 tools/testing/selftests/net/ipsec.c                           | 3 ---
 tools/testing/selftests/net/ipv6_flowlabel.c                  | 3 ---
 tools/testing/selftests/net/ipv6_flowlabel_mgr.c              | 3 ---
 tools/testing/selftests/net/mptcp/mptcp_connect.c             | 3 ---
 tools/testing/selftests/net/mptcp/mptcp_inq.c                 | 3 ---
 tools/testing/selftests/net/mptcp/mptcp_sockopt.c             | 3 ---
 tools/testing/selftests/net/msg_zerocopy.c                    | 3 ---
 tools/testing/selftests/net/netfilter/audit_logread.c         | 2 --
 tools/testing/selftests/net/netfilter/conntrack_dump_flush.c  | 3 ---
 tools/testing/selftests/net/nettest.c                         | 2 --
 tools/testing/selftests/net/psock_fanout.c                    | 3 ---
 tools/testing/selftests/net/psock_snd.c                       | 3 ---
 tools/testing/selftests/net/reuseport_addr_any.c              | 3 ---
 tools/testing/selftests/net/reuseport_bpf_cpu.c               | 3 ---
 tools/testing/selftests/net/reuseport_bpf_numa.c              | 3 ---
 tools/testing/selftests/net/reuseport_dualstack.c             | 3 ---
 tools/testing/selftests/net/so_incoming_cpu.c                 | 1 -
 tools/testing/selftests/net/so_netns_cookie.c                 | 1 -
 tools/testing/selftests/net/so_txtime.c                       | 3 ---
 tools/testing/selftests/net/tap.c                             | 3 ---
 tools/testing/selftests/net/tcp_ao/Makefile                   | 2 +-
 tools/testing/selftests/net/tcp_fastopen_backup_key.c         | 1 -
 tools/testing/selftests/net/tcp_inq.c                         | 2 --
 tools/testing/selftests/net/tcp_mmap.c                        | 1 -
 tools/testing/selftests/net/tls.c                             | 3 ---
 tools/testing/selftests/net/toeplitz.c                        | 3 ---
 tools/testing/selftests/net/tun.c                             | 3 ---
 tools/testing/selftests/net/txring_overwrite.c                | 3 ---
 tools/testing/selftests/net/txtimestamp.c                     | 3 ---
 tools/testing/selftests/net/udpgso.c                          | 3 ---
 tools/testing/selftests/net/udpgso_bench_rx.c                 | 3 ---
 tools/testing/selftests/net/udpgso_bench_tx.c                 | 3 ---
 tools/testing/selftests/nolibc/nolibc-test.c                  | 2 --
 tools/testing/selftests/nsfs/owner.c                          | 1 -
 tools/testing/selftests/nsfs/pidns.c                          | 1 -
 tools/testing/selftests/openat2/helpers.c                     | 2 --
 tools/testing/selftests/openat2/helpers.h                     | 1 -
 tools/testing/selftests/openat2/openat2_test.c                | 2 --
 tools/testing/selftests/openat2/rename_attack_test.c          | 2 --
 tools/testing/selftests/openat2/resolve_test.c                | 2 --
 tools/testing/selftests/perf_events/remove_on_exec.c          | 2 --
 tools/testing/selftests/perf_events/sigtrap_threads.c         | 2 --
 tools/testing/selftests/perf_events/watermark_signal.c        | 2 --
 tools/testing/selftests/pid_namespace/regression_enomem.c     | 1 -
 tools/testing/selftests/pidfd/pidfd.h                         | 1 -
 tools/testing/selftests/pidfd/pidfd_fdinfo_test.c             | 2 --
 tools/testing/selftests/pidfd/pidfd_getfd_test.c              | 2 --
 tools/testing/selftests/pidfd/pidfd_open_test.c               | 2 --
 tools/testing/selftests/pidfd/pidfd_poll_test.c               | 2 --
 tools/testing/selftests/pidfd/pidfd_setns_test.c              | 2 --
 tools/testing/selftests/pidfd/pidfd_test.c                    | 2 --
 tools/testing/selftests/pidfd/pidfd_wait.c                    | 2 --
 tools/testing/selftests/powerpc/benchmarks/context_switch.c   | 2 --
 tools/testing/selftests/powerpc/benchmarks/exec_target.c      | 2 --
 tools/testing/selftests/powerpc/benchmarks/fork.c             | 2 --
 tools/testing/selftests/powerpc/benchmarks/futex_bench.c      | 3 ---
 tools/testing/selftests/powerpc/dexcr/hashchk_test.c          | 3 ---
 tools/testing/selftests/powerpc/dscr/dscr_default_test.c      | 3 ---
 tools/testing/selftests/powerpc/dscr/dscr_explicit_test.c     | 3 ---
 tools/testing/selftests/powerpc/dscr/dscr_sysfs_thread_test.c | 1 -
 tools/testing/selftests/powerpc/mm/exec_prot.c                | 2 --
 tools/testing/selftests/powerpc/mm/pkey_exec_prot.c           | 2 --
 tools/testing/selftests/powerpc/mm/pkey_siginfo.c             | 2 --
 tools/testing/selftests/powerpc/mm/tlbie_test.c               | 2 --
 tools/testing/selftests/powerpc/papr_vpd/papr_vpd.c           | 1 -
 tools/testing/selftests/powerpc/pmu/count_instructions.c      | 3 ---
 tools/testing/selftests/powerpc/pmu/count_stcx_fail.c         | 3 ---
 tools/testing/selftests/powerpc/pmu/ebb/ebb.c                 | 3 ---
 .../selftests/powerpc/pmu/ebb/instruction_count_test.c        | 3 ---
 tools/testing/selftests/powerpc/pmu/event.c                   | 2 --
 tools/testing/selftests/powerpc/pmu/lib.c                     | 3 ---
 tools/testing/selftests/powerpc/pmu/per_event_excludes.c      | 3 ---
 tools/testing/selftests/powerpc/ptrace/perf-hwbreak.c         | 3 ---
 tools/testing/selftests/powerpc/ptrace/ptrace-syscall.c       | 2 --
 .../testing/selftests/powerpc/signal/sig_sc_double_restart.c  | 1 -
 tools/testing/selftests/powerpc/signal/sigreturn_kernel.c     | 3 ---
 tools/testing/selftests/powerpc/signal/sigreturn_vdso.c       | 3 ---
 tools/testing/selftests/powerpc/syscalls/ipc_unmuxed.c        | 2 --
 tools/testing/selftests/powerpc/tm/tm-exec.c                  | 2 --
 tools/testing/selftests/powerpc/tm/tm-poison.c                | 2 --
 .../testing/selftests/powerpc/tm/tm-signal-context-force-tm.c | 2 --
 tools/testing/selftests/powerpc/tm/tm-signal-sigreturn-nt.c   | 2 --
 tools/testing/selftests/powerpc/tm/tm-tmspr.c                 | 2 --
 tools/testing/selftests/powerpc/tm/tm-trap.c                  | 2 --
 tools/testing/selftests/powerpc/tm/tm-unavailable.c           | 2 --
 tools/testing/selftests/powerpc/utils.c                       | 3 ---
 tools/testing/selftests/proc/Makefile                         | 1 -
 tools/testing/selftests/proc/proc-empty-vm.c                  | 3 ---
 tools/testing/selftests/ptp/testptp.c                         | 1 -
 tools/testing/selftests/ptrace/get_set_sud.c                  | 1 -
 tools/testing/selftests/ptrace/peeksiginfo.c                  | 1 -
 tools/testing/selftests/resctrl/Makefile                      | 2 +-
 tools/testing/selftests/riscv/hwprobe/cbo.c                   | 1 -
 tools/testing/selftests/riscv/hwprobe/which-cpus.c            | 1 -
 tools/testing/selftests/riscv/mm/Makefile                     | 2 +-
 tools/testing/selftests/rlimits/rlimits-per-userns.c          | 1 -
 tools/testing/selftests/rseq/basic_percpu_ops_test.c          | 1 -
 tools/testing/selftests/rseq/basic_test.c                     | 2 --
 tools/testing/selftests/rseq/param_test.c                     | 1 -
 tools/testing/selftests/rseq/rseq.c                           | 2 --
 tools/testing/selftests/safesetid/safesetid-test.c            | 1 -
 tools/testing/selftests/sched/cs_prctl_test.c                 | 2 --
 tools/testing/selftests/seccomp/seccomp_benchmark.c           | 1 -
 tools/testing/selftests/seccomp/seccomp_bpf.c                 | 2 --
 tools/testing/selftests/sgx/Makefile                          | 2 +-
 tools/testing/selftests/sgx/sigstruct.c                       | 1 -
 tools/testing/selftests/sigaltstack/sas.c                     | 2 --
 tools/testing/selftests/splice/default_file_splice_read.c     | 1 -
 tools/testing/selftests/splice/splice_read.c                  | 1 -
 tools/testing/selftests/syscall_user_dispatch/sud_benchmark.c | 2 --
 tools/testing/selftests/syscall_user_dispatch/sud_test.c      | 2 --
 .../selftests/thermal/intel/power_floor/power_floor_test.c    | 3 ---
 .../thermal/intel/workload_hint/workload_hint_test.c          | 3 ---
 tools/testing/selftests/timens/clock_nanosleep.c              | 1 -
 tools/testing/selftests/timens/exec.c                         | 1 -
 tools/testing/selftests/timens/futex.c                        | 1 -
 tools/testing/selftests/timens/gettime_perf.c                 | 1 -
 tools/testing/selftests/timens/procfs.c                       | 1 -
 tools/testing/selftests/timens/timens.c                       | 1 -
 tools/testing/selftests/timens/timer.c                        | 1 -
 tools/testing/selftests/timens/timerfd.c                      | 1 -
 tools/testing/selftests/timens/vfork_exec.c                   | 1 -
 tools/testing/selftests/tmpfs/Makefile                        | 1 -
 tools/testing/selftests/uevent/uevent_filtering.c             | 2 --
 tools/testing/selftests/user_events/abi_test.c                | 2 --
 tools/testing/selftests/vDSO/vdso_test_abi.c                  | 1 -
 tools/testing/selftests/vDSO/vdso_test_clock_getres.c         | 2 --
 tools/testing/selftests/vDSO/vdso_test_correctness.c          | 3 ---
 tools/testing/selftests/wireguard/qemu/init.c                 | 2 --
 tools/testing/selftests/x86/amx.c                             | 2 --
 tools/testing/selftests/x86/check_initial_reg_state.c         | 3 ---
 tools/testing/selftests/x86/corrupt_xstate_header.c           | 3 ---
 tools/testing/selftests/x86/entry_from_vm86.c                 | 3 ---
 tools/testing/selftests/x86/fsgsbase.c                        | 2 --
 tools/testing/selftests/x86/fsgsbase_restore.c                | 2 --
 tools/testing/selftests/x86/ioperm.c                          | 2 --
 tools/testing/selftests/x86/iopl.c                            | 2 --
 tools/testing/selftests/x86/lam.c                             | 1 -
 tools/testing/selftests/x86/ldt_gdt.c                         | 2 --
 tools/testing/selftests/x86/mov_ss_trap.c                     | 2 --
 tools/testing/selftests/x86/nx_stack.c                        | 2 --
 tools/testing/selftests/x86/ptrace_syscall.c                  | 2 --
 tools/testing/selftests/x86/sigaltstack.c                     | 2 --
 tools/testing/selftests/x86/sigreturn.c                       | 3 ---
 tools/testing/selftests/x86/single_step_syscall.c             | 3 ---
 tools/testing/selftests/x86/syscall_arg_fault.c               | 3 ---
 tools/testing/selftests/x86/syscall_numbering.c               | 3 ---
 tools/testing/selftests/x86/sysret_rip.c                      | 3 ---
 tools/testing/selftests/x86/sysret_ss_attrs.c                 | 3 ---
 tools/testing/selftests/x86/test_FCMOV.c                      | 4 ----
 tools/testing/selftests/x86/test_FCOMI.c                      | 4 ----
 tools/testing/selftests/x86/test_FISTTP.c                     | 4 ----
 tools/testing/selftests/x86/test_mremap_vdso.c                | 1 -
 tools/testing/selftests/x86/test_shadow_stack.c               | 3 ---
 tools/testing/selftests/x86/test_syscall_vdso.c               | 4 ----
 tools/testing/selftests/x86/test_vsyscall.c                   | 3 ---
 tools/testing/selftests/x86/unwind_vdso.c                     | 3 ---
 tools/testing/selftests/x86/vdso_restorer.c                   | 3 ---
 323 files changed, 11 insertions(+), 611 deletions(-)

--
2.45.0.118.g7fe29c98d7-goog

Comments

Edward Liaw May 9, 2024, 10:58 p.m. UTC | #1
On Thu, May 9, 2024 at 2:25 PM John Hubbard <jhubbard@nvidia.com> wrote:
>
> On 5/9/24 12:57 PM, Edward Liaw wrote:
> > lib.mk will add -D_GNU_SOURCE to CFLAGS by default.  This will make it
> > unnecessary to add #define _GNU_SOURCE in the source code.
> >
> > Fixes: 809216233555 ("selftests/harness: remove use of LINE_MAX")
> > Suggested-by: John Hubbard <jhubbard@nvidia.com>
> > Signed-off-by: Edward Liaw <edliaw@google.com>
> > ---
> >   tools/testing/selftests/Makefile | 4 ++--
> >   tools/testing/selftests/lib.mk   | 5 ++++-
> >   2 files changed, 6 insertions(+), 3 deletions(-)
> >
>
> Hi Edward,
>
> This looks good, with one small refactoring opportunity remaining, though:
>
> > diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> > index f0431e6cb67e..9039f3709aff 100644
> > --- a/tools/testing/selftests/Makefile
> > +++ b/tools/testing/selftests/Makefile
> > @@ -170,11 +170,11 @@ ifneq ($(KBUILD_OUTPUT),)
> >     # $(realpath ...) resolves symlinks
> >     abs_objtree := $(realpath $(abs_objtree))
> >     BUILD := $(abs_objtree)/kselftest
> > -  KHDR_INCLUDES := -D_GNU_SOURCE -isystem ${abs_objtree}/usr/include
> > +  KHDR_INCLUDES := -isystem ${abs_objtree}/usr/include
> >   else
> >     BUILD := $(CURDIR)
> >     abs_srctree := $(shell cd $(top_srcdir) && pwd)
> > -  KHDR_INCLUDES := -D_GNU_SOURCE -isystem ${abs_srctree}/usr/include
> > +  KHDR_INCLUDES := -isystem ${abs_srctree}/usr/include
>
> As mentioned in [1] (but there are a lot of patches to manage here, and
> I think it got overlooked), you could factor out the duplicated
> -D_GNU_SOURCE items into a single place:

Hi John,
Here I'm reverting the change I made to the Makefile in patch 1/68,
since -D_GNU_SOURCE is being added directly to CFLAGS now, I didn't
think it was necessary to add it to KHDR_INCLUDES anymore.  I would
have merged the two patches together, but since the first and second
patches from v2 were already merged, I thought I should leave them in
the series.

Thanks,
Edward

>
> [1]
> https://lore.kernel.org/all/ac8c217e-4109-4ca7-a7dd-fc4fc8b0a4de@nvidia.com/
>
> thanks,
> --
> John Hubbard
> NVIDIA
>
> >     DEFAULT_INSTALL_HDR_PATH := 1
> >   endif
> >
> > diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
> > index 3023e0e2f58f..e782f4c96aee 100644
> > --- a/tools/testing/selftests/lib.mk
> > +++ b/tools/testing/selftests/lib.mk
> > @@ -67,7 +67,7 @@ MAKEFLAGS += --no-print-directory
> >   endif
> >
> >   ifeq ($(KHDR_INCLUDES),)
> > -KHDR_INCLUDES := -D_GNU_SOURCE -isystem $(top_srcdir)/usr/include
> > +KHDR_INCLUDES := -isystem $(top_srcdir)/usr/include
> >   endif
> >
> >   # In order to use newer items that haven't yet been added to the user's system
> > @@ -188,6 +188,9 @@ endef
> >   clean: $(if $(TEST_GEN_MODS_DIR),clean_mods_dir)
> >       $(CLEAN)
> >
> > +# Build with _GNU_SOURCE by default
> > +CFLAGS += -D_GNU_SOURCE
> > +
> >   # Enables to extend CFLAGS and LDFLAGS from command line, e.g.
> >   # make USERCFLAGS=-Werror USERLDFLAGS=-static
> >   CFLAGS += $(USERCFLAGS)
>
>
Mickaël Salaün May 13, 2024, 5:11 a.m. UTC | #2
On Thu, May 09, 2024 at 07:58:19PM +0000, Edward Liaw wrote:
> _GNU_SOURCE is provided by lib.mk, so it should be dropped to prevent
> redefinition warnings.
> 
> Fixes: 809216233555 ("selftests/harness: remove use of LINE_MAX")
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> Signed-off-by: Edward Liaw <edliaw@google.com>

Please only remove lines with _GNU_SOURCE, not the empty lines.  I think
it would be better to not change such style choice for other subsystems
too.
With this change for the Landlock selftests:
Acked-by: Mickaël Salaün <mic@digikod.net>

> ---
>  tools/testing/selftests/landlock/base_test.c   | 2 --
>  tools/testing/selftests/landlock/fs_test.c     | 2 --
>  tools/testing/selftests/landlock/net_test.c    | 2 --
>  tools/testing/selftests/landlock/ptrace_test.c | 2 --
>  4 files changed, 8 deletions(-)
> 
> diff --git a/tools/testing/selftests/landlock/base_test.c b/tools/testing/selftests/landlock/base_test.c
> index 3c1e9f35b531..c86e6f87b398 100644
> --- a/tools/testing/selftests/landlock/base_test.c
> +++ b/tools/testing/selftests/landlock/base_test.c
> @@ -5,8 +5,6 @@
>   * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net>
>   * Copyright © 2019-2020 ANSSI
>   */
> -
> -#define _GNU_SOURCE
>  #include <errno.h>
>  #include <fcntl.h>
>  #include <linux/landlock.h>
> diff --git a/tools/testing/selftests/landlock/fs_test.c b/tools/testing/selftests/landlock/fs_test.c
> index 6b5a9ff88c3d..eec0d9a44d50 100644
> --- a/tools/testing/selftests/landlock/fs_test.c
> +++ b/tools/testing/selftests/landlock/fs_test.c
> @@ -6,8 +6,6 @@
>   * Copyright © 2020 ANSSI
>   * Copyright © 2020-2022 Microsoft Corporation
>   */
> -
> -#define _GNU_SOURCE
>  #include <asm/termbits.h>
>  #include <fcntl.h>
>  #include <libgen.h>
> diff --git a/tools/testing/selftests/landlock/net_test.c b/tools/testing/selftests/landlock/net_test.c
> index f21cfbbc3638..eed040adcbac 100644
> --- a/tools/testing/selftests/landlock/net_test.c
> +++ b/tools/testing/selftests/landlock/net_test.c
> @@ -5,8 +5,6 @@
>   * Copyright © 2022-2023 Huawei Tech. Co., Ltd.
>   * Copyright © 2023 Microsoft Corporation
>   */
> -
> -#define _GNU_SOURCE
>  #include <arpa/inet.h>
>  #include <errno.h>
>  #include <fcntl.h>
> diff --git a/tools/testing/selftests/landlock/ptrace_test.c b/tools/testing/selftests/landlock/ptrace_test.c
> index a19db4d0b3bd..c831e6d03b02 100644
> --- a/tools/testing/selftests/landlock/ptrace_test.c
> +++ b/tools/testing/selftests/landlock/ptrace_test.c
> @@ -5,8 +5,6 @@
>   * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net>
>   * Copyright © 2019-2020 ANSSI
>   */
> -
> -#define _GNU_SOURCE
>  #include <errno.h>
>  #include <fcntl.h>
>  #include <linux/landlock.h>
> -- 
> 2.45.0.118.g7fe29c98d7-goog
> 
>