On Thu, 14 Aug 2025 16:02:54 GMT, Guanqiang Han <g...@openjdk.org> wrote:
>> This issue is related to the definition of __sigset_t (__sigset_t >> act.sa_mask). In the glibc source, __sigset_t is defined in multiple >> places: >> - bits/types/__sigset_t.h >> <img width="1071" height="415" alt="image02" >> src="https://github.com/user-attachments/assets/4dff7546-f0b3-448c-832f-54f7b9ffc476" >> /> >> >> >> - sysdeps/unix/sysv/linux/bits/types/__sigset_t.h (introduced after glibc >> 2.25) >> <img width="1059" height="487" alt="image01" >> src="https://github.com/user-attachments/assets/54101f9b-3b1a-4943-83ee-6f6471c060a6" >> /> >> >> >> During compilation with Clang, the latter definition appears to be used, >> where __sigset_t is a struct, causing the printf("%X", act.sa_mask) to fail. >> >> we can detect whether _SIGSET_NWORDS is defined and handle the printing >> differently based on that, ensuring correct handling of the struct type. > > Guanqiang Han has updated the pull request incrementally with two additional > commits since the last revision: > > - Update exePrintSignalDisposition.c > > a small fix > - Update exePrintSignalDisposition.c > > Refactor act.sa_mask output The fix looks reasonable. However, the discrepancy btw and AIX and others seems unnecessary complexity. I'd prefer having `ifdef` removed also. Looking at how these prints are used/tested, I believe `sa_mask` is not really needed and it doesn't seem very useful also. Therefore, I'd suggest removing it, just like what's done for AIX. My 2c. ------------- PR Review: https://git.openjdk.org/jdk/pull/26771#pullrequestreview-3122060281