Re: RFR [9] : get_source.sh should be more friendly to MQ

2014-04-28 Thread John Coomes
Chris Hegarty (chris.hega...@oracle.com) wrote:
 On 11/04/14 15:59, Jonathan Gibbons wrote:
  Popping all patches beforehand is reasonable, but afterwards, it would
  be better to reset to the patches that were previously applied than to
  try and push all of them.
 
 Michael as requested same.
 
  What is the behavior if you cannot qpush patches after the pull, because
  of merge issues?
 
 The parts of the specific patch that applied cleanly remain applied, 
 them that did not are written out to reject files to be analyzed. The 
 remainder of the patches in that repository are not applied.  get_source 
 will then exit with an appropriate error exit code and you can take action.

[Sorry for resurrecting this thread, I just became aware of it--was not
subscribed.]

My workflow relies heavily on mq and (IMHO, of course) reject files
are needless tedium.  So I depend heavily on rebase.  In order to
avoid reject files when pulling, I do:

hg qpush -a # push everything

hg pull --rebase# pull and rebase in one step, will
# invoke merge tools if necessary

hg qpop some_patch# optional

If you omit the 'hg qpush -a' before pulling, it becomes tedious
(sometimes impossible) to get your merge tools invoked when you later
want to push the patches.

-John

  On 04/11/2014 07:58 AM, Chris Hegarty wrote:
  Anyone using MQ for their daily development will know about this,
  forgetting to qpop before sync'ing up. It would be nice it get_source
  would pop and push patches ( only if you are using MQ ) automatically.
  If you do not have patch repos, then there is no change.
 
  diff --git a/get_source.sh b/get_source.sh
  --- a/get_source.sh
  +++ b/get_source.sh
  @@ -28,6 +28,21 @@
   # Get clones of all nested repositories
   sh ./common/bin/hgforest.sh clone $@ || exit 1
 
  +patchdirs=`ls -d ./.hg/patches ./*/.hg/patches ./*/*/.hg/patches \
  + ./*/*/*/.hg/patches ./*/*/*/*/.hg/patches 2/dev/null`
  +
  +# Pop all patches, if any, before updating
  +if [ ${patchdirs}  !=  ] ; then
  +  echo Found queue repository, qpop.
  +  sh ./common/bin/hgforest.sh qpop -a || exit 1
  +fi
  +
   # Update all existing repositories to the latest sources
  -sh ./common/bin/hgforest.sh pull -u
  +sh ./common/bin/hgforest.sh pull -u || exit 1
 
  +# Push all patches, if any, after updating
  +if [ ${patchdirs} !=  ] ; then
  +  echo Found queue repository, qpush.
  +  sh ./common/bin/hgforest.sh qpush -a
  +fi
  +
 
  -Chris.
 

-- 
John CoomesOracle, MS USCA22-3??
john.coo...@oracle.com 4220 Network Circle
408-276-7048   Santa Clara, CA 95054-1778
 *** Support GreenPeace and we'll all breathe easier. ***


Re: RFR [9] : get_source.sh should be more friendly to MQ

2014-04-28 Thread John Coomes
Mike Duigou (mike.dui...@oracle.com) wrote:
 
 On Apr 11 2014, at 12:06 , Chris Hegarty chris.hega...@oracle.com wrote:
 
  On 11 Apr 2014, at 18:55, Mike Duigou mike.dui...@oracle.com wrote:
  
  Have you looked at using rebase?
  
  I have not, in any detail.
  
  I've been using
  
  sh common/bin/hgforest.sh pull
  sh common/bin/hgforest.sh rebase
  sh common/bin/hgforest.sh update
  
  rather than get_source.sh as it allows me to skip the qpop/qpush steps.
  
  Yes, this may work. I was just looking for a single command to active this. 
  Maybe this combination could be baked into get_source.sh if patch 
  repositories exist, and we can verify the existence of the rebase extension 
  ( rather than my previous proposal ) ?
 
 I have contemplated adding this as an alternative to the pull -u step in 
 get_source.sh but wasn't others would agree. Some people hate rebase.
 
 We can detect whether rebase is enabled via :
 
 hg showconfig extensions | grep ^extension.rebase | wc -l
 
 Play with this approach manually and see if it works for you. If it does then 
 we can consider enhancing get_source.sh

'hg pull --rebase' is the equivalent of pull + update + rebase, and
you should already be able to run 'hgforest.sh pull --rebase'
(although I haven't tried it).

I'd be wary of trying to run rebase automatically, without an
indication that's what the user wants.

-John

  -Chris.
  
  
  Mike
  
  On Apr 11 2014, at 07:58 , Chris Hegarty chris.hega...@oracle.com wrote:
  
  Anyone using MQ for their daily development will know about this, 
  forgetting to qpop before sync'ing up. It would be nice it get_source 
  would pop and push patches ( only if you are using MQ ) automatically. If 
  you do not have patch repos, then there is no change.
  
  diff --git a/get_source.sh b/get_source.sh
  --- a/get_source.sh
  +++ b/get_source.sh
  @@ -28,6 +28,21 @@
  # Get clones of all nested repositories
  sh ./common/bin/hgforest.sh clone $@ || exit 1
  
  +patchdirs=`ls -d ./.hg/patches ./*/.hg/patches ./*/*/.hg/patches \
  + ./*/*/*/.hg/patches ./*/*/*/*/.hg/patches 2/dev/null`
  +
  +# Pop all patches, if any, before updating
  +if [ ${patchdirs}  !=  ] ; then
  +  echo Found queue repository, qpop.
  +  sh ./common/bin/hgforest.sh qpop -a || exit 1
  +fi
  +
  # Update all existing repositories to the latest sources
  -sh ./common/bin/hgforest.sh pull -u
  +sh ./common/bin/hgforest.sh pull -u || exit 1
  
  +# Push all patches, if any, after updating
  +if [ ${patchdirs} !=  ] ; then
  +  echo Found queue repository, qpush.
  +  sh ./common/bin/hgforest.sh qpush -a
  +fi
  +
  
  -Chris.
  
  
 

-- 
John CoomesOracle, MS USCA22-3??
john.coo...@oracle.com 4220 Network Circle
408-276-7048   Santa Clara, CA 95054-1778
 *** Support GreenPeace and we'll all breathe easier. ***


Re: RFR [9] : get_source.sh should be more friendly to MQ

2014-04-28 Thread John Coomes
Jonathan Gibbons (jonathan.gibb...@oracle.com) wrote:
 Could we do the same with the trees extension?

You can do it now with:

hg tpull --rebase

(As mentioned in my other message, I always precede the above with
'hg qpush -a' to avoid reject files.)

-John

 On 04/11/2014 10:55 AM, Mike Duigou wrote:
  Have you looked at using rebase? I've been using
 
  sh common/bin/hgforest.sh pull
  sh common/bin/hgforest.sh rebase
  sh common/bin/hgforest.sh update
 
  rather than get_source.sh as it allows me to skip the qpop/qpush steps.
 
  Mike
 
  On Apr 11 2014, at 07:58 , Chris Hegarty chris.hega...@oracle.com wrote:
 
  Anyone using MQ for their daily development will know about this, 
  forgetting to qpop before sync'ing up. It would be nice it get_source 
  would pop and push patches ( only if you are using MQ ) automatically. If 
  you do not have patch repos, then there is no change.
 
  diff --git a/get_source.sh b/get_source.sh
  --- a/get_source.sh
  +++ b/get_source.sh
  @@ -28,6 +28,21 @@
  # Get clones of all nested repositories
  sh ./common/bin/hgforest.sh clone $@ || exit 1
 
  +patchdirs=`ls -d ./.hg/patches ./*/.hg/patches ./*/*/.hg/patches \
  + ./*/*/*/.hg/patches ./*/*/*/*/.hg/patches 2/dev/null`
  +
  +# Pop all patches, if any, before updating
  +if [ ${patchdirs}  !=  ] ; then
  +  echo Found queue repository, qpop.
  +  sh ./common/bin/hgforest.sh qpop -a || exit 1
  +fi
  +
  # Update all existing repositories to the latest sources
  -sh ./common/bin/hgforest.sh pull -u
  +sh ./common/bin/hgforest.sh pull -u || exit 1
 
  +# Push all patches, if any, after updating
  +if [ ${patchdirs} !=  ] ; then
  +  echo Found queue repository, qpush.
  +  sh ./common/bin/hgforest.sh qpush -a
  +fi
  +
 
  -Chris.
 

-- 
John CoomesOracle, MS USCA22-3??
john.coo...@oracle.com 4220 Network Circle
408-276-7048   Santa Clara, CA 95054-1778
 *** Support GreenPeace and we'll all breathe easier. ***


Re: RFR 8030011: Update Hotspot version string output

2014-04-24 Thread John Coomes
Alejandro E Murillo (alejandro.muri...@oracle.com) wrote:
 ...
 I think I incorporated all the changes David, John and you suggested and 
 started some sanity testing;
 Here's is the latest webrev:
 
 http://cr.openjdk.java.net/~amurillo/9/8030011/
 
 Please review (don't forget to refresh each file on your browser) and 
 let me know if I missed anything.
 thanks guys!

Looks good.  Might be nice to shorten the rest of the assert messages
in vm_version.cpp to match the one for the build number, e.g., bad
major version).

-John


Re: RFR 8030011: Update Hotspot version string output

2014-04-18 Thread John Coomes
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


Re: hsx24 backport: Request for review: 7122222: GC log is limited to 2G for 32-bit

2013-07-02 Thread John Coomes
Tao Mao (tao@oracle.com) wrote:
 The hsx25 fix has been pushed already. Then I got the 
 7u40-critical-approved.
 
 When I tried backporting to hsx24, it didn't apply to the hsx24 repo 
 cleanly. Thus, I made the patch manually (copy-and-paste style) and now 
 need some quick reviews to get it in since it's 7u40 related P3 CR.
 
 hsx24 webrev:
 http://cr.openjdk.java.net/~tamao/712_hsx24/webrev.00/
 
 (original) hsx25 webrev:
 http://cr.openjdk.java.net/~tamao/712/webrev.00/

This looks good to me.

-John


review request - 7196361 add hotspot/make/closed to hgforest.sh

2012-09-05 Thread John Coomes
Please review this small change to keep the script in sync with the
forest structure.

webrev:

http://cr.openjdk.java.net/~jcoomes/7196361-hs-make-closed/

inline diff:

diff -r d5e73011bde2 -r e177daf578bd make/scripts/hgforest.sh
--- a/make/scripts/hgforest.sh  Thu Aug 30 10:26:55 2012 -0700
+++ b/make/scripts/hgforest.sh  Wed Sep 05 11:51:52 2012 -0700
@@ -60,3 +60,3 @@
   if [ ${pull_extra_base} !=  ] ; then
-subrepos_extra=jdk/src/closed jdk/make/closed jdk/test/closed 
hotspot/src/closed hotspot/test/closed deploy install sponsors pubs
+subrepos_extra=jdk/src/closed jdk/make/closed jdk/test/closed 
hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install 
sponsors pubs
 pull_default_tail=`echo ${pull_default} | sed -e 
's@^.*://[^/]*/\(.*\)@\1@'`

-John


Re: review request - 7196361 add hotspot/make/closed to hgforest.sh

2012-09-05 Thread John Coomes
Chris Hegarty (chris.hega...@oracle.com) wrote:
 +1

Thanks Chris.  Apologies for not including you in the cset comment; I
committed the cset and started the push before getting your message.

-John

 On 05/09/2012 20:40, Kelly O'Hair wrote:
  Looks fine to me.
 
  -kto
 
  On Sep 5, 2012, at 12:08 PM, John Coomes wrote:
 
  Please review this small change to keep the script in sync with the
  forest structure.
 
  webrev:
 
  http://cr.openjdk.java.net/~jcoomes/7196361-hs-make-closed/
 
  inline diff:
 
  diff -r d5e73011bde2 -r e177daf578bd make/scripts/hgforest.sh
  --- a/make/scripts/hgforest.sh Thu Aug 30 10:26:55 2012 -0700
  +++ b/make/scripts/hgforest.sh Wed Sep 05 11:51:52 2012 -0700
  @@ -60,3 +60,3 @@
 if [ ${pull_extra_base} !=  ] ; then
  -subrepos_extra=jdk/src/closed jdk/make/closed jdk/test/closed 
  hotspot/src/closed hotspot/test/closed deploy install sponsors pubs
  +subrepos_extra=jdk/src/closed jdk/make/closed jdk/test/closed 
  hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install 
  sponsors pubs
   pull_default_tail=`echo ${pull_default} | sed -e 
  's@^.*://[^/]*/\(.*\)@\1@'`
 
  -John
 


Re: review request - 7196361 add hotspot/make/closed to hgforest.sh

2012-09-05 Thread John Coomes
Kelly O'Hair (kelly.oh...@oracle.com) wrote:
 Looks fine to me.

Thanks Kelly.

-John

 On Sep 5, 2012, at 12:08 PM, John Coomes wrote:
 
  Please review this small change to keep the script in sync with the
  forest structure.
  
  webrev:
  
  http://cr.openjdk.java.net/~jcoomes/7196361-hs-make-closed/
  
  inline diff:
  
  diff -r d5e73011bde2 -r e177daf578bd make/scripts/hgforest.sh
  --- a/make/scripts/hgforest.sh  Thu Aug 30 10:26:55 2012 -0700
  +++ b/make/scripts/hgforest.sh  Wed Sep 05 11:51:52 2012 -0700
  @@ -60,3 +60,3 @@
if [ ${pull_extra_base} !=  ] ; then
  -subrepos_extra=jdk/src/closed jdk/make/closed jdk/test/closed 
  hotspot/src/closed hotspot/test/closed deploy install sponsors pubs
  +subrepos_extra=jdk/src/closed jdk/make/closed jdk/test/closed 
  hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install 
  sponsors pubs
  pull_default_tail=`echo ${pull_default} | sed -e 
  's@^.*://[^/]*/\(.*\)@\1@'`
  
  -John
 


Re: Round two - RFR (7152336): Enable OpenJDK builds on Windows with MinGW/MSYS

2012-06-27 Thread John Coomes
Tim Bell (tim.b...@oracle.com) wrote:
 I went over the open changes again and removed some debug code left in
 by mistake, updated copyright dates and fixed a few typos.  Here is an
 updated webrev:
 
  http://cr.openjdk.java.net/~tbell/7152336/webrev.01/
 
 These changes are building in both 32 and 64 bit mode on my Windows 7 
 system.
 
 jtreg test runs of the '-automatic -noshell' tests under test/java/lang 
 test/java/math test/java/util ran as expected (2 failures, both known 
 bugs).

I only looked at the hotspot changes, which are fine.
One minor request.  In hotspot/make/windows/makefiles/defs.make:

 215 else
 216   ifeq ($(USING_MINGW), true)
 217 ABS_OUTPUTDIR   := $(shell $(CD) $(OUTPUTDIR);$(PWD))
 218 ABS_BOOTDIR := $(shell $(CD) $(BOOTDIR);$(PWD))
 219 ABS_GAMMADIR:= $(shell $(CD) $(GAMMADIR);$(PWD))
 220 ABS_OS_MAKEFILE := $(shell $(CD) 
$(HS_MAKE_DIR)/$(OSNAME);$(PWD))/build.make
 221   else

You can append line 216 to 215, e.g.,

 215 else ifeq ($(USING_MINGW), true)

which eliminates some indentation and an endif, and I find easier to
read.

-John

 Thanks in advance for your review and feedback - I'd like to get these 
 changes in soon.
 
 Tim Bell
 
 
 On 06/13/12 22:31, Tim Bell wrote:
  Hello everyone-
 
  Kelly asked me to pick up on bug #/7152336 //Enable builds on Windows 
  with MinGW/MSYS/, and this email thread:
 
  http://mail.openjdk.java.net/pipermail/build-dev/2012-April/thread.html#6083
   
 
 
  As David pointed out, we will need at least one other bug # for the 
  hotspot changes.  That said, this is enough to get me started.
 
  Hi Volker:
 
  I have applied the patches originally from your posting.  Many thanks 
  for that:
  http://cr.openjdk.java.net/~simonis/MinGW_MSYS.v1/
 
  With a few modifications (keep cpio for non MinGW/Msys builds, keep 
  MKS as an option), the proposed changes are visible here for review:
 
http://cr.openjdk.java.net/~tbell/7152336/webrev.00/
 
  For reference, my test build log is visible here:
 
  http://cr.openjdk.java.net/~tbell/7152336/webrev.00/full_control_build_no_docs.log
   
 
 
  Additional test builds on JPRT (our internal build apparatus) verified 
  that I didn't regress the existing build.
 
  Abbreviated jtreg [1] testing on this build was successful:
 
  $ /d/tools/jdk8/7152336/windows-i586/bin/java -jar 
  /d/tools/jtreg-internal/jtreg/lib/jtreg.jar -automatic -noshell 
  test/java/lang test/java/math test/java/util
  Directory JTreport not found: creating
  Directory JTwork not found: creating
  Directory JTwork\scratch not found: creating
  Test results: passed: 698; failed: 1; error: 5
  Report written to D:\tools\jdk8\7152336\jdk\JTreport\html\report.html
  Results written to D:\tools\jdk8\7152336\jdk\JTwork
  Error: Some tests failed or other problems occurred.
 
  The failing test (java/lang/Math/WorstCaseTests.java) is due to a 
  known regression: 7174532 
  http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7174532 
  jdk/test/java/lang/Math/WorstCaseTests.java failing on x86
 
  The 5 error tests are all ignored until bug xxx (for some value of 
  x) is resolved.
 
  Thanks in advance for your review and feedback -
 
  Tim Bell
 
  [1]  http://openjdk.java.net/projects/code-tools/
 
 


Re: Building OpenJDK 6 on Solaris sparc

2012-06-26 Thread John Coomes
Weiqi Gao (weiqi...@gmail.com) wrote:
 Hi,
 
 I'm trying to build OpenJDK 6 and OpenJDK 7 on a variety of machines.
 I have encountered the following error while building OpenJDK 7
 (http://hg.openjdk.java.net/jdk7/jdk7) on Solaris sparc (SunOS cicada2
 5.10 Generic_139555-08 sun4u sparc SUNW,Sun-Blade-1000).  I'm using
 the suncc5.10 compiler and the lasted jdk1.6.0_32 from Oracle as the
 bootstrap JDK.
 
 I'm not sure what's the cause of this problem.  Can anyone shed some
 light on it?
 
 rm -f copy.o
 CC -DSOLARIS -DSPARC_WORKS -DSPARC -DPRODUCT -xF
 ...
 cg: assertion failed in file ../src/sparc/block_edges.cc at line 581
 cg: block_edges.accumulate_successors: bad state
 cg: 1 errors

Hi,

That's a bug in the compiler backend.  Make sure you have applied the
patches listed in the README-builds.html file:

http://hg.openjdk.java.net/jdk7/jdk7/raw-file/dada8003df87/README-builds.html#studio

-John


Re: Review for 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable

2012-02-09 Thread John Coomes
Erik Joelsson (erik.joels...@oracle.com) wrote:
 New webrev:
 http://cr.openjdk.java.net/~erikj/7141244/webrev.02/ 
 http://cr.openjdk.java.net/%7Eerikj/7141244/webrev.02/
 177 lines changed: 89 ins; 29 del; 59 mod; 3970 unchg
 
 Changes since last time:
 
 * Moved the , to after $(SPEC)
 * Changed comment in gcc/sparcWorks.make according to suggestion from 
 Fredrik.

Looks good.  One minor request:  in linux/makefiles/gcc.make, you
moved the setting of STRIP under the SPEC conditional.  Might as well
fold it into the CROSS_COMPILE_ARCH conditional that's already there.

-John

 On 2012-02-09 10:09, Erik Joelsson wrote:
 
  On 2012-02-09 03:51, David Holmes wrote:
  make/defs.make:
 
  + ifneq (,$(SPEC))
  +   include $(SPEC)
  + endif
 
  Having the blank first looks odd. I assume you aren't using -inlcude 
  because you want to see errors if SPEC is set but not found.
 
  I guess it's an unconscious habit from java where you rather do 
  .equals(something) to avoid NPE. I will switch it around. And the 
  assumption is correct. We used -include at first, but I figured that 
  we wanted to know if the include failed at least on the root level 
  Makefile.
  make/windows/makefiles/compile.make:
 
  The definitions of MT=mt.exe in each block for the different VS 
  versions seems redundant. If we factor this out is there any reason 
  not to group:
 
  CXX=cl.exe
  MT=mt.exe
  RC=rc.exe
  LD=link.exe
 
  together and use the same if (,$(SPEC)) approach?
 
  Grouping them together would certainly look nicer, but MT isn't set 
  for every possible compiler version. Not sure if that matters since we 
  don't support older versions anyway, right?
 
  As for testing for SPEC, this is nmake and the SPEC file is only 
  gnumake compatible. CXX, MT, RC and LD are sent in to nmake on the 
  command line from gnumake. They are then generated into local.make 
  which is in turn included by sub invocations of nmake. Sending in SPEC 
  as well seemed redundant to me, but we could send it in as a flag 
  signaling that configure should be in control. Wouldn't look obviously 
  better to me though. I'm open for suggestions.
 
  /Erik


Re: How to handle a merge problem

2012-01-31 Thread John Coomes
David Holmes (david.hol...@oracle.com) wrote:
 On 31/01/2012 2:50 PM, Pete Brunet wrote:
 ...
  Or maybe I should start from
  scratch, apply my patch and fix the issues that way.  I seem to remember
  that the one time I did have a problem applying a patch to fresh clone I
  was able to fix them.  -Pete
 
 Might be easiest depending on how many files are in conflict.

If you have committed changes and want to sync with the upstream repo,
the easiest way is to use the rebase extension (works best in hg 1.6
and later).  You have to enable rebase in your .hgrc file, then you
can run

hg pull --rebase

It will invoke your merge tool to resolve conflicts if necessary, and
move your changesets to tip.

Given that you've already pulled, you can still rebase your changesets
so they are at tip, but you have to identify them and provide them on
the command line.  See 'hg help rebase.'

-John

  On 1/30/12 8:56 PM, David Holmes wrote:
  Pete,
 
  On 31/01/2012 12:45 PM, Pete Brunet wrote:
  I just did the following:
  sh ./get_source.sh
 
  and got this:
  snip
  # cd ./jdk   hg pull -u
  pulling from http://hg.openjdk.java.net/jdk8/jdk8//jdk
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 563 changesets with 3123 changes to 2661 files (+1 heads)
  not updating: crosses branches (merge branches or update --check to
  force update)
  # exit code 0
 
  This shouldn't be possible. get_source will first clone the repos then
  do a hg pull (why? Given it just cloned it!)
 
  It may be that you were extremely unlucky and between the clone and
  the pull there was an integration push to the repo. Even so you
  shouldn't get multiple heads. ???
 
  How do I fix this?  I haven't found instructions on the various OpenJDK
  sites.
 
  Delete the jdk repo and start again is all I can suggested to get back
  to a sane state.
 
  David
  -
 
  Pete


Re: RFR: 7133124 Remove redundant packages from JAR command line

2012-01-29 Thread John Coomes
Dmitry Samersoff (dmitry.samers...@oracle.com) wrote:
 Kelly,
 
  The serialize checkins issue can be minimized some by using
  distributed SCMs (Mercurial, Git, etc)
 
 We have chosen a model:
 
 build-test-integrate
 
 but we may consider different approach:
 
 integrate-build-test-[backout if necessary]

In that model, you can never rely on the repository having any degree
of stability.  It may not even build at a given moment.

   Developer (A) integrate his changeset to an integration workspace
   Bot takes snapshot and start building/testing
   Developer (B) integrate his changeset to an integration workspace
   Bot takes snapshot and start building/testing
 
   if Job A failed, bot lock integration ws, restore it to pre-A state,
   apply B-patch. unlock ws.

Don't forget the trusting souls that pulled from the integration repo
after A inflicted the breakage:  they each waste time cleaning up a
copy of A's mess.

-John

 On 2012-01-29 23:52, Kelly O'Hair wrote:
  
  On Jan 29, 2012, at 10:23 AM, Georges Saab wrote:
  
 
  I'm missing something. How can everybody using the exact same system
  scale to 100's of developers?
 
  System = distributed build and test of OpenJDK
  
  Ah ha...   I'm down in the trenches dealing with dozens of different
  OS's arch's variation machines.
  You are speaking to a higher level, I need to crawl out of the basement.
  
 
  Developers send in jobs 
  Jobs are distribute across a pool of (HW/OS) resources
  The resources may be divided into pools dedicated to different tasks
  (RE/checkin/perf/stress)
  The pools are populated initially according to predictions of load and
  then increased/rebalanced according to data on actual usage
  No assumptions made about what exists on the machine other than HW/OS
  The build and test tasks are self sufficient, i.e. bootstrap themselves 
  The bootstrapping is done in the same way for different build and test
  tasks
  
  Understood. We have talked about this before.  I have also been on the
  search for the Holy Grail. ;^)
  This is why I keep working on JPRT.
  
 
  The only scaling aspect that seems at all challenging is that the
  current checkin system is designed to serialize checkins in a way that
  apparently does not scale -- here there are some decisions to be made
  and tradeoffs but this is nothing new in the world of Open community
  development (or any large team development for that matter)
  
  The serialize checkins issue can be minimized some by using distributed
  SCMs (Mercurial, Git, etc)
  and using separate forests (fewer developers per source repository means
  fewer merge/sync issues)
  and having an integrator merge into a master. This has proven to work in
  many situations but it
  also creates delivery to master delays, especially if the integration
  process is too heavyweight.
  
  The JDK projects has been doing this for a long time, I'm sure many
  people have opinions as to how
  successful it is or isn't.
  
  It is my opinion that merges/syncs are some of the most dangerous things
  you can do to a source base,
  and anything we can do to avoid them is usually goodness, I don't think
  you should scale this without some
  very great care.
  
 
 
  And that one system will naturally change over time too, so unless
  you are able to prevent all change
  to a system (impossible with security updates etc) every use of that
  'same system' will be different.
 
  Yes, but it is possible to control this update and have a staging
  environment so you know that a HW/OS update will not break the
  existing successful build when rolled out to the build/test farm.
  
  Possible but not always easy. The auto updating of everything has
  increased significantly over the years,
  making it harder to control completely.
  
  I've been doing this buildtest stuff long enough to never expect
  anything to be 100% reliable.
  Hardware fails, software updates regress functionality, networks become
  unreliable, humans trip over
  power cords, virus scanners break things, etc. It just happens, and
  often, it's not very predictable or reproducible.
  You can do lots of things to minimize issues, but at some point you just
  have to accept a few risks because
  the alternative just isn't feasible or just can't happen with the
  resources we have.
  
  -kto
  
  
 
 
 -- 
 Dmitry Samersoff
 Java Hotspot development team, SPB04
 * There will come soft rains ...


Re: Request for review: 7036525 Disable alternative source mechanism for OPENJDK builds

2011-05-05 Thread John Coomes
David Holmes (david.hol...@oracle.com) wrote:
 Okay now that my brain is functioning again lets see if it is third-time 
 lucky:
 
 http://cr.openjdk.java.net/~dholmes/7036525/webrev.2/
 
 This reverts things back to my original webrev where we set 
 HS_ALT_SRC_REL to NO_SUCH_PATH. It has to be a non-existent path 
 otherwise it will appear in the generated definitions for Src_Dirs_I and 
 Src_Dirs_V.
 
 The user can override this by setting OPENJDK=true and 
 HS_ALT_SRC_REL=whatever as variables on the make invocation eg:
 
 gmake OPENJDK=true HS_ALT_SRC_REL=/my/dist/src product1

Sure, looks good to me.

-John


Re: Request for review: 7036525 Disable alternative source mechanism for OPENJDK builds

2011-05-04 Thread John Coomes
David Holmes (david.hol...@oracle.com) wrote:
 John Coomes said the following on 05/04/11 02:37:
  David Holmes (david.hol...@oracle.com) wrote:
  I've just made the change as John suggested and to be honest I don't 
  know why I didn't think of that myself. I do see your point though, by 
  setting it the same the build will always use the ALT_SRC in the OpenJDK 
  case - but this will be fine because it is the same as COMMON_SRC. This 
  is only used to generate the Makefiles during the buildtree phase so I 
  don't think it is really a concern either way.
  
  FWIW, I prefer the change you've made, but don't feel that strongly
  about it.
  
  To be honest I'm doubting the whole rationale for this change as it 
  means that an OPENJDK build will never use the alt-src mechanism, when 
  according to the comments alt-src was also intended to be used by others 
  for introducing alternative code into their builds/distributions. In 
  those cases you may well want both alt-src and OPENJDK (given that 
  OPENJDK could be being set at the top-level JDK makefile).
  
  IMHO, better if an OPENJDK build doesn't use alt-src, at least by
  default.  And I suspect you can override HS_ALT_SRC_REL from the gmake
  command line, even when OPENJDK==true (haven't tried it, though).
 
 No. Unless you use -e a variable's value from the environment will be 
 overridden by an explicit assignment in the Makefile.  ...

True about the environment, but I meant this:

gmake product OPENJDK=true HS_ALT_SRC_REL=my_impl

which will override the assignment within the make file
(http://www.gnu.org/s/hello/manual/make/Overriding.html#Overriding).

   ... Which means that 
 the better fix here is:
 
 + 36 ifndef HS_ALT_SRC_REL
37   ifneq ($(OPENJDK),true)
38 # This needs to be changed to a more generic location, but we 
 keep it as this
39 # for now for compatibility
40
41 HS_ALT_SRC_REL=src/closed
42   else
43 HS_ALT_SRC_REL=$(HS_COMMON_SRC_REL)
44   endif
 + 45 endif

This version treats HS_ALT_SRC_REL differently from other vars, in
that a value from the environment overrides the assignment in the
makefile, even without the -e option to gmake.

-John


Re: Request for review: 7036525 Disable alternative source mechanism for OPENJDK builds

2011-05-03 Thread John Coomes
David Holmes (david.hol...@oracle.com) wrote:
 Hi John,
 
 Fresh webrev at:
 
 http://cr.openjdk.java.net/~dholmes/7036525/webrev.1/

Looks good to me.

-John

 David Holmes said the following on 04/30/11 10:09:
  Thanks John. Currently sitting here shaking my head is disbelief. I'll 
  try this again.
  
  David
  
  John Coomes said the following on 04/30/11 03:47:
  David Holmes (david.hol...@oracle.com) wrote:
  http://cr.openjdk.java.net/~dholmes/7036525/webrev/
 
  Simple but crude. If OPENJDK is defined then the Hotspot alternative 
  source mechanism is effectively disabled by checking for a 
  non-existent path. This allows people using the alt-src mechanism to 
  select which type of build they want in a way that is consistent with 
  how builds of OPENJDK are done in the rest of the JDK.
 
  Tested by checking the errorReporter.cpp location in builds 
  with/without OPENJDK set, and with/without src/closed present.
 
  This will be pushed into hotspot-rt/hotspot for hs21-b11
 
  Hi David,
 
38 ifneq ($(OPENJDK),true)
39   HS_ALT_SRC_REL=src/closed
40 else
41   HS_ALT_SRC=NO_SUCH_PATH
42 endif
43 HS_COMMON_SRC=$(GAMMADIR)/$(HS_COMMON_SRC_REL)
44 HS_ALT_SRC=$(GAMMADIR)/$(HS_ALT_SRC_REL)
 
  The 'if' block sets HS_ALT_SRC_*REL*, but the else block sets
  HS_ALT_SRC (no *REL*), and that is overwritten on line 44.
 
  I think it works because after line 44, HS_ALT_SRC == $(GAMMADIR)/,
  but I doubt that was intended.
 
  You could change line 41 to
 
  HS_ALT_SRC_REL=$(HS_COMMON_SRC_REL)
 
  Then when OPENJDK=true, HS_ALT_SRC==HS_COMMON_SRC, and you don't have
  to rely on NO_SUCH_PATH.
 
  -John


Re: Request for review: 7036525 Disable alternative source mechanism for OPENJDK builds

2011-05-03 Thread John Coomes
David Holmes (david.hol...@oracle.com) wrote:
 Hi Keith,
 
 Keith McGuigan said the following on 05/03/11 02:13:
  On Apr 29, 2011, at 1:47 PM, John Coomes wrote:
  
  David Holmes (david.hol...@oracle.com) wrote:
  http://cr.openjdk.java.net/~dholmes/7036525/webrev/
 
  Simple but crude. If OPENJDK is defined then the Hotspot alternative
  source mechanism is effectively disabled by checking for a non-existent
  path. This allows people using the alt-src mechanism to select which
  type of build they want in a way that is consistent with how builds of
  OPENJDK are done in the rest of the JDK.
 
  Tested by checking the errorReporter.cpp location in builds
  with/without OPENJDK set, and with/without src/closed present.
 
  This will be pushed into hotspot-rt/hotspot for hs21-b11
 
  Hi David,
 
   38 ifneq ($(OPENJDK),true)
   39   HS_ALT_SRC_REL=src/closed
   40 else
   41   HS_ALT_SRC=NO_SUCH_PATH
   42 endif
   43 HS_COMMON_SRC=$(GAMMADIR)/$(HS_COMMON_SRC_REL)
   44 HS_ALT_SRC=$(GAMMADIR)/$(HS_ALT_SRC_REL)
 
  The 'if' block sets HS_ALT_SRC_*REL*, but the else block sets
  HS_ALT_SRC (no *REL*), and that is overwritten on line 44.
 
  I think it works because after line 44, HS_ALT_SRC == $(GAMMADIR)/,
  but I doubt that was intended.
 
  You could change line 41 to
 
  HS_ALT_SRC_REL=$(HS_COMMON_SRC_REL)
 
  Then when OPENJDK=true, HS_ALT_SRC==HS_COMMON_SRC, and you don't have
  to rely on NO_SUCH_PATH.
  
  I'd prefer to leave it as NO_SUCH_PATH.  That way tests for the 
  existence of that directory (or files in those directories) will 
  correctly fail and won't mistakenly indicates that alt-srcs exist.  I 
  believe there are a number of tests like that already, but I'll bet it 
  currently works fine (unintentionally) if HS_ALT_SRC == HS_COMMON_SRC.
 
 I've just made the change as John suggested and to be honest I don't 
 know why I didn't think of that myself. I do see your point though, by 
 setting it the same the build will always use the ALT_SRC in the OpenJDK 
 case - but this will be fine because it is the same as COMMON_SRC. This 
 is only used to generate the Makefiles during the buildtree phase so I 
 don't think it is really a concern either way.

FWIW, I prefer the change you've made, but don't feel that strongly
about it.

 To be honest I'm doubting the whole rationale for this change as it 
 means that an OPENJDK build will never use the alt-src mechanism, when 
 according to the comments alt-src was also intended to be used by others 
 for introducing alternative code into their builds/distributions. In 
 those cases you may well want both alt-src and OPENJDK (given that 
 OPENJDK could be being set at the top-level JDK makefile).

IMHO, better if an OPENJDK build doesn't use alt-src, at least by
default.  And I suspect you can override HS_ALT_SRC_REL from the gmake
command line, even when OPENJDK==true (haven't tried it, though).

-John


Re: Request for review: 7036525 Disable alternative source mechanism for OPENJDK builds

2011-04-29 Thread John Coomes
David Holmes (david.hol...@oracle.com) wrote:
 http://cr.openjdk.java.net/~dholmes/7036525/webrev/
 
 Simple but crude. If OPENJDK is defined then the Hotspot alternative 
 source mechanism is effectively disabled by checking for a non-existent 
 path. This allows people using the alt-src mechanism to select which 
 type of build they want in a way that is consistent with how builds of 
 OPENJDK are done in the rest of the JDK.
 
 Tested by checking the errorReporter.cpp location in builds 
 with/without OPENJDK set, and with/without src/closed present.
 
 This will be pushed into hotspot-rt/hotspot for hs21-b11

Hi David,

  38 ifneq ($(OPENJDK),true)
  39   HS_ALT_SRC_REL=src/closed
  40 else
  41   HS_ALT_SRC=NO_SUCH_PATH
  42 endif
  43 HS_COMMON_SRC=$(GAMMADIR)/$(HS_COMMON_SRC_REL)
  44 HS_ALT_SRC=$(GAMMADIR)/$(HS_ALT_SRC_REL)

The 'if' block sets HS_ALT_SRC_*REL*, but the else block sets
HS_ALT_SRC (no *REL*), and that is overwritten on line 44.

I think it works because after line 44, HS_ALT_SRC == $(GAMMADIR)/,
but I doubt that was intended.

You could change line 41 to

HS_ALT_SRC_REL=$(HS_COMMON_SRC_REL)

Then when OPENJDK=true, HS_ALT_SRC==HS_COMMON_SRC, and you don't have
to rely on NO_SUCH_PATH.

-John


(Fwd) review request (S): 7037250 cscope.make is silently broken

2011-04-29 Thread John Coomes
Mea culpa, forgot to ask for permission, so am asking for forgiveness
instead.  This makefile change has been pushed to the hotspot-gc repo.
It has no effect on the product, simply fixes cscope database
generation.

-John

--- start of forwarded message ---
From:  John Coomes john.coo...@oracle.com
To: hotspot-gc-...@openjdk.java.net
Subject: review request (S): 7037250 cscope.make is silently broken
Date: Sat, 16 Apr 2011 13:38:45 -0700

I'd appreciate reviews the fix for

7037250: cscope.make database generation is silently broken

I recently resumed using cscope and found cscope.make was rather
broken.  Details are in the webrev:

http://cr.openjdk.java.net/~jcoomes/7037250-cscope/

Thanks for any comments.

-John
--- end of forwarded message ---


Re: Need reviewer: change sanity check on make 3.81

2011-01-28 Thread John Coomes
Kelly O'Hair (kelly.oh...@oracle.com) wrote:
 Need reviewer: change sanity check on make 3.81
 
 7014301: Change make 3.81 sanity check to a fatal, 3.81 is needed now
 
 Use of gnu make 3.81 or newer is required now, which should be readily  
 available on all platforms.

I recommend a big heads-up.  The solaris gnumake versions in
/java/devtools are 3.78.1 (can someone update them?), and solaris 10
ships with 3.80.

-John

 The patch is rather trivial:
 
 diff --git a/make/common/shared/Sanity.gmk b/make/common/shared/ 
 Sanity.gmk
 --- a/make/common/shared/Sanity.gmk
 +++ b/make/common/shared/Sanity.gmk
 @@ -255,10 +255,10 @@
   MAKE_CHECK :=$(call CheckVersions,$(MAKE_VER),$(REQUIRED_MAKE_VER))
   sane-make:
  @if [ $(MAKE_CHECK) != same -a $(MAKE_CHECK) !=  
 newer ]; then \
 - $(ECHO) WARNING: The version of make being used is older  
 than \n \
 + $(ECHO) ERROR: The version of make being used is older than  
 \n \
the required version of '$(REQUIRED_MAKE_VER)'.  
 \n \
The version of make found was '$(MAKE_VER)'. \n \
 - $(WARNING_FILE) ; \
 + $(ERROR_FILE) ; \
  fi
 
   ##
 
 
 
 -kto



Re: Need reviewer: NONFCS_BUILD_INFO to add to the non-fcs version string

2010-11-24 Thread John Coomes
Kelly O'Hair (kelly.oh...@oracle.com) wrote:
 Dang... just shoot me now. :^(
 
 Try this:
http://cr.openjdk.java.net/~ohair/openjdk7/nonfcs-version/webrev/
 
 Sorry about that.

Aren't we using the term GA (general availability) instead of FCS
these days?

Aside from that, looks fine.

-John

 On Nov 24, 2010, at 11:28 AM, Mark Wielaard wrote:
 
  On Wed, 2010-11-24 at 11:19 -0800, Kelly O'Hair wrote:
  I need a reviewer for this change:
 
  6987107: Add NONFCS_BUILD_INFO variable to add to but not modify
  MILESTONE in version string
  http://javaweb.sfbay.sun.com/~ohair/webrevs/jdk7/nonfcs-version/webrev/
 
  Bit hard to review if the host isn't reachable :)
  Could you just attach the patch to your email,
  or post it on some publicly reachable machine?
 
  Thanks,
 
  Mark
 
 



Re: Recommended GCC version?

2008-06-19 Thread John Coomes
Mario Torre ([EMAIL PROTECTED]) wrote:
 Il giorno lun, 31/03/2008 alle 18.37 +0200, Clemens Eisserer ha scritto:
  Hello,
  
  I wonder which version of GCC is recommended for building OpenJDK?
  4.3 will probably not work out-of-the-box, should I downgrade to 4.2 or 4.1?
  ...
  Thanks a lot, lg Clemens
 
 I had to steal a couple of patches from icedtea to be able to build
 hotspot with gcc 4-3, works fine otherwise.

FWIW, the fix for

6681796: hotspot build failure on gcc 4.2.x (ubuntu 8.04) w/ openjdk 6

went into the hotspot runtime repository a few days ago:

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/f139919897d2

It should make its way up to jdk7/jdk7/hotspot fairly soon for jdk7
build 30 or 31.  I expect that will allow hotspot to build on current
linux distros, but I haven't tried yet.

-John



jdk7/hotspot-gc/hotspot: 9876543 make gc better

2007-11-14 Thread john . coomes
Changeset: e44754018a19
Author:jcoomes
Date:  2007-11-14 16:53 -0800
URL:   http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e44754018a19

9876543 make gc better

! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp



jdk7/hotspot-gc/hotspot: 9876543 make gc better (fix comment)

2007-11-14 Thread john . coomes
Changeset: 98a807091399
Author:jcoomes
Date:  2007-11-14 17:05 -0800
URL:   http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/98a807091399

9876543 make gc better (fix comment)

! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp