On Fri, 29 Mar 2024 07:21:43 GMT, Thomas Stuefe <stu...@openjdk.org> wrote:

>> As of [JDK-8325880](https://bugs.openjdk.org/browse/JDK-8325880), building 
>> the JDK requires version 17 of IBM Open XL C/C++ (xlc). This is in effect 
>> clang by another name, and it uses the clang toolchain in the JDK build. 
>> Thus the old xlc toolchain was removed by 
>> [JDK-8327701](https://bugs.openjdk.org/browse/JDK-8327701).
>> Now we also switch the HOTSPOT_TOOLCHAIN_TYPE from xlc to gcc, removing the 
>> last xlc rudiment.
>> This means merging the AIX specific content of 
>> utilities/globalDefinitions_xlc.hpp and utilities/compilerWarnings_xlc.hpp 
>> into the corresponding gcc files on the on side and removing the 
>> defined(TARGET_COMPILER_xlc) blocks in the code, because the 
>> defined(TARGET_COMPILER_gcc) blocks work out of the box for the new AIX 
>> compiler.
>> The rest of the changes are needed because of using 
>> utilities/compilerWarnings_gcc.hpp the compiler is much more nagging about 
>> ill formatted printf
>
> src/hotspot/os/aix/os_aix.cpp line 314:
> 
>> 312:       ErrnoPreserver ep;
>> 313:       log_trace(os, map)("disclaim failed: " RANGEFMT " errno=(%s)",
>> 314:                          RANGEFMTARGS(p, (long)maxDisclaimSize),
> 
> Wait, why are these casts needed? maxDisclaimSize is size_t, RANGEFMT uses 
> SIZE_FORMAT. That should work without cast.

Hi Thomas, `maxDisclaimSize` is of type `unsigned int`; therefore I get the 
following warning:

os/aix/os_aix.cpp:314:42: error: format specifies type 'unsigned long' but the 
argument has type 'unsigned int' [-Werror,-Wformat]
                         RANGEFMTARGS(p, maxDisclaimSize),
                                         ^~~~~~~~~~~~~~~

Should I keep the casts, or change the type of `maxDisclaimSize, 
numFullDisclaimsNeeded, lastDisclaimSize` to `const unsigned long`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18536#discussion_r1547578012

Reply via email to