RFR: 8214976: Warn about uses of functions replaced for portability

Harold Seigel hseigel at openjdk.java.net
Tue Jan 4 19:31:36 UTC 2022


Please review this change for JDK-8214976.  This change adds attribute warnings to header file compilerWarnings.hpp so that compilation warnings get issued when certain system functions are called directly, instead of hotspot's os:: versions of the functions.  Many additional files were changed because of compilation warnings resulting from the compilerWarnings.hpp changes.

A sample warning is:

.../open/test/hotspot/gtest/logging/test_log.cpp:63:19: error: call to 'fopen' declared with attribute warning: use os::fopen [-Werror=attribute-warning]
   63 |   FILE* fp = fopen(TestLogFileName, "r");
      |              ~~~~~^~~~~~~~~~~~~~~~~~~~~~


Note that changing src/hotspot/os/linux/gc/z/zMountPoint_linux.cpp to call os:: functions requires adding "#include "runtime/os.hpp" and caused test gc/z/TestAllocateHeapAt.java to fail.  So, for now, I just added PRAGMA_PERMIT_FORBIDDEN_C_FUNCTION to zMountPoint_linux.cpp.  There's a similar issue with gtest/logging/test_logDecorators.cpp.

Attribute warnings for additional functions, such as malloc(), were not included in this change because they require lots of source code changes, or, in the case of open(), require adding an "open(const char *path, int oflag)" version of open() to os.hpp and os.cpp.

This change was tested by running mach5 tiers 1-2 on Linux, Mac OS, and Windows, Mach5 tiers 3-5 on Linux x64.  Also, builds were done on Linux-zero, Linux-s390, and Linux-ppc.

Thanks, Harold

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

Commit messages:
 - 8214976: Warn about uses of functions replaced for portability

Changes: https://git.openjdk.java.net/jdk/pull/6961/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6961&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8214976
  Stats: 208 lines in 46 files changed: 62 ins; 0 del; 146 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6961.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6961/head:pull/6961

PR: https://git.openjdk.java.net/jdk/pull/6961


More information about the hotspot-dev mailing list