mbox series

[0/4] selftests/cgroups: fix clang build failures, warnings

Message ID 20240503035105.93280-1-jhubbard@nvidia.com
Headers show
Series selftests/cgroups: fix clang build failures, warnings | expand

Message

John Hubbard May 3, 2024, 3:51 a.m. UTC
Hi,

Just a bunch of fixes as part of my work to make selftests build cleanly
with clang.

Enjoy!

thanks,
John Hubbard


John Hubbard (4):
  selftests/cgroup: fix clang build failures for abs() calls
  selftests/cgroup: fix clang warnings: uninitialized fd variable
  selftests/cgroup: cpu_hogger init: use {} instead of {NULL}
  selftests/cgroup: fix uninitialized variables in test_zswap.c

 tools/testing/selftests/cgroup/cgroup_util.h     | 2 +-
 tools/testing/selftests/cgroup/test_cpu.c        | 4 ++--
 tools/testing/selftests/cgroup/test_kmem.c       | 4 ++--
 tools/testing/selftests/cgroup/test_memcontrol.c | 4 +++-
 tools/testing/selftests/cgroup/test_zswap.c      | 4 ++--
 5 files changed, 10 insertions(+), 8 deletions(-)


base-commit: f03359bca01bf4372cf2c118cd9a987a5951b1c8
prerequisite-patch-id: b901ece2a5b78503e2fb5480f20e304d36a0ea27

Comments

Roman Gushchin May 3, 2024, 5:53 p.m. UTC | #1
On Thu, May 02, 2024 at 08:51:02PM -0700, John Hubbard wrote:
> First of all, in order to build with clang at all, one must first apply
> Valentin Obst's build fix for LLVM [1]. Once that is done, then when
> building with clang, via:
> 
>     make LLVM=1 -C tools/testing/selftests
> 
> ...clang is pickier than gcc, about which version of abs(3) to call,
> depending on the argument type:
> 
>    int abs(int j);
>    long labs(long j);
>    long long llabs(long long j);
> 
> ...and this is causing both build failures and warnings, when running:
> 
>     make LLVM=1 -C tools/testing/selftests
> 
> Fix this by calling labs() in value_close(), because the arguments are
> unambiguously "long" type.
> 
> [1] https://lore.kernel.org/all/20240329-selftests-libmk-llvm-rfc-v1-1-2f9ed7d1c49f@valentinobst.de/
> 
> Signed-off-by: John Hubbard <jhubbard@nvidia.com>

Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>

Thanks!
Roman Gushchin May 3, 2024, 5:55 p.m. UTC | #2
On Thu, May 02, 2024 at 08:51:04PM -0700, John Hubbard wrote:
> First of all, in order to build with clang at all, one must first apply
> Valentin Obst's build fix for LLVM [1]. Once that is done, then when
> building with clang, via:
> 
>     make LLVM=1 -C tools/testing/selftests
> 
> ...clang generates warning here, because struct cpu_hogger has multiple
> fields, and the code is initializing an array of these structs, and it
> is incorrect to specify a single NULL value as the initializer.
> 
> Fix this by initializing with {}, so that the compiler knows to use
> default initializer values for all fields in each array entry.
> 
> [1] https://lore.kernel.org/all/20240329-selftests-libmk-llvm-rfc-v1-1-2f9ed7d1c49f@valentinobst.de/
> 
> Signed-off-by: John Hubbard <jhubbard@nvidia.com>

Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
Tejun Heo May 3, 2024, 7:06 p.m. UTC | #3
On Thu, May 02, 2024 at 08:51:01PM -0700, John Hubbard wrote:
> Hi,
> 
> Just a bunch of fixes as part of my work to make selftests build cleanly
> with clang.
> 
> Enjoy!
> 
> thanks,
> John Hubbard
> 
> 
> John Hubbard (4):
>   selftests/cgroup: fix clang build failures for abs() calls
>   selftests/cgroup: fix clang warnings: uninitialized fd variable
>   selftests/cgroup: cpu_hogger init: use {} instead of {NULL}
>   selftests/cgroup: fix uninitialized variables in test_zswap.c

Applied to cgroup/for-6.10.

Thanks.