From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5160 invoked by alias); 6 Jan 2005 08:40:11 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 4883 invoked from network); 6 Jan 2005 08:39:53 -0000 Received: from unknown (HELO gizmo12ps.bigpond.com) (144.140.71.43) by sourceware.org with SMTP; 6 Jan 2005 08:39:53 -0000 Received: (qmail 22189 invoked from network); 6 Jan 2005 08:39:51 -0000 Received: from unknown (HELO psmam12.bigpond.com) (144.135.25.103) by gizmo12ps.bigpond.com with SMTP; 6 Jan 2005 08:39:51 -0000 Received: from cpe-144-136-221-26.sa.bigpond.net.au ([144.136.221.26]) by psmam12.bigpond.com(MAM REL_3_4_2a 234/28787671) with SMTP id 28787671; Thu, 06 Jan 2005 18:39:51 +1000 Received: by bubble.modra.org (Postfix, from userid 500) id BFD3E15EBDB; Thu, 6 Jan 2005 19:09:50 +1030 Date: Thu, 06 Jan 2005 08:40:00 -0000 From: Alan Modra To: binutils@sources.redhat.com Cc: Olaf Hering Subject: powerpc64 multi-toc linker bug Message-ID: <20050106083950.GK11457@bubble.modra.org> Mail-Followup-To: binutils@sources.redhat.com, Olaf Hering Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2005-01/txt/msg00055.txt.bz2 This fixes a bug in ppc64_elf_size_stubs. The bug could result in an r2 adjusting stub being omitted when it was in fact needed. Which might be the cause of a gcc bootstrap miscompilation some people are seeing. * elf64-ppc.c (ppc64_elf_size_stubs): When determining need for toc adjusting stub, do not test source section flags. Index: bfd/elf64-ppc.c =================================================================== RCS file: /cvs/src/src/bfd/elf64-ppc.c,v retrieving revision 1.182 diff -u -p -r1.182 elf64-ppc.c --- bfd/elf64-ppc.c 19 Dec 2004 23:24:46 -0000 1.182 +++ bfd/elf64-ppc.c 6 Jan 2005 08:38:44 -0000 @@ -8643,8 +8643,7 @@ ppc64_elf_size_stubs (bfd *output_bfd, && code_sec->output_section != NULL && (htab->stub_group[code_sec->id].toc_off != htab->stub_group[section->id].toc_off) - && code_sec->has_gp_reloc - && section->has_gp_reloc) + && code_sec->has_gp_reloc) stub_type = ppc_stub_long_branch_r2off; } -- Alan Modra IBM OzLabs - Linux Technology Centre