From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25116 invoked by alias); 5 Dec 2010 21:13:55 -0000 Received: (qmail 25106 invoked by uid 22791); 5 Dec 2010 21:13:55 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_GD X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 05 Dec 2010 21:13:51 +0000 From: "mikestump at comcast dot net" To: gcc-bugs@gcc.gnu.org Subject: [Bug debug/46749] gcc.dg/debug/pr41893-1.c -gdwarf-2 testsuite failures on darwin X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: debug X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: mikestump at comcast dot net X-Bugzilla-Status: WAITING X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Sun, 05 Dec 2010 21:13:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-12/txt/msg00504.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46749 --- Comment #35 from Mike Stump 2010-12-05 21:13:30 UTC --- Surely this design isn't complete as it doesn't cover the changes or the requirements for lto. Without those, I can't review the design to see if it is sufficient to actually fix the problem at hand. The problem is there are temporary files removed by subpasses during the subpass. The above doesn't lengthen the lifetime of those temporary files, so can't fix the problem. Compare and contrast another potential design: Add an environment variable that identifies a file in which additions can be made of temporary object files to remove once the link is done. If any subpart of the compilation process wants to create to create intermediate .o files, they can instead write into that named file, the names of the temporary files to delete, then the top level driver (one with no environment variable set, can delete them, at the very end. This even works for linker plugin files and cover just about every type of tech or architecture for the compilation process save distribution, caching and compilation server. I'd propose we handle those later, as necessary. The advantages of this over the last one is, it is complete, it would always work, regardless of nesting complexities, doesn't require any changes to `ld', and works, even when collect2 isn't used.