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