OpenSolaris

You are not signed in. Sign in or register.

Flag day - build machine upgrades, gcc changes

Date: Tue, 20 Sep 2005 15:07:16 -0700
From: Keith M Wesolowski <keith dot wesolowski at sun dot com>
To: on-all at sun dot com, onnv-gate at onnv dot eng dot sun dot com
Subject: Flag day - build machine upgrades, gcc changes

If you don't maintain a build machine or build ON with gcc, you can
ignore the rest of this message.

My putback for

6237094 perl build should honor $(CC)
6272179 relocation processing should be bypassed when building libgenunix et al
6307198 Need to pass in -save_args option when the new gcc is available
6310534 new gcc options should be used to build ON

represents a flag day for all build machine maintainers and a heads-up
for engineers debugging amd64 bits built with gcc.

Function arguments on amd64
---------------------------

The save_args feature previously available for Vulcan builds is now
enabled when building with gcc as well.  As described at
http://onnv.sfbay/links/flagdays/pages/2005071403.html, this feature
allows inspection of function arguments when using mdb.  You will need
to use gcc from build 22 or newer; see "Build machines" below for more
information on compiler requirements.

Build machines
--------------

There are three separate upgrades required for all build machines:

	- Linker
	- gcc compilers and related packages
	- SUNWlibm, for <iso/math_c99.h>

The easiest and fastest way to get all of these required changes is to
install or upgrade to Nevada build 22 or later.  Build 22 is available
on the netinstall servers for both x86 and SPARC and has been released
to the public as Solaris Express Community Edition.  Other upgrade
options are described in more detail below.

This putback introduces use of the -znoreloc linker flag for building
kernel shared libraries such as libgenunix.so.  These objects are not
delivered and are used only for symbol resolution during the build,
but your build will fail with messages like:

	ld: fatal: option -z has illegal argument `noreloc'
	ld: fatal: Flags processing errors

if your linker is too old.  Support for this flag was introduced in
build 14; you can BFU to any recent build to obtain the needed fix.

This putback also introduces the use of new compiler flags during gcc
builds.  Support for these flags was incorporated into SUNWgcc and
SUNWgccruntime in sfw build 22.  If you attempt to build with an old
gcc, your build will fail.  If you cannot netinstall build 22 or later,
you can upgrade to the latest gcc by doing:

	# /ws/onnv-gate/public/bin/update_gcc

Finally, to support gcc builds of perl, a SUNWlibm containing the fix
for

	6285517 gcc 3.4.x/4.x c99 math intrinsics support needed

is required.  This fix integrated into build 18.  If you cannot upgrade
to build 22 or newer, you can obtain this fix by doing:

	# /ws/onnv-gate/public/bin/update_devpro

Please don't hesitate to contact me if you have further questions.

-- 
Keith M Wesolowski		"Sir, we're surrounded!" 
Solaris Kernel Team		"Excellent; we can attack in any direction!"