On 32-bit S390 systems, getutmpx@@GLIBC_2.9 is missing in libc.so.6, only getutmpx@@GLIBC_2.1.1 is present. This is due to the compat code: getutmpx is defined in sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c: #define getutmpx __getutmpx #include "sysdeps/gnu/getutmp.c" and undefined in sysdeps/gnu/getutmp.c: /* This is an ugly hack but we must not see the getutmpx declaration. */ #define getutmpx XXXgetutmpx #include <utmpx.h> #undef getutmpx The attached patch fixes the problem by not including sysdeps/gnu/getutmp.c, but copying part of the code directly into sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
Created attachment 4320 [details] Patch to fix the problem
What are the advantages of duplicating the code? IMHO just add strong_alias (__getutmp, __getutmpx); after the include, and possibly s/weak_alias/strong_alias/ also in the s390-32/getutmp.c.
I didn't though about this possibility, I'll try this option and send a new patch
Created attachment 4321 [details] New patch Please find a new patch attached.
I fixed this in git but not with the patch attached here.