Fix struct sigevent decoding for musl

Do not rely on "struct sigevent.__pad" being located at the same address
as "struct sigevent.sigev_notify_thread_id", it's not the case with musl
libc.  Do not rely on struct sigevent definition at all to access
sigev_notify_thread_id.

* configure.ac (AC_CHECK_MEMBERS): Remove struct sigevent._sigev_un._pad
and struct sigevent.__pad.
* sigevent.h: New file.
* Makefile.am (strace_SOURCES): Add it.
* print_sigevent.c: Include it.
* print_sigevent.c (struct_sigevent): Remove.
(print_sigevent): Update all struct_sigevent users.
* tests/timer_create.c: Include "sigevent.h".
(main): Use struct_sigevent instead of struct sigevent,
all struct sigevent clients changed.
5 files changed
tree: 26f9e3c309213e500162d3e6880945df42b21e63
  1. debian/
  2. linux/
  3. m4/
  4. maint/
  5. qemu_multiarch_testing/
  6. test/
  7. tests/
  8. xlat/
  9. .gitignore
  10. .mailmap
  11. .travis.yml
  12. access.c
  13. affinity.c
  14. aio.c
  15. alpha.c
  16. AUTHORS
  17. bjm.c
  18. block.c
  19. bootstrap
  20. bpf.c
  21. build_static_example.sh
  22. cacheflush.c
  23. capability.c
  24. caps0.h
  25. caps1.h
  26. ChangeLog-CVS
  27. chdir.c
  28. chmod.c
  29. clone.c
  30. configure.ac
  31. COPYING
  32. count.c
  33. CREDITS.in
  34. defs.h
  35. desc.c
  36. dirent.c
  37. dirent64.c
  38. empty.h
  39. epoll.c
  40. errnoent.sh
  41. evdev.c
  42. eventfd.c
  43. execve.c
  44. exit.c
  45. fadvise.c
  46. fallocate.c
  47. fanotify.c
  48. fchownat.c
  49. fcntl.c
  50. fetch_seccomp_fprog.c
  51. fetch_struct_flock.c
  52. file.c
  53. file_handle.c
  54. flock.c
  55. flock.h
  56. futex.c
  57. gcc_compat.h
  58. generate_mpers_am.sh
  59. generate_sen.sh
  60. generate_xlat_in.sh
  61. get_robust_list.c
  62. getcpu.c
  63. getcwd.c
  64. getrandom.c
  65. git-set-file-times
  66. git-version-gen
  67. gitlog-to-changelog
  68. HACKING-scripts
  69. hostname.c
  70. inotify.c
  71. INSTALL
  72. io.c
  73. ioctl.c
  74. ioctlsort.c
  75. ioperm.c
  76. iopl.c
  77. ioprio.c
  78. ipc_defs.h
  79. ipc_msg.c
  80. ipc_msgctl.c
  81. ipc_sem.c
  82. ipc_shm.c
  83. ipc_shmctl.c
  84. kcmp.c
  85. kernel_types.h
  86. kexec.c
  87. keyctl.c
  88. ldt.c
  89. link.c
  90. lookup_dcookie.c
  91. loop.c
  92. lseek.c
  93. make-dist
  94. Makefile.am
  95. mem.c
  96. membarrier.c
  97. memfd_create.c
  98. mknod.c
  99. mount.c
  100. mpers.awk
  101. mpers.sh
  102. mpers_test.sh
  103. mpers_type.h
  104. mq.c
  105. mtd.c
  106. native_defs.h
  107. net.c
  108. NEWS
  109. open.c
  110. or1k_atomic.c
  111. pathtrace.c
  112. perf.c
  113. personality.c
  114. poll.c
  115. prctl.c
  116. print_mq_attr.c
  117. print_msgbuf.c
  118. print_sigevent.c
  119. print_time.c
  120. print_timex.c
  121. printmode.c
  122. printrusage.c
  123. printsiginfo.c
  124. printsiginfo.h
  125. printstat.h
  126. process.c
  127. process_vm.c
  128. ptp.c
  129. ptrace.h
  130. quota.c
  131. readahead.c
  132. readlink.c
  133. README
  134. README-hacking
  135. README-linux-ptrace
  136. README-mpers
  137. reboot.c
  138. regs.h
  139. renameat.c
  140. resource.c
  141. rtc.c
  142. sched.c
  143. scsi.c
  144. seccomp.c
  145. seccomp_fprog.h
  146. sendfile.c
  147. sigaltstack.c
  148. sigevent.h
  149. signal.c
  150. signalent.sh
  151. signalfd.c
  152. sigreturn.c
  153. sock.c
  154. socketutils.c
  155. sram_alloc.c
  156. statfs.c
  157. strace-graph
  158. strace-log-merge
  159. strace.1
  160. strace.c
  161. strace.spec
  162. swapon.c
  163. sync_file_range.c
  164. syscall.c
  165. syscallent.sh
  166. sysctl.c
  167. sysinfo.c
  168. syslog.c
  169. sysmips.c
  170. term.c
  171. time.c
  172. times.c
  173. travis-ci.sh
  174. truncate.c
  175. uid.c
  176. uid16.c
  177. umask.c
  178. umount.c
  179. uname.c
  180. unwind.c
  181. userfaultfd.c
  182. util.c
  183. utime.c
  184. utimes.c
  185. v4l2.c
  186. vsprintf.c
  187. wait.c
  188. xattr.c
  189. xlate.el
  190. xmalloc.c