From patchwork Thu Dec 2 11:45:42 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iain Sandoe X-Patchwork-Id: 73955 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 165A9B7080 for ; Thu, 2 Dec 2010 22:46:14 +1100 (EST) Received: (qmail 17693 invoked by alias); 2 Dec 2010 11:46:12 -0000 Received: (qmail 17681 invoked by uid 22791); 2 Dec 2010 11:46:11 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from c2bthomr13.btconnect.com (HELO mail.btconnect.com) (213.123.20.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 02 Dec 2010 11:46:01 +0000 Received: from host81-138-1-83.in-addr.btopenworld.com (EHLO thor.office) ([81.138.1.83]) by c2bthomr13.btconnect.com with ESMTP id AWJ56449; Thu, 02 Dec 2010 11:45:57 +0000 (GMT) Message-Id: From: IainS To: GCC Patches Mime-Version: 1.0 (Apple Message framework v936) Subject: [Patch Darwin] proposal for a 4.6 work-around to dsymutil calling issues. Date: Thu, 2 Dec 2010 11:45:42 +0000 Cc: Mike Stump , "Peter O'Gorman" , Dominique Dhumieres , Jack Howarth X-Mirapoint-IP-Reputation: reputation=Fair-1, source=Queried, refid=tid=0001.0A0B0302.4CF786E6.0226, actions=tag X-Junkmail-Signature-Raw: score=unknown, refid=str=0001.0A0B020A.4CF786F7.00AD, ss=1, fgs=0, ip=0.0.0.0, so=2010-07-22 22:03:31, dmn=2009-09-10 00:05:08, mode=single engine X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, PR43751 and PR46749 show that we have a problem with the existing way in which dsymutil is called by trying to recognize that the c/l contains a source file. Not only do we not cover all source types, but the whole thing breaks down with relatively benign changes in the c/l. AFAICT, we don't really have a suitable facility to: 'determine that a source is present for the set of supported languages and insert a flag' On the basis that such a wide-ranging addition might not be appropriate for stage-3 - - I'm going to propose a work-around and suggest an enhancement bug for 4.7? Of course, if someone knows a better solution .. great! The change is this: When the user wants a dSYM (s)he will now need to append "-dsym" to the c/l - instead of gcc figuring it out automatically. If there are no existing "-g*" on the c/l "-g" will be appended. I have not yet written doc for this - pending comments on whether it's considered a reasonable work-around for 4.6. thoughts? Iain #define DARWIN_LIBSYSTEM_HAS_UNWIND Index: gcc/config/darwin.opt =================================================================== --- gcc/config/darwin.opt (revision 167325) +++ gcc/config/darwin.opt (working copy) @@ -88,6 +88,12 @@ Driver gused Driver +dsym +Driver + +Zdsym +Driver + image_base Driver Separate Alias(Zimage_base) Index: gcc/config/darwin.h =================================================================== --- gcc/config/darwin.h (revision 167325) +++ gcc/config/darwin.h (working copy) @@ -126,6 +126,7 @@ extern GTY(()) int darwin_ms_struct; #define DRIVER_SELF_SPECS \ "%{gfull:-g -fno-eliminate-unused-debug-symbols} %