From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13075 invoked by alias); 13 Nov 2007 23:39:04 -0000 Received: (qmail 13065 invoked by uid 22791); 13 Nov 2007 23:39:04 -0000 X-Spam-Check-By: sourceware.org Received: from omta05ps.mx.bigpond.com (HELO omta05ps.mx.bigpond.com) (144.140.83.195) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 13 Nov 2007 23:39:01 +0000 Received: from oaamta04ps.mx.bigpond.com ([58.174.193.185]) by omta05ps.mx.bigpond.com with ESMTP id <20071113233858.VNXO23313.omta05ps.mx.bigpond.com@oaamta04ps.mx.bigpond.com> for ; Tue, 13 Nov 2007 23:38:58 +0000 Received: from bubble.grove.modra.org ([58.174.193.185]) by oaamta04ps.mx.bigpond.com with ESMTP id <20071113233857.SRCS9364.oaamta04ps.mx.bigpond.com@bubble.grove.modra.org>; Tue, 13 Nov 2007 23:38:57 +0000 Received: by bubble.grove.modra.org (Postfix, from userid 500) id 8259032EBE0; Wed, 14 Nov 2007 10:08:57 +1030 (CST) Date: Tue, 13 Nov 2007 23:39:00 -0000 From: Alan Modra To: Nathan Sidwell Cc: binutils Subject: Re: vxworks dynamic tls relocs Message-ID: <20071113233857.GB14068@bubble.grove.modra.org> Mail-Followup-To: Nathan Sidwell , binutils References: <47399CE5.4070902@codesourcery.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <47399CE5.4070902@codesourcery.com> User-Agent: Mutt/1.5.9i X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2007-11/txt/msg00146.txt.bz2 On Tue, Nov 13, 2007 at 12:47:33PM +0000, Nathan Sidwell wrote: > Nullifying the dynamic reloc seemed the simplest approach to take, rather > than change the size of the dynamic reloc section. It is only marginally more difficult to do this without generating those NONE relocs. For example, in elf32-ppc.c allocate_dynrelocs around line 4802, add if (htab->is_vxworks && info->shared) { struct ppc_elf_dyn_relocs **pp; for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) { if (strcmp (p->sec->output_section->name, ".tls_vars") == 0) *pp = p->next; else pp = &p->next; } } then in ppc_elf_relocate_section change the "dodyn" condition to if ((input_section->flags & SEC_ALLOC) == 0 || is_vxworks_tls) break; Please take a look at doing it this way. -- Alan Modra Australia Development Lab, IBM