8189761: COMPANY_NAME, IMPLEMENTOR, BUNDLE_VENDOR, VENDOR, but no configure flag
Reviewed-by: erikj, dholmes
--- a/make/autoconf/generated-configure.sh Wed Jan 17 17:53:37 2018 -0800
+++ b/make/autoconf/generated-configure.sh Thu Jan 18 03:12:41 2018 +0100
@@ -900,6 +900,9 @@
VERSION_UPDATE
VERSION_INTERIM
VERSION_FEATURE
+VENDOR_URL_VM_BUG
+VENDOR_URL_BUG
+VENDOR_URL
COMPANY_NAME
MACOSX_BUNDLE_ID_BASE
MACOSX_BUNDLE_NAME_BASE
@@ -1146,6 +1149,9 @@
with_version_minor
with_version_security
with_vendor_name
+with_vendor_url
+with_vendor_bug_url
+with_vendor_vm_bug_url
with_version_string
with_version_pre
with_version_opt
@@ -2070,7 +2076,16 @@
compatibility and is ignored
--with-version-security Deprecated. Option is kept for backwards
compatibility and is ignored
- --with-vendor-name Set vendor name [not specified]
+ --with-vendor-name Set vendor name. Among others, used to set the
+ 'java.vendor' and 'java.vm.vendor' system
+ properties. [not specified]
+ --with-vendor-url Set the 'java.vendor.url' system property [not
+ specified]
+ --with-vendor-bug-url Set the 'java.vendor.url.bug' system property [not
+ specified]
+ --with-vendor-vm-bug-url
+ Sets the bug URL which will be displayed when the VM
+ crashes [not specified]
--with-version-string Set version string [calculated]
--with-version-pre Set the base part of the version 'PRE' field
(pre-release identifier) ['internal']
@@ -5172,7 +5187,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1513805283
+DATE_WHEN_GENERATED=1516225089
###############################################################################
#
@@ -25052,12 +25067,62 @@
if test "x$with_vendor_name" = xyes; then
as_fn_error $? "--with-vendor-name must have a value" "$LINENO" 5
elif ! [[ $with_vendor_name =~ ^[[:print:]]*$ ]] ; then
- as_fn_error $? "--with--vendor-name contains non-printing characters: $with_vendor_name" "$LINENO" 5
- else
+ as_fn_error $? "--with-vendor-name contains non-printing characters: $with_vendor_name" "$LINENO" 5
+ elif test "x$with_vendor_name" != x; then
+ # Only set COMPANY_NAME if '--with-vendor-name' was used and is not empty.
+ # Otherwise we will use the value from "version-numbers" included above.
COMPANY_NAME="$with_vendor_name"
fi
+ # The vendor URL, if any
+
+# Check whether --with-vendor-url was given.
+if test "${with_vendor_url+set}" = set; then :
+ withval=$with_vendor_url;
+fi
+
+ if test "x$with_vendor_url" = xyes; then
+ as_fn_error $? "--with-vendor-url must have a value" "$LINENO" 5
+ elif ! [[ $with_vendor_url =~ ^[[:print:]]*$ ]] ; then
+ as_fn_error $? "--with-vendor-url contains non-printing characters: $with_vendor_url" "$LINENO" 5
+ else
+ VENDOR_URL="$with_vendor_url"
+ fi
+
+
+ # The vendor bug URL, if any
+
+# Check whether --with-vendor-bug-url was given.
+if test "${with_vendor_bug_url+set}" = set; then :
+ withval=$with_vendor_bug_url;
+fi
+
+ if test "x$with_vendor_bug_url" = xyes; then
+ as_fn_error $? "--with-vendor-bug-url must have a value" "$LINENO" 5
+ elif ! [[ $with_vendor_bug_url =~ ^[[:print:]]*$ ]] ; then
+ as_fn_error $? "--with-vendor-bug-url contains non-printing characters: $with_vendor_bug_url" "$LINENO" 5
+ else
+ VENDOR_URL_BUG="$with_vendor_bug_url"
+ fi
+
+
+ # The vendor VM bug URL, if any
+
+# Check whether --with-vendor-vm-bug-url was given.
+if test "${with_vendor_vm_bug_url+set}" = set; then :
+ withval=$with_vendor_vm_bug_url;
+fi
+
+ if test "x$with_vendor_vm_bug_url" = xyes; then
+ as_fn_error $? "--with-vendor-vm-bug-url must have a value" "$LINENO" 5
+ elif ! [[ $with_vendor_vm_bug_url =~ ^[[:print:]]*$ ]] ; then
+ as_fn_error $? "--with-vendor-vm-bug-url contains non-printing characters: $with_vendor_vm_bug_url" "$LINENO" 5
+ else
+ VENDOR_URL_VM_BUG="$with_vendor_vm_bug_url"
+ fi
+
+
# Override version from arguments
# If --with-version-string is set, process it first. It is possible to
--- a/make/autoconf/jdk-version.m4 Wed Jan 17 17:53:37 2018 -0800
+++ b/make/autoconf/jdk-version.m4 Thu Jan 18 03:12:41 2018 +0100
@@ -80,16 +80,55 @@
# The vendor name, if any
AC_ARG_WITH(vendor-name, [AS_HELP_STRING([--with-vendor-name],
- [Set vendor name @<:@not specified@:>@])])
+ [Set vendor name. Among others, used to set the 'java.vendor'
+ and 'java.vm.vendor' system properties. @<:@not specified@:>@])])
if test "x$with_vendor_name" = xyes; then
AC_MSG_ERROR([--with-vendor-name must have a value])
elif [ ! [[ $with_vendor_name =~ ^[[:print:]]*$ ]] ]; then
- AC_MSG_ERROR([--with--vendor-name contains non-printing characters: $with_vendor_name])
- else
+ AC_MSG_ERROR([--with-vendor-name contains non-printing characters: $with_vendor_name])
+ elif test "x$with_vendor_name" != x; then
+ # Only set COMPANY_NAME if '--with-vendor-name' was used and is not empty.
+ # Otherwise we will use the value from "version-numbers" included above.
COMPANY_NAME="$with_vendor_name"
fi
AC_SUBST(COMPANY_NAME)
+ # The vendor URL, if any
+ AC_ARG_WITH(vendor-url, [AS_HELP_STRING([--with-vendor-url],
+ [Set the 'java.vendor.url' system property @<:@not specified@:>@])])
+ if test "x$with_vendor_url" = xyes; then
+ AC_MSG_ERROR([--with-vendor-url must have a value])
+ elif [ ! [[ $with_vendor_url =~ ^[[:print:]]*$ ]] ]; then
+ AC_MSG_ERROR([--with-vendor-url contains non-printing characters: $with_vendor_url])
+ else
+ VENDOR_URL="$with_vendor_url"
+ fi
+ AC_SUBST(VENDOR_URL)
+
+ # The vendor bug URL, if any
+ AC_ARG_WITH(vendor-bug-url, [AS_HELP_STRING([--with-vendor-bug-url],
+ [Set the 'java.vendor.url.bug' system property @<:@not specified@:>@])])
+ if test "x$with_vendor_bug_url" = xyes; then
+ AC_MSG_ERROR([--with-vendor-bug-url must have a value])
+ elif [ ! [[ $with_vendor_bug_url =~ ^[[:print:]]*$ ]] ]; then
+ AC_MSG_ERROR([--with-vendor-bug-url contains non-printing characters: $with_vendor_bug_url])
+ else
+ VENDOR_URL_BUG="$with_vendor_bug_url"
+ fi
+ AC_SUBST(VENDOR_URL_BUG)
+
+ # The vendor VM bug URL, if any
+ AC_ARG_WITH(vendor-vm-bug-url, [AS_HELP_STRING([--with-vendor-vm-bug-url],
+ [Sets the bug URL which will be displayed when the VM crashes @<:@not specified@:>@])])
+ if test "x$with_vendor_vm_bug_url" = xyes; then
+ AC_MSG_ERROR([--with-vendor-vm-bug-url must have a value])
+ elif [ ! [[ $with_vendor_vm_bug_url =~ ^[[:print:]]*$ ]] ]; then
+ AC_MSG_ERROR([--with-vendor-vm-bug-url contains non-printing characters: $with_vendor_vm_bug_url])
+ else
+ VENDOR_URL_VM_BUG="$with_vendor_vm_bug_url"
+ fi
+ AC_SUBST(VENDOR_URL_VM_BUG)
+
# Override version from arguments
# If --with-version-string is set, process it first. It is possible to
--- a/make/autoconf/spec.gmk.in Wed Jan 17 17:53:37 2018 -0800
+++ b/make/autoconf/spec.gmk.in Thu Jan 18 03:12:41 2018 +0100
@@ -139,6 +139,20 @@
COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@
+# Platform naming variables
+LAUNCHER_NAME:=@LAUNCHER_NAME@
+PRODUCT_NAME:=@PRODUCT_NAME@
+PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
+JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
+COMPANY_NAME:=@COMPANY_NAME@
+HOTSPOT_VM_DISTRO:=@HOTSPOT_VM_DISTRO@
+MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@
+MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@
+USERNAME:=@USERNAME@
+VENDOR_URL:=@VENDOR_URL@
+VENDOR_URL_BUG:=@VENDOR_URL_BUG@
+VENDOR_URL_VM_BUG:=@VENDOR_URL_VM_BUG@
+
# New (JEP-223) version information
## Building blocks of the version string
@@ -192,16 +206,30 @@
-DVENDOR_VERSION_STRING='"$(VENDOR_VERSION_STRING)"' \
#
-# Platform naming variables
-LAUNCHER_NAME:=@LAUNCHER_NAME@
-PRODUCT_NAME:=@PRODUCT_NAME@
-PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
-JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
-COMPANY_NAME:=@COMPANY_NAME@
-HOTSPOT_VM_DISTRO:=@HOTSPOT_VM_DISTRO@
-MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@
-MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@
-USERNAME:=@USERNAME@
+ifneq ($(COMPANY_NAME),)
+ # COMPANY_NAME is set to "N/A" in $AUTOCONF_DIR/version-numbers by default,
+ # but can be customized with the '--with-vendor-name' configure option.
+ # Only export "VENDOR" to the build if COMPANY_NAME contains a real value.
+ # Otherwise the default value for VENDOR, which is used to set the "java.vendor"
+ # and "java.vm.vendor" properties is hard-coded into the source code (i.e. in
+ # System.c in the jdk for "vm.vendor" and vm_version.cpp in the VM for "java.vm.vendor")
+ ifneq ($(COMPANY_NAME), N/A)
+ VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"'
+ endif
+endif
+
+# Only export VENDOR_URL, VENDOR_URL_BUG and VENDOR_VM_URL_BUG to the build if
+# they are not empty. Otherwise, default values which are defined in the sources
+# will be used.
+ifneq ($(VENDOR_URL),)
+ VERSION_CFLAGS += -DVENDOR_URL='"$(VENDOR_URL)"'
+endif
+ifneq ($(VENDOR_URL_BUG),)
+ VERSION_CFLAGS += -DVENDOR_URL_BUG='"$(VENDOR_URL_BUG)"'
+endif
+ifneq ($(VENDOR_URL_VM_BUG),)
+ VERSION_CFLAGS += -DVENDOR_URL_VM_BUG='"$(VENDOR_URL_VM_BUG)"'
+endif
# Different naming strings generated from the above information.
RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX)
--- a/make/hotspot/lib/CompileJvm.gmk Wed Jan 17 17:53:37 2018 -0800
+++ b/make/hotspot/lib/CompileJvm.gmk Thu Jan 18 03:12:41 2018 +0100
@@ -222,6 +222,7 @@
CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
+ arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
DISABLED_WARNINGS_clang := tautological-compare, \
DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
1540-1088 1500-010, \
--- a/src/hotspot/share/runtime/arguments.cpp Wed Jan 17 17:53:37 2018 -0800
+++ b/src/hotspot/share/runtime/arguments.cpp Thu Jan 18 03:12:41 2018 +0100
@@ -63,7 +63,11 @@
#endif
// Note: This is a special bug reporting site for the JVM
-#define DEFAULT_VENDOR_URL_BUG "http://bugreport.java.com/bugreport/crash.jsp"
+#ifdef VENDOR_URL_VM_BUG
+# define DEFAULT_VENDOR_URL_BUG VENDOR_URL_VM_BUG
+#else
+# define DEFAULT_VENDOR_URL_BUG "http://bugreport.java.com/bugreport/crash.jsp"
+#endif
#define DEFAULT_JAVA_LAUNCHER "generic"
char* Arguments::_jvm_flags_file = NULL;
--- a/src/java.base/share/native/libjava/System.c Wed Jan 17 17:53:37 2018 -0800
+++ b/src/java.base/share/native/libjava/System.c Thu Jan 18 03:12:41 2018 +0100
@@ -108,9 +108,14 @@
(*env)->DeleteLocalRef(env, jkey); \
} else ((void) 0)
-#ifndef VENDOR /* Third party may overwrite this. */
+/* Third party may overwrite these values. */
+#ifndef VENDOR
#define VENDOR "Oracle Corporation"
+#endif
+#ifndef VENDOR_URL
#define VENDOR_URL "http://java.oracle.com/"
+#endif
+#ifndef VENDOR_URL_BUG
#define VENDOR_URL_BUG "http://bugreport.java.com/bugreport/"
#endif