OpenSolaris

You are not signed in. Sign in or register.

Flag Day: 6488141 ld(1) should detect attempt to reference 0-length

Date: Wed, 29 Nov 2006 14:56:12 -0700
From: Ali Bahrami <Ali.Bahrami at Sun dot COM>
To: on-all at Sun dot COM, onnv-gate at onnv dot eng dot sun dot com
Subject: Flag Day: 6488141 ld(1) should detect attempt to reference 0-length

The integration of

	6488141 ld(1) should detect attempt to reference 0-length .bss section

represents a flag day if all three of the following conditions are true:

	- You are building on X86 (not sparc),
	- You are using build 54 or newer of Solaris
	  on your build host, and
	- You are building a workspace based on build 53 or
	  older.

You may safely ignore this message otherwise.

In the failure case, your build will fail with an error like:

	ld: fatal: symbol `intr_thread_cnt' in file debug32/interrupt.o:
		section [4] .data: size 0: symbol (address 0, size 4) lies
		outside of containing section
	ld: fatal: File processing errors. No output written to debug32/unix.o

This error comes when compiling usr/src/uts/i86pc/ml/interrupt.s. Note
that interrupt.s has had this error for a long time --- what has changed
is that the build 54 or new linker properly catches the error instead of
quietly generating a bad output file. The flaw is in code that only appears
in debug builds.

To avoid this situation, you can take either of the following measures:

	- Use a build host running Nevada build 53 or older

	- Update your workspace to get a newer copy of
	  usr/src/uts/i86pc/ml/interrupt.s The fix is a one-liner
	  that appears on line 527, replacing:

		DGDEF(intr_thread_cnt)

	  with
		DGDEF(intr_thread_cnt)
		.4byte  0
		
- Ali