RFR: 8365296: Build failure with Clang due to -Wformat warning after JDK-8364611 [v3]

Hao Sun haosun at openjdk.org
Fri Aug 15 01:31:19 UTC 2025


On Thu, 14 Aug 2025 16:02:54 GMT, Guanqiang Han <ghan at 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

test/jdk/java/lang/ProcessBuilder/childSignalDisposition/exePrintSignalDisposition.c line 2:

> 1: /*
> 2:  * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.

nit: `XX, YY,` means that this file was created in `XX` year and the latest update is done in `YY` year. If `XX == YY`, then use `XX,`.

Suggestion:

 * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26771#discussion_r2278049700


More information about the core-libs-dev mailing list