something wrong with hotspot builds in build-infra

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Wed Oct 17 12:33:19 PDT 2012


On 2012-10-17 18:11, Kelly O'Hair wrote:
> Something called fixpath.exe is failing when doing the adlc.make nmake makefile in hotspot.
>
>
"fixpath" is the new name of "uncygdrive", since it now supports msys as 
well as cygwin. It will take a path such as /cygdrive/c/mydir [cygwin] 
or /c/mydir [msys] and convert it to c:\mydir, and then it will call the 
executable named as the first (non-option) argument.

So basically on cygwin configure will set 
CC=/cygdrive/c/mydir/build/fixpath.exe -c /cygdrive/c/msdev/bin/cl.exe
The -c to fixpath means "use cygwin mode".

I've seen build problems before with hotspot producing compile lines 
where fixpath is missing the first argument to 
/cygdrive/c/msdev/bin/cl.exe, so it seems we're trying to compile with 
fixpath. This has typically been due to a problem of properly locating 
the cl.exe compiler. Can you check the configure output and see if 
cl.exe have been located and found in the proper place?

However, after the msys fixes, we now start with an argument -c or -m, 
but this seems to be missing as well here, which seems very strange. Do 
you have some mismatch between the hotspot repo and the top-level repo?

If you look at the generated spec.gmk, what does the line CC say?

> This never was an issue before, what has changed here?
I'm guessing either msys support or the cl.exe dection rewrite.
>
> This failure will hold up any integration of the build-infra work into jdk8/build

I realize that. Overall, I feel that we have a sub-optimal workflow for 
pushing stuff into mainline. For pushing to mainline, we should declare 
a point in the source code at which we think the code is good enough to 
go into mainline, try it out on JPRT, make a webrev, and then only make 
changes that are needed to fix issues found by JPRT or the code review.

On the other hand, we still need to keep development going, and since 
the producure above can take days or in worst case weeks, like the 
latest round, we can't just freeze build-infra.

I don't have a good suggestion here. Is it possible to work with 
branches in mercurial? Can we set a tag in mercurial and then work with 
a set of patches for the changes needed from that tag?

/Magnus



More information about the build-infra-dev mailing list