On Wed, Sep 07, 2022, Liam Merwick wrote: > The fix for commit e923b0537d28 ("KVM: selftests: Fix target thread to be migrated in rseq_test") > added a call to gettid() which was only added to glibc-2.30 and fails to > compile with older glibc versions. > > rseq_test.c: In function 'main': > rseq_test.c:230:33: warning: implicit declaration of function 'gettid'; did you mean 'getgid'? [-Wimplicit-function-declaration] > (void *)(unsigned long)gettid()); > ^~~~~~ > getgid > > Switch the call to syscall(SYS_gettid) which was the original advice in the > gettid(2) NOTES section and which works with both new and older glibc versions. > > Fixes: e923b0537d28 ("KVM: selftests: Fix target thread to be migrated in rseq_test") > Cc: stable@xxxxxxxxxxxxxxx # v5.15 > Signed-off-by: Liam Merwick <liam.merwick@xxxxxxxxxx> > --- > > Verified with glibc-2.28 and glibc-2.34 and ensured test case from e923b0537d28 still passes. > > tools/testing/selftests/kvm/rseq_test.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/rseq_test.c b/tools/testing/selftests/kvm/rseq_test.c > index fac248a43666..6f88da7e60be 100644 > --- a/tools/testing/selftests/kvm/rseq_test.c > +++ b/tools/testing/selftests/kvm/rseq_test.c > @@ -227,7 +227,7 @@ int main(int argc, char *argv[]) > ucall_init(vm, NULL); > > pthread_create(&migration_thread, NULL, migration_worker, > - (void *)(unsigned long)gettid()); > + (void *)(unsigned long)syscall(SYS_gettid)); This exact fix was already posted[*], but we rat-holed a bit on coming up with an elegant solution and the patch never got applied. I'll poke that thread to see if Paolo wants to take it for 6.0. [*] https://lore.kernel.org/all/20220802071240.84626-1-cloudliang@xxxxxxxxxxx