State of the build on Windows?
Kelly O'Hair
Kelly.Ohair at Sun.COM
Mon Jul 16 19:29:52 UTC 2007
Ted Neward wrote:
>> See the Build README:
>>
>> https://openjdk.dev.java.net/source/browse/*checkout*/openjdk/jdk/trunk/RE
>> ADME-builds.html
>>
> That's the README, all right. :-)
>
>> See the BUILD README. For sure you need the cygwin 'make', awk, ksh, and
>> more, the list should be in the openjdk build readme.
>> I myself just download all of cygwin, which takes a long time but
>> then I never have to worry about not having something
>>
> I guess I was assuming that the list there wasn't a comprehensive list,
> since there seemed to be a few things used in the build scripts that isn't
> on that list. (I can't point to anything now, of course, this was just an
> impression I got scanning through the build files.)
It's hard to come up with a complete list, it's like having a complete list
of all the Linux packages needed, very hard to nail down.
If you see missing items, let me know and I'll file a bug to fix the README.
>
>> Download a patched cygwin make binary from
>> http://www.cmake.org/files/cygwin/make.exe
>>
> Done, thanks for the link. It reports .81, is that what it should report?
Not sure. If it works, it works, if it doesn't you won't get past the sanity.
It will say something about a bad make rule because it sees the : in a
C:/... path as a makefile target termination. Dies quickly.
>
>> And this is important: Start your 'make' from a cygwin shell window, NOT a
>> Windows command window.
>>
> Been doing that. What would also be nice is to know what env vars should be
> set inside the Cygwin bash window; is there a definitive list of those, as
> well? Or are those what's inside the shell script that the README suggests
> to run?
What the shell script suggests, but the README is accurate even without
using the shell script.
Most settings (except PATH, LIB, INCLUDE) can just be passed in on the
GNU make line, e.g. make ALT_BOOTDIR=C:/jdk1.6.0 ALT_...
they don't have to be set in the environment, it's up to you.
>
>> That is how the binary plugs are delivered right now, a jdk7 image.
>> We are working on sparse binary plugs.
>>
> Ah... OK, that makes more sense. By the way, check out
> http://www.geocities.com/SiliconValley/5806/implib32.htm for a utility that
> will create an import library out of a DLL; it's freeware, but it does
> require that you have Visual C++ 2.x/4.x (which is very old compared to
> VS2003) on your path. (It uses DUMPBIN.EXE and LIB.EXE, both of which are in
> the VS2003 release.) Just run it against t2k.dll, and I *think* we're good
> to go for now. (Obviously I can't try it until I get past 'make sanity',
> either. ;-) )
Like I said, I won't be trying this, so please report back if it works.
Out plan is to get rid of t2k.lib, or deliver it in the new binary plugs.
I looked at this DLL-.LIB conversion, gave me the creeps, but I'm not
a windows binary format expert, I'm a Unix Elf binary format kind of guy. ;^)
>
>> If you can create a .lib file from a .dll, that should work, I didn't
>> spend
>> much time looking into this idea, wasn't sure how reliable it was.
>>
> Assuming all that's needed there is the import definitions for the DLL
> itself (which is usually the case, given a .lib/.dll pairing like that),
> then we should be good to go, but obviously I can't say that for certain
> until I've built with it. Maybe Dan can have a go at it while I get past the
> other roadblocks...? (Dan, email me if you can't get the implib32 tool to
> work; I successfully generated a .lib for it, so I can mail that to you if
> you need it. I don't want to send it to the list "just in case" of licensing
> issues.)
>
>> I'm wondering if you have read the right README. What README are you
>> refering too?
>>
> Yep, that's the one. I just got thrown off by a few issues along the way.
>
If you have specific corrections for the README, please post them
separately. I'll see what I can do, but the README isn't horrible high
on my priority list right now.
-kto
> Ted Neward
> Java, .NET, XML Services
> Consulting, Teaching, Speaking, Writing
> http://www.tedneward.com
>
>
>> -----Original Message-----
>> From: Kelly.Ohair at Sun.COM [mailto:Kelly.Ohair at Sun.COM]
>> Sent: Sunday, July 15, 2007 10:11 AM
>> To: Ted Neward
>> Cc: build-dev at openjdk.java.net
>> Subject: Re: State of the build on Windows?
>>
>> See the Build README:
>>
>>
>> https://openjdk.dev.java.net/source/browse/*checkout*/openjdk/jdk/trunk/RE
>> ADME-builds.html
>>
>> A few comments below.
>>
>> Ted Neward wrote:
>>> You're right--I didn't give you much to go on. Here's where I'm at right
>>> now.
>>>
>>> I pulled down the latest SVN sources, fresh checkout from the trunk.
>>>
>>> I have MSVS 2003 installed on the box, no problems there.
>>>
>>> I can build the Hotspot JVM itself using the hotspot build files, no
>>> problems there with any of the debug/fastdebug/product
>>> tiered/core/compiler1/compiler2 combinations. Everybody happy.
>>>
>>> Trying to build the larger build (OpenJDK as a whole) yields problems.
>>>
>>> I had Cygwin on my system, with (I think) all the tools I needed from
>> there
>>> as part of the install. (Is there a definitive list? I've seen some
>>> what-seem-to-be-conflicting lists.)
>> See the BUILD README. For sure you need the cygwin 'make', awk, ksh, and
>> more, the list should be in the openjdk build readme.
>> I myself just download all of cygwin, which takes a long time but
>> then I never have to worry about not having something
>>
>>> I pulled down GNU Make 3.80, built it using MSVC 2003, and both its
>>> "batched" and "cygwin" modes gave me problems, the first with
>> CreateProcess
>>> failures, the second with shell execution failures. I think this is a
>> red
>>> herring, which is why I'm not giving you the lists of error reports.
>>>
>> You should not need to build GNU make, however there is an issue with 3.80
>> on Windows where it doesn't work, due to it not accepting C:/ style paths.
>> See
>> http://weblogs.java.net/blog/kellyohair/archive/2007/01/jdk_builds_on_w.ht
>> ml
>> Download a patched cygwin make binary from
>> http://www.cmake.org/files/cygwin/make.exe
>>
>> And this is important: Start your 'make' from a cygwin shell window, NOT a
>> Windows command window.
>>
>>
>>> Interestingly, I don't even get to the t2k.lib problem, because when I
>>> pulled down the binary plugs for Windows, I got what appears to be a
>>> complete JDK 7 build, and *not* the necessary pieces to build it.
>>>
>> That is how the binary plugs are delivered right now, a jdk7 image.
>> We are working on sparse binary plugs.
>>
>>> By the way, as a workaround, I *think* one can use the import library
>> tool
>>> that ships with MSVS2003 to build the t2k.lib (if it's just an import
>>> library for t2k.dll) to get around this problem--this is what I was
>> trying
>>> to verify when I ran into the larger issues.
>> If you can create a .lib file from a .dll, that should work, I didn't
>> spend
>> much time looking into this idea, wasn't sure how reliable it was.
>>
>>> I'm hoping that Dan (or anyone else who has successfully built the
>> Windows
>>> build) can help walk me through some of the setup and build issues...? I
>>> realize it's a lot to ask, but I'm hoping to take the experiences here
>> and
>>> document them all in a white paper for popular consumption.
>>>
>> Look at the BUILD Readme first. Then get 'make sanity' to pass.
>> Unfortunately without a t2k.lib, you won't get past the sanity check.
>>
>>> So I guess my questions, in order, are:
>>> (*) Do we have a complete list of tools necessary to build on Windows?
>> So I
>>> can verify I have all the tools necessary?
>>> (*) Can somebody send me a GNU Make for Windows that works for them, so
>> I
>>> can make sure it's not my weirdo-built version that's breaking?
>>> (*) Can somebody please verify that the version of the binary plugs for
>>> Window on the Sun site is correct and suitable for building? If it is,
>> can
>>> you send me the URL to pull it down (because I obviously grabbed the
>> wrong
>>> one)? If it's not, send me one that is?
>>> (*) If I need to customize my build environment, is
>>> j2se/make/jdk_generic_profile.sh the file to modify, or should I create
>> a
>>> customized one (based on jdk_generic_profile.sh) and use that? What's
>> going
>>> to work best with future changes to the build infrastructure?
>>>
>>> I've read the README several times, but I find myself still stuck. :-/
>> I'm wondering if you have read the right README. What README are you
>> refering too?
>>
>> -kto
>>
>>> Ted Neward
>>> Java, .NET, XML Services
>>> Consulting, Teaching, Speaking, Writing
>>> http://www.tedneward.com
>>>
>>>> -----Original Message-----
>>>> From: Kelly.Ohair at Sun.COM [mailto:Kelly.Ohair at Sun.COM]
>>>> Sent: Friday, July 13, 2007 5:14 PM
>>>> To: Ted Neward
>>>> Cc: build-dev at openjdk.java.net
>>>> Subject: Re: State of the build on Windows?
>>>>
>>>> Ted,
>>>>
>>>> You haven't given me anything to go on here, but I assume the t2k.lib
>>>> problem is still going to block you on Windows.
>>>>
>>>> There are two efforts going on right now with regards to t2k.lib.
>>>> The awt team is trying to get rid of our dependence on t2k in the
>> OpenJDK,
>>>> effectively one less plug.
>>>>
>>>> And I and a few others have also been trying to re-configure the binary
>>>> plug
>>>> download bundles to be smaller, sparse, legally self defining, include
>> the
>>>> t2k.lib,
>>>> and be automatically built by the Makefiles on every formal promotion
>>>> build.
>>>>
>>>> Since this changes the legal documents, it's taken longer than I had
>>>> thought it would. I am not a lawyer, so I won't speak to the specific
>>>> legal issues here. We tried for B14 then B15, couldn't get all the
>>>> issues resolved in time, and also do all the test builds as we have to
>>>> repeatedly merge and re-merge these changes.
>>>> We didn't want to break the jdk7 product or the OpenJDK with these
>>>> changes.
>>>> Hopefully everything will be in place for B16 for the new binary plugs,
>>>> which will help all platforms, but will include t2k.lib.
>>>> But I can't promise B16, we are trying very hard to get it into B16.
>>>>
>>>> But t2k.lib doesn't have long to live, the awt team is progressing very
>>>> well on removing our dependence on it. Which is the best solution of
>>>> course.
>>>>
>>>> I apologize for how long this is taking, but we are trying to get it
>>>> right,
>>>> or as right as possible. Once these binary plug changes are in place,
>>>> I'll send an email to the discuss and build alias with details, but
>>>> more importantly, we will be able to add/subtract (hopefully only
>>>> subtract)
>>>> from the binary plugs as we go, without detailed legal review, or at
>>>> least that's the goal.
>>>>
>>>> -kto
>>>>
>>>> Ted Neward wrote:
>>>>> I get some conflicting input regarding the state of the build on a
>>>>> Windows box. Kelly’s blog of May 2007 implies that it’s broken; is
>> that
>>>>> still the case?
>>>>>
>>>>>
>>>>>
>>>>> Beyond that, I have Cygwin and VS2003 installed on my box, and I
>> pulled
>>>>> down and built GNU make 3.80. Things still seem to be kinda broken at
>> a
>>>>> fundamental level, though—is there anything else I need to do (env
>> vars,
>>>>> etc) that would need to be set? For example, the makefiles seem to
>> want
>>>>> to use a default temp directory of C:\Documents and Settings\Ted\Local
>>>>> Settings\... which obviously has spaces in it; is this supposed to be
>>>>> corrected somewhere? Where’s the best place to override these
>> settings?
>>>>>
>>>>>
>>>>> Ted Neward
>>>>>
>>>>> Java, .NET, XML Services
>>>>>
>>>>> Consulting, Teaching, Speaking, Writing
>>>>>
>>>>> http://www.tedneward.com
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> No virus found in this outgoing message.
>>>>> Checked by AVG Free Edition.
>>>>> Version: 7.5.476 / Virus Database: 269.10.4/896 - Release Date:
>>>>> 7/11/2007 4:09 PM
>>>>>
>>>> No virus found in this incoming message.
>>>> Checked by AVG Free Edition.
>>>> Version: 7.5.476 / Virus Database: 269.10.5/899 - Release Date:
>> 7/13/2007
>>>> 3:41 PM
>>>>
>>> No virus found in this outgoing message.
>>> Checked by AVG Free Edition.
>>> Version: 7.5.476 / Virus Database: 269.10.5/899 - Release Date:
>> 7/13/2007
>>> 3:41 PM
>>>
>>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.5.476 / Virus Database: 269.10.6/902 - Release Date: 7/15/2007
>> 2:21 PM
>>
>
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.476 / Virus Database: 269.10.6/902 - Release Date: 7/15/2007
> 2:21 PM
>
>
More information about the build-dev
mailing list