From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Owens Date: Tue, 16 Mar 2004 10:42:55 +0000 Subject: Re: 2.6.3 Heisenbug in unwind.c Message-Id: <2308.1079433775@ocs3.ocs.com.au> List-Id: References: <2654.1077624337@ocs3.ocs.com.au> In-Reply-To: <2654.1077624337@ocs3.ocs.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-ia64@vger.kernel.org On Mon, 15 Mar 2004 17:52:09 +1100, Keith Owens wrote: >One step further on. The illegal unwind descriptors are being caused >by the linker (GNU ld version 2.14.90.0.4 20030523) sometimes putting >everything from .init.text onwards in an extra output program header. Which of course it is entitled to do. vmlinux.lds.S does not explicitly assign sections to segments so ld is allowed to choose its own mapping. Most of the time the .text and .init.text sections are in the same segment, but sometimes the linker assigns them to different segments, depending on the precise contents of the input files. When those sections are in different segments _and_ you are using binutils with buggy ia64 SEGREL code then the result is corrupt unwind data. binutils-2.14.90.0.4-26.3 (RH AS3.0) is not good enough, binutils-2.14.90.0.8-8.1 (Fedora) works. Patch to 2.6.4 to prevent building with a buggy version of binutils. Index: linux-2.6.4/arch/ia64/scripts/toolchain-flags =================================--- linux-2.6.4.orig/arch/ia64/scripts/toolchain-flags 2004-03-10 18:55:49.000000000 -0800 +++ linux-2.6.4/arch/ia64/scripts/toolchain-flags 2004-03-15 22:11:02.000000000 -0800 @@ -18,11 +18,6 @@ rm -f $out if [ $res != 00000a00 ]; then CPPFLAGS="$CPPFLAGS -DHAVE_BUGGY_SEGREL" - cat >&2 <