On Thu, 20 Mar 2025 22:40:51 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:

>> make/test/JtregNativeHotspot.gmk line 121:
>> 
>>> 119:     -I$(VM_TESTBASE_DIR)/nsk/stress/jni \
>>> 120:     -I$(VM_TESTBASE_DIR)/vm/mlvm/share \
>>> 121:     -I$(VM_TESTBASE_DIR)/vm/share \
>> 
>> Including these directories for every native test seems a little risky. Are 
>> we sure there are no header files with the same name? Can we not still add 
>> these only if the test needs them e.g. if it has vmTestBase in its name for 
>> the nsk tests?
>
> I don't know if it is "risky". Compare this with how all hotspot files are 
> compiled, with all these include directories:
> 
> build/macosx-aarch64/hotspot/variant-server/gensrc
> build/macosx-aarch64/hotspot/variant-server/gensrc/adfiles
> build/macosx-aarch64/support/modules_include/java.base
> build/macosx-aarch64/support/modules_include/java.base/darwin
> open/src/hotspot/cpu/aarch64
> open/src/hotspot/os_cpu/bsd_aarch64
> open/src/hotspot/os/bsd
> open/src/hotspot/os/posix
> open/src/hotspot/os/posix/include
> open/src/hotspot/share
> open/src/hotspot/share/include
> open/src/java.base/share/native/include
> open/src/java.base/share/native/libjimage
> open/src/java.base/unix/native/include
> 
> 
> Are we sure that there are no header files of the same name here? We can 
> check, and there are none. Can we be sure that no one will add a conflicting 
> header? Well, yes, since then the product would not compile as expected. 
> 
> Going back to the test files. This is the complete list of all header files 
> present in these directories:
> 
> test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jni/ExceptionCheckingJniEnv.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.hpp
> test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.hpp
> test/hotspot/jtreg/vmTestbase/nsk/stress/jni/jnihelper.hpp
> test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.hpp
> test/lib/jdk/test/lib/jvmti/jvmti_common.hpp
> test/lib/jdk/test/lib/jvmti/jvmti_thread.hpp
> 
> 
> As you can see, there are no conflicts.
> 
> Most of the names are very specific and include some part of their specific 
> "package" in the name. It seems highly unlikely to me that someone would add 
> another header file with the same name as any of these. 
> 
> And, also, if someone were to do that after this PR, the tests would fail to 
> compile as expected, so it can't really happen by mistake.
> 
> (I do note the weird fact that there is both a `jvmti_tools.hpp` a...

Okay, lets give it a try.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24130#discussion_r2006936847

Reply via email to