@@ -208,3 +208,11 @@ tests += tst-align-clone tst-getpid1 \
tst-thread-affinity-sched
tests-internal += tst-setgetname
endif
+
+ifeq ($(subdir),nptl_db)
+gen-as-const-headers += procfs-glibc.sym procfs-linux.sym
+tests-special += $(objpfx)tst-sys-procfs.out
+$(objpfx)tst-sys-procfs.out: $(common-objpfx)procfs-glibc.h \
+ $(common-objpfx)procfs-linux.h
+ diff $^ > $@; $(evaluate-test)
+endif
new file mode 100644
@@ -0,0 +1,73 @@
+#include <stddef.h>
+#include <sys/procfs.h>
+
+--
+
+#define MEMBER_SIZE(S, F) sizeof ((S) { 0 }.F)
+
+sizeof_elf_siginfo sizeof (struct elf_siginfo)
+sizeof_elf_prstatus sizeof (struct elf_prstatus)
+sizeof_elf_prpsinfo sizeof (struct elf_prpsinfo)
+
+sizeof_elf_siginfo_si_signo MEMBER_SIZE (struct elf_siginfo, si_signo)
+offset_elf_siginfo_si_signo offsetof (struct elf_siginfo, si_signo)
+sizeof_elf_siginfo_si_code MEMBER_SIZE (struct elf_siginfo, si_code)
+offset_elf_siginfo_si_code offsetof (struct elf_siginfo, si_code)
+sizeof_elf_siginfo_si_errno MEMBER_SIZE (struct elf_siginfo, si_errno)
+offset_elf_siginfo_si_errno offsetof (struct elf_siginfo, si_errno)
+
+sizeof_elf_prstatus_pr_info MEMBER_SIZE (struct elf_prstatus, pr_info)
+offset_elf_prstatus_pr_info offsetof (struct elf_prstatus, pr_info)
+sizeof_elf_prstatus_pr_cursig MEMBER_SIZE (struct elf_prstatus, pr_cursig)
+offset_elf_prstatus_pr_cursig offsetof (struct elf_prstatus, pr_cursig)
+sizeof_elf_prstatus_pr_sigpend MEMBER_SIZE (struct elf_prstatus, pr_sigpend)
+offset_elf_prstatus_pr_sigpend offsetof (struct elf_prstatus, pr_sigpend)
+sizeof_elf_prstatus_pr_sighold MEMBER_SIZE (struct elf_prstatus, pr_sighold)
+offset_elf_prstatus_pr_sighold offsetof (struct elf_prstatus, pr_sighold)
+sizeof_elf_prstatus_pr_pid MEMBER_SIZE (struct elf_prstatus, pr_pid)
+offset_elf_prstatus_pr_pid offsetof (struct elf_prstatus, pr_pid)
+sizeof_elf_prstatus_pr_ppid MEMBER_SIZE (struct elf_prstatus, pr_ppid)
+offset_elf_prstatus_pr_ppid offsetof (struct elf_prstatus, pr_ppid)
+sizeof_elf_prstatus_pr_pgrp MEMBER_SIZE (struct elf_prstatus, pr_pgrp)
+offset_elf_prstatus_pr_pgrp offsetof (struct elf_prstatus, pr_pgrp)
+sizeof_elf_prstatus_pr_sid MEMBER_SIZE (struct elf_prstatus, pr_sid)
+offset_elf_prstatus_pr_sid offsetof (struct elf_prstatus, pr_sid)
+sizeof_elf_prstatus_pr_utime MEMBER_SIZE (struct elf_prstatus, pr_utime)
+offset_elf_prstatus_pr_utime offsetof (struct elf_prstatus, pr_utime)
+sizeof_elf_prstatus_pr_stime MEMBER_SIZE (struct elf_prstatus, pr_stime)
+offset_elf_prstatus_pr_stime offsetof (struct elf_prstatus, pr_stime)
+sizeof_elf_prstatus_pr_cutime MEMBER_SIZE (struct elf_prstatus, pr_cutime)
+offset_elf_prstatus_pr_cutime offsetof (struct elf_prstatus, pr_cutime)
+sizeof_elf_prstatus_pr_cstime MEMBER_SIZE (struct elf_prstatus, pr_cstime)
+offset_elf_prstatus_pr_cstime offsetof (struct elf_prstatus, pr_cstime)
+sizeof_elf_prstatus_pr_reg MEMBER_SIZE (struct elf_prstatus, pr_reg)
+offset_elf_prstatus_pr_reg offsetof (struct elf_prstatus, pr_reg)
+sizeof_elf_prstatus_pr_fpvalid MEMBER_SIZE (struct elf_prstatus, pr_fpvalid)
+offset_elf_prstatus_pr_fpvalid offsetof (struct elf_prstatus, pr_fpvalid)
+
+sizeof_elf_prpsinfo_pr_state MEMBER_SIZE (struct elf_prpsinfo, pr_state)
+offset_elf_prpsinfo_pr_state offsetof (struct elf_prpsinfo, pr_state)
+sizeof_elf_prpsinfo_pr_sname MEMBER_SIZE (struct elf_prpsinfo, pr_sname)
+offset_elf_prpsinfo_pr_sname offsetof (struct elf_prpsinfo, pr_sname)
+sizeof_elf_prpsinfo_pr_zomb MEMBER_SIZE (struct elf_prpsinfo, pr_zomb)
+offset_elf_prpsinfo_pr_zomb offsetof (struct elf_prpsinfo, pr_zomb)
+sizeof_elf_prpsinfo_pr_nice MEMBER_SIZE (struct elf_prpsinfo, pr_nice)
+offset_elf_prpsinfo_pr_nice offsetof (struct elf_prpsinfo, pr_nice)
+sizeof_elf_prpsinfo_pr_flag MEMBER_SIZE (struct elf_prpsinfo, pr_flag)
+offset_elf_prpsinfo_pr_flag offsetof (struct elf_prpsinfo, pr_flag)
+sizeof_elf_prpsinfo_pr_uid MEMBER_SIZE (struct elf_prpsinfo, pr_uid)
+offset_elf_prpsinfo_pr_uid offsetof (struct elf_prpsinfo, pr_uid)
+sizeof_elf_prpsinfo_pr_gid MEMBER_SIZE (struct elf_prpsinfo, pr_gid)
+offset_elf_prpsinfo_pr_gid offsetof (struct elf_prpsinfo, pr_gid)
+sizeof_elf_prpsinfo_pr_pid MEMBER_SIZE (struct elf_prpsinfo, pr_pid)
+offset_elf_prpsinfo_pr_pid offsetof (struct elf_prpsinfo, pr_pid)
+sizeof_elf_prpsinfo_pr_ppid MEMBER_SIZE (struct elf_prpsinfo, pr_ppid)
+offset_elf_prpsinfo_pr_ppid offsetof (struct elf_prpsinfo, pr_ppid)
+sizeof_elf_prpsinfo_pr_pgrp MEMBER_SIZE (struct elf_prpsinfo, pr_pgrp)
+offset_elf_prpsinfo_pr_pgrp offsetof (struct elf_prpsinfo, pr_pgrp)
+sizeof_elf_prpsinfo_pr_sid MEMBER_SIZE (struct elf_prpsinfo, pr_sid)
+offset_elf_prpsinfo_pr_sid offsetof (struct elf_prpsinfo, pr_sid)
+sizeof_elf_prpsinfo_pr_fname MEMBER_SIZE (struct elf_prpsinfo, pr_fname)
+offset_elf_prpsinfo_pr_fname offsetof (struct elf_prpsinfo, pr_fname)
+sizeof_elf_prpsinfo_pr_psargs MEMBER_SIZE (struct elf_prpsinfo, pr_psargs)
+offset_elf_prpsinfo_pr_psargs offsetof (struct elf_prpsinfo, pr_psargs)
new file mode 100644
@@ -0,0 +1,73 @@
+#include <linux/elfcore.h>
+#include <stddef.h>
+
+--
+
+#define MEMBER_SIZE(S, F) sizeof ((S) { 0 }.F)
+
+sizeof_elf_siginfo sizeof (struct elf_siginfo)
+sizeof_elf_prstatus sizeof (struct elf_prstatus)
+sizeof_elf_prpsinfo sizeof (struct elf_prpsinfo)
+
+sizeof_elf_siginfo_si_signo MEMBER_SIZE (struct elf_siginfo, si_signo)
+offset_elf_siginfo_si_signo offsetof (struct elf_siginfo, si_signo)
+sizeof_elf_siginfo_si_code MEMBER_SIZE (struct elf_siginfo, si_code)
+offset_elf_siginfo_si_code offsetof (struct elf_siginfo, si_code)
+sizeof_elf_siginfo_si_errno MEMBER_SIZE (struct elf_siginfo, si_errno)
+offset_elf_siginfo_si_errno offsetof (struct elf_siginfo, si_errno)
+
+sizeof_elf_prstatus_pr_info MEMBER_SIZE (struct elf_prstatus, pr_info)
+offset_elf_prstatus_pr_info offsetof (struct elf_prstatus, pr_info)
+sizeof_elf_prstatus_pr_cursig MEMBER_SIZE (struct elf_prstatus, pr_cursig)
+offset_elf_prstatus_pr_cursig offsetof (struct elf_prstatus, pr_cursig)
+sizeof_elf_prstatus_pr_sigpend MEMBER_SIZE (struct elf_prstatus, pr_sigpend)
+offset_elf_prstatus_pr_sigpend offsetof (struct elf_prstatus, pr_sigpend)
+sizeof_elf_prstatus_pr_sighold MEMBER_SIZE (struct elf_prstatus, pr_sighold)
+offset_elf_prstatus_pr_sighold offsetof (struct elf_prstatus, pr_sighold)
+sizeof_elf_prstatus_pr_pid MEMBER_SIZE (struct elf_prstatus, pr_pid)
+offset_elf_prstatus_pr_pid offsetof (struct elf_prstatus, pr_pid)
+sizeof_elf_prstatus_pr_ppid MEMBER_SIZE (struct elf_prstatus, pr_ppid)
+offset_elf_prstatus_pr_ppid offsetof (struct elf_prstatus, pr_ppid)
+sizeof_elf_prstatus_pr_pgrp MEMBER_SIZE (struct elf_prstatus, pr_pgrp)
+offset_elf_prstatus_pr_pgrp offsetof (struct elf_prstatus, pr_pgrp)
+sizeof_elf_prstatus_pr_sid MEMBER_SIZE (struct elf_prstatus, pr_sid)
+offset_elf_prstatus_pr_sid offsetof (struct elf_prstatus, pr_sid)
+sizeof_elf_prstatus_pr_utime MEMBER_SIZE (struct elf_prstatus, pr_utime)
+offset_elf_prstatus_pr_utime offsetof (struct elf_prstatus, pr_utime)
+sizeof_elf_prstatus_pr_stime MEMBER_SIZE (struct elf_prstatus, pr_stime)
+offset_elf_prstatus_pr_stime offsetof (struct elf_prstatus, pr_stime)
+sizeof_elf_prstatus_pr_cutime MEMBER_SIZE (struct elf_prstatus, pr_cutime)
+offset_elf_prstatus_pr_cutime offsetof (struct elf_prstatus, pr_cutime)
+sizeof_elf_prstatus_pr_cstime MEMBER_SIZE (struct elf_prstatus, pr_cstime)
+offset_elf_prstatus_pr_cstime offsetof (struct elf_prstatus, pr_cstime)
+sizeof_elf_prstatus_pr_reg MEMBER_SIZE (struct elf_prstatus, pr_reg)
+offset_elf_prstatus_pr_reg offsetof (struct elf_prstatus, pr_reg)
+sizeof_elf_prstatus_pr_fpvalid MEMBER_SIZE (struct elf_prstatus, pr_fpvalid)
+offset_elf_prstatus_pr_fpvalid offsetof (struct elf_prstatus, pr_fpvalid)
+
+sizeof_elf_prpsinfo_pr_state MEMBER_SIZE (struct elf_prpsinfo, pr_state)
+offset_elf_prpsinfo_pr_state offsetof (struct elf_prpsinfo, pr_state)
+sizeof_elf_prpsinfo_pr_sname MEMBER_SIZE (struct elf_prpsinfo, pr_sname)
+offset_elf_prpsinfo_pr_sname offsetof (struct elf_prpsinfo, pr_sname)
+sizeof_elf_prpsinfo_pr_zomb MEMBER_SIZE (struct elf_prpsinfo, pr_zomb)
+offset_elf_prpsinfo_pr_zomb offsetof (struct elf_prpsinfo, pr_zomb)
+sizeof_elf_prpsinfo_pr_nice MEMBER_SIZE (struct elf_prpsinfo, pr_nice)
+offset_elf_prpsinfo_pr_nice offsetof (struct elf_prpsinfo, pr_nice)
+sizeof_elf_prpsinfo_pr_flag MEMBER_SIZE (struct elf_prpsinfo, pr_flag)
+offset_elf_prpsinfo_pr_flag offsetof (struct elf_prpsinfo, pr_flag)
+sizeof_elf_prpsinfo_pr_uid MEMBER_SIZE (struct elf_prpsinfo, pr_uid)
+offset_elf_prpsinfo_pr_uid offsetof (struct elf_prpsinfo, pr_uid)
+sizeof_elf_prpsinfo_pr_gid MEMBER_SIZE (struct elf_prpsinfo, pr_gid)
+offset_elf_prpsinfo_pr_gid offsetof (struct elf_prpsinfo, pr_gid)
+sizeof_elf_prpsinfo_pr_pid MEMBER_SIZE (struct elf_prpsinfo, pr_pid)
+offset_elf_prpsinfo_pr_pid offsetof (struct elf_prpsinfo, pr_pid)
+sizeof_elf_prpsinfo_pr_ppid MEMBER_SIZE (struct elf_prpsinfo, pr_ppid)
+offset_elf_prpsinfo_pr_ppid offsetof (struct elf_prpsinfo, pr_ppid)
+sizeof_elf_prpsinfo_pr_pgrp MEMBER_SIZE (struct elf_prpsinfo, pr_pgrp)
+offset_elf_prpsinfo_pr_pgrp offsetof (struct elf_prpsinfo, pr_pgrp)
+sizeof_elf_prpsinfo_pr_sid MEMBER_SIZE (struct elf_prpsinfo, pr_sid)
+offset_elf_prpsinfo_pr_sid offsetof (struct elf_prpsinfo, pr_sid)
+sizeof_elf_prpsinfo_pr_fname MEMBER_SIZE (struct elf_prpsinfo, pr_fname)
+offset_elf_prpsinfo_pr_fname offsetof (struct elf_prpsinfo, pr_fname)
+sizeof_elf_prpsinfo_pr_psargs MEMBER_SIZE (struct elf_prpsinfo, pr_psargs)
+offset_elf_prpsinfo_pr_psargs offsetof (struct elf_prpsinfo, pr_psargs)