Mercurial > hg > graal-jvmci-8
changeset 4890:c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
Summary: When a build number is not specified, the JRE_RELEASE_VERSION define contains a date and timestamp. Thus ccache cannot cache the object files for longer than a minute since the define is passed to the compilation of all source files. This change passes JRE_RELEASE_VERSION only to vm_version.cpp and adds a function jre_release_version() to Abstract_VM_Version. This allows all other source files to be ccached.
Reviewed-by: ohair, rottenha
Contributed-by: fredrik.ohrstrom@oracle.com
author | ohrstrom |
---|---|
date | Tue, 31 Jan 2012 13:12:39 +0100 |
parents | 869be5c8882e |
children | 719f7007c8e8 |
files | make/bsd/makefiles/vm.make make/linux/makefiles/vm.make make/solaris/makefiles/vm.make src/share/vm/runtime/vm_version.cpp src/share/vm/runtime/vm_version.hpp |
diffstat | 5 files changed, 23 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/make/bsd/makefiles/vm.make Fri Feb 03 17:21:52 2012 -0500 +++ b/make/bsd/makefiles/vm.make Tue Jan 31 13:12:39 2012 +0100 @@ -89,9 +89,13 @@ ${BUILD_TARGET} \ ${BUILD_USER} \ ${HS_LIB_ARCH} \ - ${JRE_VERSION} \ ${VM_DISTRO} +# This is VERY important! The version define must only be supplied to vm_version.o +# If not, ccache will not re-use the cache at all, since the version string might contain +# a time and date. +vm_version.o: CPPFLAGS += ${JRE_VERSION} + ifdef DEFAULT_LIBPATH CPPFLAGS += -DDEFAULT_LIBPATH="\"$(DEFAULT_LIBPATH)\"" endif
--- a/make/linux/makefiles/vm.make Fri Feb 03 17:21:52 2012 -0500 +++ b/make/linux/makefiles/vm.make Tue Jan 31 13:12:39 2012 +0100 @@ -95,9 +95,13 @@ ${BUILD_TARGET} \ ${BUILD_USER} \ ${HS_LIB_ARCH} \ - ${JRE_VERSION} \ ${VM_DISTRO} +# This is VERY important! The version define must only be supplied to vm_version.o +# If not, ccache will not re-use the cache at all, since the version string might contain +# a time and date. +vm_version.o: CPPFLAGS += ${JRE_VERSION} + ifndef JAVASE_EMBEDDED CFLAGS += -DINCLUDE_TRACE endif
--- a/make/solaris/makefiles/vm.make Fri Feb 03 17:21:52 2012 -0500 +++ b/make/solaris/makefiles/vm.make Tue Jan 31 13:12:39 2012 +0100 @@ -83,9 +83,13 @@ ${BUILD_TARGET} \ ${BUILD_USER} \ ${HS_LIB_ARCH} \ - ${JRE_VERSION} \ ${VM_DISTRO} +# This is VERY important! The version define must only be supplied to vm_version.o +# If not, ccache will not re-use the cache at all, since the version string might contain +# a time and date. +vm_version.o: CPPFLAGS += ${JRE_VERSION} + # CFLAGS_WARN holds compiler options to suppress/enable warnings. CFLAGS += $(CFLAGS_WARN)
--- a/src/share/vm/runtime/vm_version.cpp Fri Feb 03 17:21:52 2012 -0500 +++ b/src/share/vm/runtime/vm_version.cpp Tue Jan 31 13:12:39 2012 +0100 @@ -165,6 +165,13 @@ return VM_RELEASE; } +// NOTE: do *not* use stringStream. this function is called by +// fatal error handlers. if the crash is in native thread, +// stringStream cannot get resource allocated and will SEGV. +const char* Abstract_VM_Version::jre_release_version() { + return JRE_RELEASE_VERSION; +} + #define OS LINUX_ONLY("linux") \ WINDOWS_ONLY("windows") \ SOLARIS_ONLY("solaris") \
--- a/src/share/vm/runtime/vm_version.hpp Fri Feb 03 17:21:52 2012 -0500 +++ b/src/share/vm/runtime/vm_version.hpp Tue Jan 31 13:12:39 2012 +0100 @@ -71,6 +71,7 @@ // Internal version providing additional build information static const char* internal_vm_info_string(); + static const char* jre_release_version(); // does HW support an 8-byte compare-exchange operation? static bool supports_cx8() {return _supports_cx8;}