From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21964 invoked by alias); 28 Jun 2005 07:40:07 -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 21934 invoked by uid 22791); 28 Jun 2005 07:39:58 -0000 Received: from dublin.act-europe.fr (HELO dublin.act-europe.fr) (212.157.227.154) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Tue, 28 Jun 2005 07:39:58 +0000 Received: from localhost (province.act-europe.fr [10.10.0.214]) by filtered-dublin.act-europe.fr (Postfix) with ESMTP id 29BC9229F54; Tue, 28 Jun 2005 09:39:56 +0200 (MET DST) Received: from dublin.act-europe.fr ([10.10.0.154]) by localhost (province.act-europe.fr [10.10.0.214]) (amavisd-new, port 10024) with ESMTP id 64242-02; Tue, 28 Jun 2005 09:39:56 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by dublin.act-europe.fr (Postfix) with ESMTP id B61DA229F53; Tue, 28 Jun 2005 09:39:55 +0200 (MET DST) From: Eric Botcazou To: Alan Modra Subject: Re: gc sections and .eh_frame Date: Tue, 28 Jun 2005 07:40:00 -0000 User-Agent: KMail/1.7.1 Cc: binutils@sources.redhat.com, Jonathan Larmour References: <42A5DE0C.9050108@eCosCentric.com> <200506271355.49260.ebotcazou@adacore.com> <20050628025830.GA8706@bubble.grove.modra.org> In-Reply-To: <20050628025830.GA8706@bubble.grove.modra.org> MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200506280940.28723.ebotcazou@adacore.com> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-SW-Source: 2005-06/txt/msg00608.txt.bz2 > > I think it doesn't work (alone) either, because you unconditionally mark > > all .gcc_except_table* sections, which themselves point to the functions. > > That doesn't make any difference, because .gcc_except_table* is marked > via KEEP() in the linker script. So I don't think you need anything > more than the patch I posted. That's not quite true, .gcc_except_table is indeed marked as KEEP, but not .gcc_except_table.* :-) That's the crux of the mechanism: an unpatched (non broken) compiler will only emit .gcc_except_table. But a patched compiler (i.e. the AdaCore compiler or the FSF compiler + http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01433.html) will emit .gcc_except_table.* with -ffunction-sections, making it possible to have a working --gc-sections for languages with EH. -- Eric Botcazou