Solaris Sparc version used to build binaries?

Erik Trimble Erik.Trimble at Sun.COM
Tue Sep 15 20:37:07 PDT 2009


Dalibor Topic wrote:
> Byron Nevins wrote:
>   
>> I've looked all over the openjdk site for instructions on building JDK6
>> on Solaris.  Can you point me to instructions?
>>     
>
> For the current OpenJDK 6 tip, I'll post an updated README-builds.html for 
> review later but you could give this a try:
>
> OpenSolaris
>
>     OpenSolaris 2009.06
>
>         After installing OpenSolaris 2009.06 you need to install several build dependencies. The simplest way to install the build dependencies is to execute the following commands:
>
>         pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2 SUNWmfrun
>
>         In addition, it is necessary to set a few environment variables for the build:
>
>         export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/
>
>         Finally, you need to make sure that the build process can find the Sun Studio compilers:
>
>         export PATH=$PATH:/opt/SunStudioExpress/bin/ 
>
> Note that the instructions above are for OpenSolaris 2009.06, rather then Solaris 8,
> so YMMV - afaik 2009.06 has SPARC support, but I am not aware of an emulator
> that I could use to install that version in to produce build docs with. VirtualBox
> rocks for x86 & amd64, though.
>
> cheers,
> dalibor topic
>
>   
Joe & Dalibor have the general instructions correct.

As a further followup:

Right now, the "official" build platform for JDK 6 on SPARC is:

* Solaris 8 02/04 with latest SunSolve Recommended Patch Cluster
* Latest S8 J2SE Recommended Patch Cluster
* SunStudio 11 compilers with latest Patch cluster

However, as HS14 and later were originally developed for JDK 7, there 
the official SPARC build platform is:

* Solaris 10 06/06 (Update 2)
* Latest S10 J2SE Recommended Patch Cluster
* SunStudio 12 compiler + patches

In addition, we use a slightly customized (read: bugfixed) version of 
ccache ( http://ccache.samba.org/ ) to drastically speed up our repeat 
builds.  I would recommend setting your ccache directory to /tmp  (or 
other tmpfs directory) - which is one of the reasons I'd seriously 
increase your available RAM beyond the stated minimums.



Frankly, I would most likely recommend a blend of the two for optimal 
compatibility and availability:

* Solaris 10 (if you can get 06/06, use it, otherwise, get the latest 
update available [05/09 right now] ) + s10 J2SE patches + SS11 compilers

Note, that for S10, I _don't_ recommend putting on the latest OS patch 
cluster. Just use the J2SE patch cluster.  This is for building only, of 
course.  Production systems should always install the latest OS patch 
cluster.


I have yet to try out building/testing the JDK in Solaris Zones, but 
that will likely happen sometime this calendar year. In particular, I'm 
interested in getting Solaris 8 zones on a Solaris 10 host.


As another note, I think we seriously need to update the RAM 
requirements for all platforms. Realistically, if you'd like your 
Solaris box not to swap all day, 2GB is the bare minimum amount needed 
to do the build, run the OS, and NOT run the GUI. Realistically, I like 8GB.


For information's sake, here's quick output from our build system as to 
the time it takes to build Hotspot for the JDK 6 and JDK 7 :

Build (Release:jdk6u14 Boot:<jdk6fcs> Import:<jdk6u14>):
  solaris_sparc_5.8-product                        success(40m 19s elapsed)
  solaris_sparc_5.8-fastdebug                      success(1h 26m 04s elapsed)
  solaris_sparc_5.8-debug                          success(35m 54s elapsed)
  solaris_sparcv9_5.8-product                      success(22m 08s elapsed)
  solaris_sparcv9_5.8-fastdebug                    success(46m 28s elapsed)
  solaris_sparcv9_5.8-debug                        success(20m 09s elapsed)
  solaris_i586_5.8-product                         success(22m 22s elapsed)
  solaris_i586_5.8-fastdebug                       success(1h 08m 46s elapsed)
  solaris_i586_5.8-debug                           success(21m 26s elapsed)
  solaris_x64_5.10-product                         success(07m 51s elapsed)
  solaris_x64_5.10-fastdebug                       success(32m 38s elapsed)
  solaris_x64_5.10-debug                           success(02m 58s elapsed)
  linux_i586_2.4-product                           success(25m 11s elapsed)
  linux_i586_2.4-fastdebug                         success(19m 53s elapsed)
  linux_i586_2.4-debug                             success(16m 54s elapsed)
  linux_x64_2.4-product                            success(18m 44s elapsed)
  linux_x64_2.4-fastdebug                          success(30m 38s elapsed)
  windows_i586_5.0-product                         success(10m 25s elapsed)
  windows_i586_5.0-fastdebug                       success(11m 25s elapsed)
  windows_i586_5.0-debug                           success(09m 42s elapsed)
  windows_x64_5.2-product                          success(07m 23s elapsed)
  windows_x64_5.2-fastdebug                        success(08m 23s elapsed)
  windows_x64_5.2-debug                            success(05m 18s elapsed)


Build (Release:jdk7 Boot:<jdk6fcs> Import:<jdk7>):
  solaris_sparc_5.10-product                       success(29m 57s elapsed)
  solaris_sparc_5.10-fastdebug                     success(58m 15s elapsed)
  solaris_sparc_5.10-debug                         success(30m 48s elapsed)
  solaris_sparcv9_5.10-product                     success(19m 47s elapsed)
  solaris_sparcv9_5.10-fastdebug                   success(29m 54s elapsed)
  solaris_sparcv9_5.10-debug                       success(16m 52s elapsed)
  solaris_i586_5.10-product                        success(    14m elapsed)
  solaris_i586_5.10-fastdebug                      success(51m 13s elapsed)
  solaris_i586_5.10-debug                          success(13m 54s elapsed)
  solaris_x64_5.10-product                         success(10m 06s elapsed)
  solaris_x64_5.10-fastdebug                       success(19m 32s elapsed)
  solaris_x64_5.10-debug                           success(11m 37s elapsed)
  linux_i586_2.6-product                           success(09m 02s elapsed)
  linux_i586_2.6-fastdebug                         success(10m 19s elapsed)
  linux_i586_2.6-debug                             success(06m 58s elapsed)
  linux_x64_2.6-product                            success(06m 14s elapsed)
  linux_x64_2.6-fastdebug                          success(06m 01s elapsed)
  windows_i586_5.0-product                         success(22m 10s elapsed)
  windows_i586_5.0-fastdebug                       success(21m 33s elapsed)
  windows_i586_5.0-debug                           success(24m 09s elapsed)
  windows_x64_5.2-product                          success(14m 23s elapsed)
  windows_x64_5.2-fastdebug                        success(14m 51s elapsed)
  windows_x64_5.2-debug                            success(10m 51s elapsed)


This is across a relatively wide variety of hardware, so it's not 
completely comparable between OSes (e.g. most of the SPARC boxes are 
US3-based, while the solaris x64 boxes are 16-core X4600, but the 
win64-boxes are 4-core X4100 machines).


In general, for doing plain -product builds of 32-bit and 64-bit SPARC, 
I would expect roughly these times on these hardware:

Victoria Falls T2 machines (T5120): 20 minutes
Niagara T1 machines (T1000/T2000): 22 minutes
US4-generation machines (v490, v890, sf 2900): 24 minutes
US3-generation machines (e.g. v210, v440, v445, SB2500):  30 minutes
US2-generation enterprise machines (e4500 & up):  45 minutes
US2-generation workgroup/desktops (e450, ultra 60/80):  100 minutes


I haven't personally done builds on any M-class hardware yet, so I don't 
know times for them.  The Niagara stuff is best, as Hotspot's build is 
highly parallel.  Unfortunately, this is less true for the JDK itself.  
Frankly, if I could chose the best bang/$ SPARC hardware to build both 
the VM and JDK on, I'd do the VM on a T1000, and the JDK on a V490 or 
M4000.

-- 
Erik Trimble
Java System Support
Mailstop:  usca22-123
Phone:  x17195
Santa Clara, CA



More information about the jdk6-dev mailing list