New builds from the build-infra team
Anthony Petrov
anthony.petrov at oracle.com
Wed Nov 7 06:16:20 PST 2012
Hi All,
(please keep me in CC since I'm not subscribed to this list)
(I'm building on Linux i586)
1. Could we add the
/java/re/jdk/<version>/promoted/latest/binaries/<platform>/ directories
to check for a Boot JDK to ./configure? E.g.
/java/re/jdk/7u10/promoted/latest/binaries/linux-i586. I realize that
this is almost useless outside of Oracle, but it would be really helpful
for internal builds when one has already set up the /java directory
structure properly.
2. What is the ./build/linux-x86-normal-server-release directory, and
why is it not ./build/linux-i586 ? What does 'normal' stand for? The
same question about the 'server' part.
3. I get the following error and the build stops:
> /export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release/jdk/objs/liblcms/cmspack.o: In function `UnrollHalfToFloat':
> cmspack.c:(.text+0x1f25): undefined reference to `_cmsHalf2Float'
> cmspack.c:(.text+0x1f73): undefined reference to `_cmsHalf2Float'
> /export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release/jdk/objs/liblcms/cmspack.o: In function `UnrollHalfTo16':
> cmspack.c:(.text+0x261d): undefined reference to `_cmsHalf2Float'
> cmspack.c:(.text+0x26bd): undefined reference to `_cmsHalf2Float'
> /export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release/jdk/objs/liblcms/cmspack.o: In function `PackHalfFromFloat':
> cmspack.c:(.text+0x36bb): undefined reference to `_cmsFloat2Half'
> cmspack.c:(.text+0x3710): undefined reference to `_cmsFloat2Half'
> cmspack.c:(.text+0x37af): undefined reference to `_cmsFloat2Half'
> /export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release/jdk/objs/liblcms/cmspack.o: In function `PackHalfFrom16':
> cmspack.c:(.text+0x38a8): undefined reference to `_cmsFloat2Half'
> cmspack.c:(.text+0x3906): undefined reference to `_cmsFloat2Half'
> /export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release/jdk/objs/liblcms/cmspack.o:cmspack.c:(.text+0x39a7): more undefined references to `_cmsFloat2Half' follow
> collect2: ld returned 1 exit status
> gmake[3]: *** [/export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release/jdk/lib/i386/liblcms.so] Error 1
> gmake[3]: *** Waiting for unfinished jobs....
> gmake[3]: Leaving directory `/export/anthony/8-50-full-new-build/jdk/makefiles'
> gmake[2]: *** [libs-only] Error 2
> gmake[2]: Leaving directory `/export/anthony/8-50-full-new-build/jdk/makefiles'
> make[1]: *** [jdk-only] Error 2
> make[1]: Leaving directory `/export/anthony/8-50-full-new-build/build/linux-x86-normal-server-release'
> make: *** [all] Error 2
Is this a known issue with lcms? Note that I've almost exclusively
always built JDK w/ closed repos, and this time I'm building OpenJDK
repos only. I'll try to clone the closed parts and see if this
eliminates the issue #3.
--
best regards,
Anthony
On 11/1/2012 10:38 PM, Kelly O'Hair wrote:
> Pardon the wide email, but this impacts everyone building the OpenJDK jdk8/jdk8 derived forests.
>
> Please only reply to the build-infra-dev mailing list, or just me.
>
> With some recent integrations from the build-infra project into jdk8/jdk8 repositories, the build-infra team
> would like to get more exposure of the new builds. These jdk8/jdk8 changes will start showing up in various
> jdk8 and team forests over the next few weeks. The default is still the old builds, but both builds work in most
> cases for OpenJDK as far as we know.
>
> At a very high level, the intent is that once you get a forest:
> hg clone http://hg.openjdk.java.net/jdk8/jdk8 j8
> cd j8
> sh ./get_source.sh
>
> You should be able to simply configure&&make (the ultimate goal is this simple anyway), e.g.
> sh ./configure
> make NEWBUILD=true # The NEWBUILD=true will become the default when we formally switch.
>
> Where "make" is GNU make 3.81, and your system has all the requires packages and PATH contains the
> needed tools. Note that on Windows, MKS unix utilities cannot be used with the new builds, just CYGWIN
> is recommended at this time.
>
> Of course, we know, it's never as easy as a simple configure&&make, and often you will need to pass in
> configure options.
>
> What we would like to know is where a simple configure&&make does not work, and anything people had
> to do to make it work.
>
> I know many of you are quite used to the old builds, so I have a temporary "bridgeBuild" target
> people can try that will attempt to map the ALT_* environment variables to an appropriate configure command
> and then run that configure command and do the build, e.g.
>
> make NEWBUILD=true bridgeBuild
>
> People willing to do comparisons between the old and new builds could:
> rm -f -r build
> time make NEWBUILD=true bridgeBuild
> rm -f -r build
> time make NO_DOCS=true # Old builds do not generate javadocs by default
>
> Any observations about speed of the builds would be appreciated, as will any impressions on what you see.
>
> At this time, we think this is working pretty well with a few caveats:
> * GNU make with the new builds is doing much more parallel processing and this can stress out a system
> - Use "make JOBS=1" if you suspect a problem, then try adjusting it up slowly.
> * Partial builds are limited, right now full builds of the entire OpenJDK is the target
> - Hotspot can still be built on it's own, but everyone else needs to build hotspot at least once
> * Paths with multiple names can cause problems, e.g. being on system svc6, and access an exported share
> area as /net/svc6/export/foobar instead of /export/foobar will cause problems. Use local paths.
>
> We know there are still issues and we will be focusing heavily on the critical ones in the next few weeks, but
> we do need the community to tell us what the critical issues really are.
>
> Our number one priority at this time is that everyone that was able to build the old way, should be able to build
> with the new build-infra makefiles. Please help us verify that.
>
> -kto
>
More information about the build-infra-dev
mailing list