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

2012-02-09 Thread Erik Joelsson


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: Review for 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable

2012-02-09 Thread Erik Joelsson

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.


Haven't changed anything regarding the nmake files.

/Erik

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: Review for 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable

2012-02-09 Thread Fredrik Öhrström
Looks good!

//Fredrik

- erik.joels...@oracle.com skrev:

 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.
 
 Haven't changed anything regarding the nmake files.
 
 /Erik
 
 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: Review for 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable

2012-02-09 Thread David Holmes

Added back runtime to the cc list

On 9/02/2012 7:33 PM, Erik Joelsson 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.

Haven't changed anything regarding the nmake files.


That's okay - it was just an observation.

Seems okay to me. Let's see if we can get Kelly or someone else from HS 
to comment.


David
-


/Erik

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: Review for 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable

2012-02-09 Thread Kelly O'Hair

The only issue I see is that it's using cygpath -m -a   and not   cygpath -s -m 
-a
which I think means that the path could have spaces in it.

Otherwise, looks fine.

-kto

On Feb 9, 2012, at 1:33 AM, Erik Joelsson 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.
 
 Haven't changed anything regarding the nmake files.
 
 /Erik
 
 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: Is anyone able to build on Win 7

2012-02-09 Thread Kelly O'Hair

Does this article provide any help:

https://kc.mcafee.com/corporate/index?page=contentid=KB55075actp=searchviewlocale=en_USsearchid=1328818133782

It suggests that rebase'ing the CYGWIN DLL's will help. Seems a bit strange to 
me, just passing it on.

-kto

On Jan 25, 2012, at 5:10 PM, Pete Brunet wrote:

 I just had success with the following changes:
 - downgraded from cygwin 1.7.9 (with bash 4.1.10) to 1.7.0 (with bash
 3.2.49)
 - changed ...\jdk\make\docs\Makefile line 74
 
 ifeq ($(ARCH_DATA_MODEL),64)
  MAX_VM_MEMORY = 1024
 else
  MAX_VM_MEMORY = 1024 --- This was 512
 endif
 
 I've only done one build and in prior builds had other issues besides
 the memory problem, i.e. fork and error 126, but there's always hope.
 
 If others could report their W7 configurations and whether or not there
 were problems, that would be helpful.
 
 Pete
 
 On 1/25/12 6:17 PM, Kelly O'Hair wrote:
 Sorry guys, I don't have the time or priority to track this down.
 Official builds are still happening on Windows XP and Windows 2003 X64 and 
 these
 problems are not being seen on those systems yet... 
 although we recently have been visited by the McAfee plague so maybe it's 
 just a matter of time. ;^(
 
 Someone with some strong Windows experience needs to run this to ground.
 We do need this to work, eventually.
 
 -kto
 
 On Jan 25, 2012, at 9:09 AM, Pete Brunet wrote:
 
 I started W7 in safe mode and the build failed with a fork failure.  I
 think that eliminates things in the BLODA list.  If anyone out there is
 building OK on W7 please send your configuration, e.g. as shown below. 
 Maybe that will suggest a different version of cygwin or bash.  -Pete
 
 On 1/25/12 9:55 AM, Pete Brunet wrote:
 Thanks Volker, I was thinking I'm going to have to try using XP in a
 VM.  My W7 config is very close to yours (make 3.81 instead of 3.82).
 
 W7 Pro, 64 bit, SP1
 Intel Core 2 Duo, P8700, 2.53 GHz, 8 GB RAM
 CYGWIN_NT-6.1-WOW64 Bevo 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 Cygwin
 GNU bash, version 4.1.10(4)-release (i686-pc-cygwin)
 GNU Make 3.81
 
 Pete
 
 On 1/25/12 9:06 AM, Volker Simonis wrote:
 Hi Peter,
 
 glad to see that other have the same problems:)
 
 But seriously, on Windows 7 I'm currently experiencing the same
 massive build problems and I'm not sure what the root cause of these
 problems is.
 
 I found the following bug which exactly describes the problems I'm facing:
 
 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6903517
 
 Among others, these are:
 
 - rm: cannot remove directory `META-INF': Directory not empty
 - error:  cannot create example2.html: Permission denied
 - [javac] 
 C:\Software\OpenJDK\jdk8\langtools\src\share\classes\com\sun\tools\javac\util\SharedNameTable.java:40:
 error: error while writing SharedNameTable:
 c:\Software\OpenJDK\output_amd64\langtools\build\bootstrap\classes\com\sun\tools\javac\util\SharedNameTable.class
 (Access is denied)
 
 but I also saw the 'out of memory' and 'for' problems mentioned by you.
 
 The description of bug 6903517 references the Big List of Dodgy Apps
 (http://cygwin.com/faq/faq.using.html#faq.using.bloda). This is a list
 in the Cygwin FAQ which lists applications like Virus Scanners which
 can interfere with Cygwin in an unpredictable way. An indeed the
 Windows 7 box on which I observe the problems has some of them
 installed (e.g. McAffe {Agent, GTI Proxy Agent, Intrusion Prevention,
 VirusScan Enterprise, AntySpywaare Enterprise} to name just a few).
 
 On the other hand, on the same Windows 7 box I have a virtual machine
 running inside VirtualBox  with WindowsXP which has the same McAffe
 software installed and it is running without any problems. The OpenJDK
 build always succeeds in the virtual machine!
 
 So I'm not quite sure of this is:
 - a problem of some additional software which is running on my Windows
 7 box and interferes with Cygwin
 - a general Windows7 problem
 - a problem of the specific Cygwin version I'm using
 - a problem of Cygwin running on 64-bit Windows 7
 
 I'll try to further narrow down the problem, but of course any hints
 are highly welcome (unfortunately I can't easily get rid of the McAffe
 stuff without losing my job, so please don't advise this:)
 
 Regards,
 Volker
 
 PS: below you can find the exact versions of the software/hardware I'm 
 using:
 
 64-bit Windows 7, SP 1
 Dual Core Intel i7, 8GB RAM
 
 Cygwin (output of uname -a):
 CYGWIN_NT-6.1-WOW64 WDFN00299915A 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 
 Cygwin
 bash 4.1.10(4)  // installed by Cygwin setup.exe
 make 3.82  // compiled by myself
 
 In the Virtual box VM I have the following system:
 
 64-bit Windows XP Professional Version 2003 SP 2
 
 Cygwin (output of uname -a):
 CYGWIN_NT-5.2-WOW64 WDFV00248216A 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 
 Cygwin
 bash 4.1.10(4)  // installed by Cygwin setup.exe
 make 3.82  // compiled by myself
 
 
 On Tue, Jan 24, 2012 at 5:52 PM, Pete Brunet peter.bru...@oracle.com 
 wrote:
 Is anyone able to build on 

Re: RFR 7142950: jdk7u cannot bootstrap Mac OS build [macosx]

2012-02-09 Thread Michael McMahon

Hi,

http://cr.openjdk.java.net/~michaelm/7142950/jdk/webrev.2/

This is an updated webrev based on the contribution/suggestion from 
Scott Kovatch.
It changes the build image directories on Mac, to have the same 
format/directory structure
as the other platforms (ie. it removes the Contents/Home stuff). That 
directory structure
required by Mac bundles is now generated in specific bundle directories 
and these
are used by the install. A consequence of this change is that anyone who 
has adjusted
scripts that used the built j2sdk-image, or j2re-image to know about the 
mac specific paths will have to change

that back again.

This version of the change is almost agnostic on the os.arch setting. 
The only dependency
is on 'src/macosx/bin/amd64/jvm.cfg'. That will have to be renamed to 
x86_64/jvm.cfg

when 'os.arch' is changed. No other change is required.

With this change, jdk only, and incremental builds should work again.
If you are using the previous output from a control build as bootstrap 
or import jdk
for a subsequent jdk only build, then it is possible you could run into 
the build problem
described in 6967648. The workaround is to rename the top-level build 
directory to some

other name before doing the jdk build.

Thanks,
Michael


On 06/02/12 23:21, Scott Kovatch wrote:

On Feb 6, 2012, at 2:31 PM, Michael McMahon wrote:


There are a few problems with the Mac build at the moment.

1. If SKIP_BOOT_CYCLE=false then the build fails, due to two problems:-
1) top level Makefile doesn't know about Mac OS image directory 
structure

2) it also fails due to problem 2. below
2. General bootstrapping problem. The build currently cannot use 
itself as

the bootstrap JDK due to an assumption in the framework classes that
os.arch is x86_64, whereas we currently set it to amd64. The 
change is to
fix that code to expect amd64. There is a related question then 
about what the
correct value for os.arch should be. I'd like to raise this in a 
separate discussion

and hopefully fix these build problems independently of that.
I was going to propose that we fix the image directory issues by 
building into the image directories the same way on all platforms and 
have the mac build copy the image directories into j2sdk-bundle. 
(7133768) I'm pretty sure that even with this change you can't build 
rt.jar because the jar tool gets moved out from underneath the running 
build when the bundle is constructed.


I don't think your changes would interfere with my proposed fix for 
7133768, though. And, the other changes for generating the folder name 
dynamically are very much welcome.


-- Scott K.


Scott Kovatch
scott.kova...@oracle.com
Santa Clara/Pleasanton, CA





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