Re: RFR 8030011: Update Hotspot version string output

2014-04-21 Thread Alejandro E Murillo


On 4/18/2014 6:50 PM, John Coomes wrote:

Alejandro E Murillo (alejandro.muri...@oracle.com) wrote:

Please review this change to make the hotspot related output produced by
java -version
match the corresponding JDK output:

webrev: http://cr.openjdk.java.net/~amurillo/9/8030011/
Bug: https://bugs.openjdk.java.net/browse/JDK-8030011

Note that we initially wanted to obtain more information from the repo
being built and add
it to the hotspot version output, but that will require changes in the
JPRT, so
we have decided to split the change in 2 bugs. One to make the version match
(above webrev) and another one, an RFE, to add additional information
extracted from the repo.

Generally looks good, but I agree with David that the long lines
should be wrapped, and it might even be clearer to separate them into
two variables, e.g.,

JDK_VERSION_DEFS = -DJDK_MAJOR_VERSION=\$(JDK_MAJOR_VERSION)\ \
   -DJDK_MINOR_VERSION=\$(JDK_MINOR_VERSION)\ \
   ... other defs ...
VERSION_DEFS  = -DHOTSPOT_RELEASE_VERSION=\$(HS_BUILD_VER)\ \
-DJRE_RELEASE_VERSION=\$(JRE_RELEASE_VER)\ \
$(JDK_VERSION_DEFS)

Also the change to this part of vm.make differs between at least the
solaris version and the linux version (didn't check bsd or windows).
Please make them all consistent.


Note that in the current version of vm_version.cpp, there is no error
checking in product mode,
I was suggested to make that explicit.

I like the additional error checking.  I think you could eliminate the
4 copies of similar code with a function that does the checks and sets
the field, e.g.,

 void set_version_field(int * version_field, const char * version_str,
   const char * const assert_msg) {
if (version_str != NULL ...) {
 DEBUG_ONLY(assert_digits(version_str, assert_msg));
 *version_field = atoi(version_str);
}
 }

-John

Thanks John,
working on adding these changes and sanity testing

Thanks

--
Alejandro



RFR: [8038961] kinit, klist and ktab aren't built from jdk7u51 in licensee src bundles

2014-04-21 Thread Ivan Gerasimov

Hello!

This is a 7u only issue.

I was reported that kerberos tools aren't built from the licensee source 
bundle.
The cause is that building of the launchers is started from the 'build' 
target in the Makefile.
On Windows, the 'build' target is only defined, if ./common/Library.gmk 
is included, and this is included when 
./jdk/windows/native/sun/security/krb5 directory exists.

This is not the case for the licensee source bundle.

It appears to be enough to replace the 'build' target with 'all':

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8038961
WEBREV: http://cr.openjdk.java.net/~igerasim/8038961/0/webrev/

Sincerely yours,
Ivan


Re: RFR 8030011: Update Hotspot version string output

2014-04-21 Thread Vladimir Kozlov

Hi Alejandro,

I don't think we need to rename make/hotspot_version file. It is still 
used to set JVM's version string and not JDK's version.


Next should be 2014 (I think David pointed it too but there is no new 
webrev): HOTSPOT_VM_COPYRIGHT=Copyright 2013


If you pass major, micro etc numbers to avoid parsing you need to verify 
that constructed from them string is equal to passed 
HOTSPOT_RELEASE_VERSION.


Next assert message is not consistent with previous messages which use 
vm, I think it should be vm here too:


  DEBUG_ONLY(assert_digits(vm_build_num, offset, wrong JDK build 
number));


Abstract_VM_Version::jvm_version() should include micro version. See 
JVM_GetVersionInfo() in jvm.cpp and jvm_version_info in 
jdk/src/share/javavm/export/jvm.h.


Use corresponding test in jdk for testing of these changes:

jdk/test/sun/misc/Version/Version.java

jvm.h: Next comment is not accurate:

+/* VM version string: JDK version string */

If we build VM separately (for example, in JPRT) VM version will not be 
JDK version in which VM is installed. It will take numbers either from 
passed make parameters or from make/hotspot_version. I think it should say:


+/* VM version string follows the JDK release version naming convention
+ * major.minor.micro-bxx[-identifier][-debug_flavor]

Based on your examples [-identifier][-debug_flavor] is still used so 
it should be reflected in the comment.


Don't remove next comments from vm_version.cpp but fix it (follow the 
JDK release):


-// HOTSPOT_RELEASE_VERSION must follow the release version naming 
convention

-// major_ver.minor_ver-bnn[-identifier][-debug_target]

You did not show default VM version example when VM is built locally by 
engineer.


Please test that correct version string is constructed when you build VM 
using make/build.sh, for example 'sh make/build.sh debug LP64=1'


Next comment change in buildtree.make is not correct because 
HOTSPOT_RELEASE_VERSION make parameter does not include 
HOTSPOT_BUILD_VERSION:


-# HOTSPOT_RELEASE_VERSION - major.minor-bnn (11.0-b07)
+# HOTSPOT_RELEASE_VERSION - JRE_RELEASE_VERSION plus HOTSPOT_BUILD_VERSION

see JPRT logs where HOTSPOT_BUILD_VERSION is set separately.

I think next change in make/defs.make is not safe (removing make 
parameter) due to complexity of our builds:


-MAKE_ARGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION)


I know that windows build is mess. Please verify it carefully. For 
example, you changed names JDK_*_VER to JDK_*_VERSION in def.make but 
build.make uses them:


JDK_VER=$(JDK_MINOR_VER),$(JDK_MICRO_VER),$(JDK_UPDATE_VER),$(JDK_BUILD_NUMBER)


Regards,
Vladimir

On 4/21/14 10:13 AM, Alejandro E Murillo wrote:


On 4/18/2014 6:50 PM, John Coomes wrote:

Alejandro E Murillo (alejandro.muri...@oracle.com) wrote:

Please review this change to make the hotspot related output produced by
java -version
match the corresponding JDK output:

webrev: http://cr.openjdk.java.net/~amurillo/9/8030011/
Bug: https://bugs.openjdk.java.net/browse/JDK-8030011

Note that we initially wanted to obtain more information from the repo
being built and add
it to the hotspot version output, but that will require changes in the
JPRT, so
we have decided to split the change in 2 bugs. One to make the
version match
(above webrev) and another one, an RFE, to add additional information
extracted from the repo.

Generally looks good, but I agree with David that the long lines
should be wrapped, and it might even be clearer to separate them into
two variables, e.g.,

JDK_VERSION_DEFS = -DJDK_MAJOR_VERSION=\$(JDK_MAJOR_VERSION)\ \
   -DJDK_MINOR_VERSION=\$(JDK_MINOR_VERSION)\ \
   ... other defs ...
VERSION_DEFS  = -DHOTSPOT_RELEASE_VERSION=\$(HS_BUILD_VER)\ \
-DJRE_RELEASE_VERSION=\$(JRE_RELEASE_VER)\ \
$(JDK_VERSION_DEFS)

Also the change to this part of vm.make differs between at least the
solaris version and the linux version (didn't check bsd or windows).
Please make them all consistent.


Note that in the current version of vm_version.cpp, there is no error
checking in product mode,
I was suggested to make that explicit.

I like the additional error checking.  I think you could eliminate the
4 copies of similar code with a function that does the checks and sets
the field, e.g.,

 void set_version_field(int * version_field, const char *
version_str,
   const char * const assert_msg) {
if (version_str != NULL ...) {
 DEBUG_ONLY(assert_digits(version_str, assert_msg));
 *version_field = atoi(version_str);
}
 }

-John

Thanks John,
working on adding these changes and sanity testing

Thanks



URGENT RFR: 8041141: JDK9 emb build failure on PPC platform

2014-04-21 Thread David Holmes

http://cr.openjdk.java.net/~dholmes/8041141/webrev/

The recent changes to convert warnings to errors didn't account for some 
type-punning warnings in our Embedded PPC build due to the use of 
strict-aliasing. Really we shouldn't be using strict-aliasing so this 
change (which for some reason is in the open flags.m4 file) brings ppc 
in-line with all other platforms and sets -fno-strict-aliasing


I will be pushing this to jdk9/dev as we need this fixed immediately.

Thanks,
David


Re: URGENT RFR: 8041141: JDK9 emb build failure on PPC platform

2014-04-21 Thread Tim Bell

Hi David:


http://cr.openjdk.java.net/~dholmes/8041141/webrev/

The recent changes to convert warnings to errors didn't account for 
some type-punning warnings in our Embedded PPC build due to the use of 
strict-aliasing. Really we shouldn't be using strict-aliasing so this 
change (which for some reason is in the open flags.m4 file) brings ppc 
in-line with all other platforms and sets -fno-strict-aliasing


I will be pushing this to jdk9/dev as we need this fixed immediately.


Looks good to me.

Tim



Re: URGENT RFR: 8041141: JDK9 emb build failure on PPC platform

2014-04-21 Thread David Holmes

Thanks Tim!

Changes pushed.

David

On 22/04/2014 9:57 AM, Tim Bell wrote:

Hi David:


http://cr.openjdk.java.net/~dholmes/8041141/webrev/

The recent changes to convert warnings to errors didn't account for
some type-punning warnings in our Embedded PPC build due to the use of
strict-aliasing. Really we shouldn't be using strict-aliasing so this
change (which for some reason is in the open flags.m4 file) brings ppc
in-line with all other platforms and sets -fno-strict-aliasing

I will be pushing this to jdk9/dev as we need this fixed immediately.


Looks good to me.

Tim



Re: JDK-8025705

2014-04-21 Thread mark . reinhold
2014/4/16 14:52 -0700, david.hol...@oracle.com:
 src/closed is Oracle's custom source location (hotspot calls it 
 alt_src). If we never saw src/closed in the makefiles, only 
 CUSTOM_SRC_DIR, and guarded with an existence test for a specific 
 directory/file, then that should address your problem. That would be a 
 first step in moving things to the custom makefiles where they belong.
 
 I'm opposed to the ORACLEJDK variable because I want to maintain the 
 pressure to get this fixed properly. If we hack around it then it will 
 never get cleaned up.

I think it's wrong, in principle, for OpenJDK source code to contain
identifiers naming specific vendors of JDK implementations.  We're not
quite there at the moment, but let's please not add any more.

- Mark


Re: building 7u on macosx

2014-04-21 Thread David Holmes

On 19/04/2014 5:25 AM, Pete Brunet wrote:

Success.  I found this post from Arun Gupta:
https://blogs.oracle.com/arungupta/entry/build_open_jdk_7_on

which specifies this

make ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true
ALWAYS_PASS_TEST_GAMMA=true ALT_BOOTDIR=`/usr/libexec/java_home -v1.6`
HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`

rather than this

CPATH=/usr/X11/include LANG=C make ALLOW_DOWNLOADS=true
ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+` HOTSPOT_BUILD_JOBS=`sysctl
-n hw.ncpu`

at https://wiki.openjdk.java.net/display/MacOSXPort/Main

The differences are:
- At the front, remove:  CPATH=/usr/X11/include LANG=C
- Add this:  SA_APPLE_BOOT_JAVA=true ALWAYS_PASS_TEST_GAMMA=true


You missed the v1.6 vs v1.7+ on the ALT_BOOTDIR setting. I suspect that 
is the real difference.


David
-


I didn't yet investigate if there is a subset of the changes that would
be successful.

Pete

On 4/18/14 1:43 PM, Pete Brunet wrote:

I see Mac downloads for 7u55 so I should be able to build 7u.  But the
instructions at
https://wiki.openjdk.java.net/display/MacOSXPort/Main
are for 8 so maybe the instructions are different for 7?  The
instuctions in the 7 section of
http://openjdk.java.net/groups/build/
have no mention of mac os x.

Pete

On 4/18/14 11:59 AM, Pete Brunet wrote:

Maybe 7 is not supported?  The reason I am trying to build it is to back
port two bugs from 9, but maybe that's not needed.

On 4/18/14 11:39 AM, Pete Brunet wrote:

Hi, It's been a long time since I built 7 on macosx.  Refering to

https://wiki.openjdk.java.net/display/MacOSXPort/Main

I see these instructions

CPATH=/usr/X11/include LANG=C make ALLOW_DOWNLOADS=true
ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+` HOTSPOT_BUILD_JOBS=`sysctl
-n hw.ncpu`

but that fails.  See the log below.

Are the instructions still OK?

Pete

ptb-mbp-2:jdk7 petebrunet$ CPATH=/usr/X11/include LANG=C make
ALLOW_DOWNLOADS=true ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+`
HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`
( cd  ./jdk/make  \
   make sanity HOTSPOT_IMPORT_CHECK=false
JDK_TOPDIR=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/jdk
JDK_MAKE_SHARED_DIR=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/jdk/make/common/shared
EXTERNALSANITYCONTROL=true SOURCE_LANGUAGE_VERSION=7
TARGET_CLASS_VERSION=7 MILESTONE=internal BUILD_NUMBER=b00
JDK_BUILD_NUMBER=b00
FULL_VERSION=1.7.0-internal-petebrunet_2014_04_18_11_07-b00
PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.7.0 JDK_MKTG_VERSION=7
JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0
PREVIOUS_MAJOR_VERSION=1 PREVIOUS_MINOR_VERSION=6
PREVIOUS_MICRO_VERSION=0 ARCH_DATA_MODEL=64 COOKED_BUILD_NUMBER=0
ALT_OUTPUTDIR=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64
ALT_LANGTOOLS_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/langtools/dist
ALT_CORBA_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/corba/dist
ALT_JAXP_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/jaxp/dist
ALT_JAXWS_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/jaxws/dist
ALT_HOTSPOT_IMPORT_PATH=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/hotspot/import
BUILD_HOTSPOT=true ; )

Build Machine Information:
build machine = ptb-mbp-2.local

Build Directory Structure:
CWD = /Users/petebrunet/JDK7u/JDK-8041112/jdk7
TOPDIR = .
LANGTOOLS_TOPDIR = ./langtools
JAXP_TOPDIR = ./jaxp
JAXWS_TOPDIR = ./jaxws
CORBA_TOPDIR = ./corba
HOTSPOT_TOPDIR = ./hotspot
JDK_TOPDIR = ./jdk

Build Directives:
BUILD_LANGTOOLS = true
BUILD_JAXP = true
BUILD_JAXWS = true
BUILD_CORBA = true
BUILD_HOTSPOT = true
BUILD_JDK= true
DEBUG_CLASSFILES =
DEBUG_BINARIES =

Hotspot Settings:
   HOTSPOT_BUILD_JOBS  = 8
   HOTSPOT_OUTPUTDIR   =
/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/hotspot/outputdir

   HOTSPOT_EXPORT_PATH =
/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/hotspot/import




Bootstrap Settings:
   BOOTDIR = /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
 ALT_BOOTDIR =
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
   BOOT_VER = 1.8.0 [requires at least 1.6]
   OUTPUTDIR = /Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64
 ALT_OUTPUTDIR =
/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64
   ABS_OUTPUTDIR =
/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64

Build Tool Settings:
   SLASH_JAVA = /java
 ALT_SLASH_JAVA =
   VARIANT = OPT
   JDK_DEVTOOLS_DIR = /java/devtools
 ALT_JDK_DEVTOOLS_DIR =
   ANT_HOME =
   UNIXCOMMAND_PATH = /bin/
 ALT_UNIXCOMMAND_PATH =
   COMPILER_PATH = /Applications/Xcode.app/Contents/Developer/usr/bin/
 ALT_COMPILER_PATH =
   DEVTOOLS_PATH = /opt/local/bin/
 ALT_DEVTOOLS_PATH =
   COMPILER_NAME = LLVM-GCC4
   COMPILER_VERSION = LLVM-GCC4
   CC_VER = 4.2.1 [requires at least 4.2.1]
   ZIP_VER = 3.0 [requires at least 2.2]
   UNZIP_VER = 5.52 [requires at least 

Re: building 7u on macosx

2014-04-21 Thread Pete Brunet

On 4/21/14 9:30 PM, David Holmes wrote:
 On 19/04/2014 5:25 AM, Pete Brunet wrote:
 Success.  I found this post from Arun Gupta:
 https://blogs.oracle.com/arungupta/entry/build_open_jdk_7_on

 which specifies this

 make ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true
 ALWAYS_PASS_TEST_GAMMA=true ALT_BOOTDIR=`/usr/libexec/java_home -v1.6`
 HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`

 rather than this

 CPATH=/usr/X11/include LANG=C make ALLOW_DOWNLOADS=true
 ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+` HOTSPOT_BUILD_JOBS=`sysctl
 -n hw.ncpu`

 at https://wiki.openjdk.java.net/display/MacOSXPort/Main

 The differences are:
 - At the front, remove:  CPATH=/usr/X11/include LANG=C
 - Add this:  SA_APPLE_BOOT_JAVA=true ALWAYS_PASS_TEST_GAMMA=true

 You missed the v1.6 vs v1.7+ on the ALT_BOOTDIR setting. I suspect
 that is the real difference.
Thanks David, That makes sense.  What does -v do?  I didn't find a spec
describing it.  -Pete

 David
 -

 I didn't yet investigate if there is a subset of the changes that would
 be successful.

 Pete

 On 4/18/14 1:43 PM, Pete Brunet wrote:
 I see Mac downloads for 7u55 so I should be able to build 7u.  But the
 instructions at
 https://wiki.openjdk.java.net/display/MacOSXPort/Main
 are for 8 so maybe the instructions are different for 7?  The
 instuctions in the 7 section of
 http://openjdk.java.net/groups/build/
 have no mention of mac os x.

 Pete

 On 4/18/14 11:59 AM, Pete Brunet wrote:
 Maybe 7 is not supported?  The reason I am trying to build it is to
 back
 port two bugs from 9, but maybe that's not needed.

 On 4/18/14 11:39 AM, Pete Brunet wrote:
 Hi, It's been a long time since I built 7 on macosx.  Refering to

 https://wiki.openjdk.java.net/display/MacOSXPort/Main

 I see these instructions

 CPATH=/usr/X11/include LANG=C make ALLOW_DOWNLOADS=true
 ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+`
 HOTSPOT_BUILD_JOBS=`sysctl
 -n hw.ncpu`

 but that fails.  See the log below.

 Are the instructions still OK?

 Pete

 ptb-mbp-2:jdk7 petebrunet$ CPATH=/usr/X11/include LANG=C make
 ALLOW_DOWNLOADS=true ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+`
 HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`
 ( cd  ./jdk/make  \
make sanity HOTSPOT_IMPORT_CHECK=false
 JDK_TOPDIR=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/jdk
 JDK_MAKE_SHARED_DIR=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/jdk/make/common/shared

 EXTERNALSANITYCONTROL=true SOURCE_LANGUAGE_VERSION=7
 TARGET_CLASS_VERSION=7 MILESTONE=internal BUILD_NUMBER=b00
 JDK_BUILD_NUMBER=b00
 FULL_VERSION=1.7.0-internal-petebrunet_2014_04_18_11_07-b00
 PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.7.0 JDK_MKTG_VERSION=7
 JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0
 PREVIOUS_MAJOR_VERSION=1 PREVIOUS_MINOR_VERSION=6
 PREVIOUS_MICRO_VERSION=0 ARCH_DATA_MODEL=64 COOKED_BUILD_NUMBER=0
 ALT_OUTPUTDIR=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64

 ALT_LANGTOOLS_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/langtools/dist

 ALT_CORBA_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/corba/dist

 ALT_JAXP_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/jaxp/dist

 ALT_JAXWS_DIST=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/jaxws/dist

 ALT_HOTSPOT_IMPORT_PATH=/Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/hotspot/import

 BUILD_HOTSPOT=true ; )

 Build Machine Information:
 build machine = ptb-mbp-2.local

 Build Directory Structure:
 CWD = /Users/petebrunet/JDK7u/JDK-8041112/jdk7
 TOPDIR = .
 LANGTOOLS_TOPDIR = ./langtools
 JAXP_TOPDIR = ./jaxp
 JAXWS_TOPDIR = ./jaxws
 CORBA_TOPDIR = ./corba
 HOTSPOT_TOPDIR = ./hotspot
 JDK_TOPDIR = ./jdk

 Build Directives:
 BUILD_LANGTOOLS = true
 BUILD_JAXP = true
 BUILD_JAXWS = true
 BUILD_CORBA = true
 BUILD_HOTSPOT = true
 BUILD_JDK= true
 DEBUG_CLASSFILES =
 DEBUG_BINARIES =

 Hotspot Settings:
HOTSPOT_BUILD_JOBS  = 8
HOTSPOT_OUTPUTDIR   =
 /Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/hotspot/outputdir


HOTSPOT_EXPORT_PATH =
 /Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64/hotspot/import





 Bootstrap Settings:
BOOTDIR =
 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
  ALT_BOOTDIR =
 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
BOOT_VER = 1.8.0 [requires at least 1.6]
OUTPUTDIR =
 /Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64
  ALT_OUTPUTDIR =
 /Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64
ABS_OUTPUTDIR =
 /Users/petebrunet/JDK7u/JDK-8041112/jdk7/build/macosx-x86_64

 Build Tool Settings:
SLASH_JAVA = /java
  ALT_SLASH_JAVA =
VARIANT = OPT
JDK_DEVTOOLS_DIR = /java/devtools
  ALT_JDK_DEVTOOLS_DIR =
ANT_HOME =
UNIXCOMMAND_PATH = /bin/
  ALT_UNIXCOMMAND_PATH =
COMPILER_PATH =
 /Applications/Xcode.app/Contents/Developer/usr/bin/
  

Re: JDK-8025705

2014-04-21 Thread Keith McGuigan
Hi Mark, et al.,

The sad reality of the situation is that there is indeed Oracle-specific
code in the OpenJDK makefiles, and this code interferes with our
customization of the JDK.  Adding temporary signposts to allow us (and
others) to avoid this code will not make things worse.  It doesn't have to
be a distribution name -- we call it whatever you like: TO_BE_REMOVED,
KEITH_IS_A_PITA, whatever -- just something to latch onto to deactivate
that code when it is not needed.  This would provide immediate relief to
customizing distributors and give Oracle engineers time to phase that code
into closed makefiles (at which time the signposts can be removed
completely).

Taking all this code out wholesale instead would be great, and this is
something I am totally willing to tackle and put the effort in on if I was
in a position to do so.  Unfortunately, since this is not fully
open-source, I can't do the refactoring needed to move this code into the
closed directories.  And I though I could easily strip the code from
OpenJDK, this would totally muck with Oracle distribution so any patch I
would submit would surely be immediately rejected.

Considering that the code is question has been in OpenJDK for about 8 years
now, I think it's safe to assume that it's not a high priority item for
Oracle engineers to get this fixed.  Which is totally fine, IMO -- it's
very much a tenant of open source development that he who has the itch
ought to be the one to scratch it, and different entities are expected to
have different sets of priorities.  No doubt I'm probably the first one to
complain about this :)

Unfortunately, I'm also in the unfortunate position of having an itch (and
willing fingernails), but an inability to scratch it.

So, where do we go from here and how can I help in this effort?  I really
do want to help, as this is an immediate problem for me and I can't afford
to wait years for it to get fixed.  I still think that signposts are a very
reasonable compromise given that:
(1) It is something that can be done independently and doesn't require
Oracle engineering resources (other than reviews and shepherding)
(2) It does not interfere with efforts to move closed code out of OpenJDK
makefiles
(3) it can be done quickly
(4) It does not avoid the Makefile-checking for existence of required
files/directories (which reduces build-brittleness)

Mark/Dave, if I can't convince you that we should take this path, can you
please suggest an alternative design?  I'm not picky -- if we can come up
with something else that works then let's do it and I'll start on it right
away.

--
- Keith (itchy)




On Mon, Apr 21, 2014 at 8:23 PM, mark.reinh...@oracle.com wrote:

 2014/4/16 14:52 -0700, david.hol...@oracle.com:
  src/closed is Oracle's custom source location (hotspot calls it
  alt_src). If we never saw src/closed in the makefiles, only
  CUSTOM_SRC_DIR, and guarded with an existence test for a specific
  directory/file, then that should address your problem. That would be a
  first step in moving things to the custom makefiles where they belong.
 
  I'm opposed to the ORACLEJDK variable because I want to maintain the
  pressure to get this fixed properly. If we hack around it then it will
  never get cleaned up.

 I think it's wrong, in principle, for OpenJDK source code to contain
 identifiers naming specific vendors of JDK implementations.  We're not
 quite there at the moment, but let's please not add any more.

 - Mark