From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12353 invoked by alias); 2 May 2010 01:24:06 -0000 Received: (qmail 12281 invoked by uid 48); 2 May 2010 01:23:54 -0000 Date: Sun, 02 May 2010 01:24:00 -0000 Message-ID: <20100502012354.12280.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/43729] Mach-O LTO support needed for darwin In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "mrs at gcc dot gnu dot org" 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-05/txt/msg00079.txt.bz2 ------- Comment #33 from mrs at gcc dot gnu dot org 2010-05-02 01:23 ------- So, mumble isn't defined in the wpa file. The .wpa. file has to be assembled at the same time as 20081111_1.s, or, different code would need to be generated. darwin.c manages the code gen by asking the question, is this symbol _defined_ in the translation unit or _must_ it be defined. The answer from that question must be valid. In this case, someone lied to us. So, if there is a new answer, like, is this symbol defined in an LTO segment, we could modify the underlying question do be: is_defined(sym) { if (LTO_SYM(sym) return false; [ ... ] | which should be seamless, but, one then pays the price for this in less good codegen. If one bundles all the code into the wpa file, one can preserve _good_ codegen, which is the other way to fix this. machopic_symbol_defined_p is the is_defined predicate above, if you want to go that path. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43729