-
Bug
-
Resolution: Fixed
-
P4
-
None
-
None
When performing an open only build on linux, make will try to build precompiled.hpp.gch before the jvmti files have been generated which produces a non-fatal error. Later it will successfuly regenerate precompiled.hpp.gch but the error message is concerning.
cd linux_amd64_jvmci/product && make " LP64=1 "
make[1]: Entering directory `/home/vagrant/ws/basic-graal/jvmci/build/linux/linux_amd64_jvmci/product'
make -f vm.make ./precompiled.hpp.gch -w
make[2]: Entering directory `/home/vagrant/ws/basic-graal/jvmci/build/linux/linux_amd64_jvmci/product'
Generating precompiled header precompiled.hpp.gch
In file included from /home/vagrant/ws/basic-graal/jvmci/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp:29,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/runtime/atomic.inline.hpp:32,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/memory/allocation.inline.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/utilities/array.hpp:29,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/memory/universe.hpp:29,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/code/oopRecorder.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/asm/codeBuffer.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/asm/assembler.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/precompiled/precompiled.hpp:29:
/home/vagrant/ws/basic-graal/jvmci/src/share/vm/runtime/os.hpp:28:30: error: jvmtifiles/jvmti.h: No such file or directory
The problem seems to be the -include of gcc.make from HS_ALT_MAKE, which of course doesn't exist in an open build. Make appears to try to figure out how to produce this gcc.make and somehow that triggers the early generation of the precompiled headers. Adding a PHONY target seems to fix this.
diff -r 6758183dd36b make/linux/makefiles/gcc.make
--- a/make/linux/makefiles/gcc.make Fri Feb 26 13:21:28 2016 +0100
+++ b/make/linux/makefiles/gcc.make Thu Mar 17 02:47:43 2016 +0000
@@ -398,3 +398,5 @@
endif
-include $(HS_ALT_MAKE)/linux/makefiles/gcc.make
+
+.PHONY: $(HS_ALT_MAKE)/linux/makefiles/gcc.make
cd linux_amd64_jvmci/product && make " LP64=1 "
make[1]: Entering directory `/home/vagrant/ws/basic-graal/jvmci/build/linux/linux_amd64_jvmci/product'
make -f vm.make ./precompiled.hpp.gch -w
make[2]: Entering directory `/home/vagrant/ws/basic-graal/jvmci/build/linux/linux_amd64_jvmci/product'
Generating precompiled header precompiled.hpp.gch
In file included from /home/vagrant/ws/basic-graal/jvmci/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp:29,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/runtime/atomic.inline.hpp:32,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/memory/allocation.inline.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/utilities/array.hpp:29,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/memory/universe.hpp:29,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/code/oopRecorder.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/asm/codeBuffer.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/asm/assembler.hpp:28,
from /home/vagrant/ws/basic-graal/jvmci/src/share/vm/precompiled/precompiled.hpp:29:
/home/vagrant/ws/basic-graal/jvmci/src/share/vm/runtime/os.hpp:28:30: error: jvmtifiles/jvmti.h: No such file or directory
The problem seems to be the -include of gcc.make from HS_ALT_MAKE, which of course doesn't exist in an open build. Make appears to try to figure out how to produce this gcc.make and somehow that triggers the early generation of the precompiled headers. Adding a PHONY target seems to fix this.
diff -r 6758183dd36b make/linux/makefiles/gcc.make
--- a/make/linux/makefiles/gcc.make Fri Feb 26 13:21:28 2016 +0100
+++ b/make/linux/makefiles/gcc.make Thu Mar 17 02:47:43 2016 +0000
@@ -398,3 +398,5 @@
endif
-include $(HS_ALT_MAKE)/linux/makefiles/gcc.make
+
+.PHONY: $(HS_ALT_MAKE)/linux/makefiles/gcc.make
- relates to
-
JDK-8017561 Build errors caused by missing .PHONY
- Closed