[PATCH] selftests/landlock:Fix net_test build issues with old libc

From: Hu Yadi
Date: Tue Jan 23 2024 - 01:35:24 EST


From: "Hu.Yadi" <hu.yadi@xxxxxxx>

Fixes: a549d055a22e ("selftests/landlock: Add network tests")

one issues comes up while building selftest/landlock/net_test on my side
(gcc 7.3/glibc-2.28/kernel-4.19)

net_test.c: In function ‘set_service’:
net_test.c:91:45: warning: implicit declaration of function ‘gettid’; [-Wimplicit-function-declaration]
"_selftests-landlock-net-tid%d-index%d", gettid(),
^~~~~~
getgid
net_test.c:(.text+0x4e0): undefined reference to `gettid'

Signed-off-by: Hu Yadi <hu.yadi@xxxxxxx>
Suggested-by: Jiao <jiaoxupo@xxxxxxx>
Reviewed-by: Berlin <berlin@xxxxxxx>
---
tools/testing/selftests/landlock/net_test.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/landlock/net_test.c b/tools/testing/selftests/landlock/net_test.c
index 929e21c4db05..6cc1bb1a9166 100644
--- a/tools/testing/selftests/landlock/net_test.c
+++ b/tools/testing/selftests/landlock/net_test.c
@@ -18,9 +18,15 @@
#include <sys/prctl.h>
#include <sys/socket.h>
#include <sys/un.h>
-
+#include <sys/syscall.h>
#include "common.h"

+
+static pid_t sys_gettid(void)
+{
+ return syscall(__NR_gettid);
+}
+
const short sock_port_start = (1 << 10);

static const char loopback_ipv4[] = "127.0.0.1";
@@ -88,7 +94,7 @@ static int set_service(struct service_fixture *const srv,
case AF_UNIX:
srv->unix_addr.sun_family = prot.domain;
sprintf(srv->unix_addr.sun_path,
- "_selftests-landlock-net-tid%d-index%d", gettid(),
+ "_selftests-landlock-net-tid%d-index%d", sys_gettid(),
index);
srv->unix_addr_len = SUN_LEN(&srv->unix_addr);
srv->unix_addr.sun_path[0] = '\0';
--
2.23.0