From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14227 invoked by alias); 13 Feb 2005 01:44:27 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 14174 invoked by uid 48); 13 Feb 2005 01:44:21 -0000 Date: Sun, 13 Feb 2005 17:41:00 -0000 Message-ID: <20050213014421.14173.qmail@sourceware.org> From: "danglin at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050207000300.19797.jsm28@gcc.gnu.org> References: <20050207000300.19797.jsm28@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/19797] [4.0 Regression] g++.dg/abi/inline1.C fails on hppa*-*-hpux* X-Bugzilla-Reason: CC X-SW-Source: 2005-02/txt/msg01294.txt.bz2 List-Id: ------- Additional Comments From danglin at gcc dot gnu dot org 2005-02-13 01:44 ------- 1) In the past, we haven't worried about the presence of unnecessary .IMPORT directives as they are harmless. There are several places in the testsuite where we work around this problem. 2) I don't believe that putting this fix in the PA backend is the best fix. In December, Zack introduced a mechanism to defer emission of assemble externals: 2004-12-08 Zack Weinberg PR 17982 * varasm.c (pending_assemble_externals): New static. (assemble_external_real): Meat of assemble_external split out to this new function. (process_pending_assemble_externals): New function. (assemble_external): Use gcc_assert. If flag_unit_at_a_time is true and the basic test passes, merely cons the decl onto the pending list to be handled later. * tree.h: Declare process_pending_assemble_externals. * cgraphunit.c (cgraph_optimize): Call it. Thus, we are adding a hppa fix on top of an ia64 fix to the main code. I proposed a backend fix for an AIX problem with respect to assemble output defines. Again, the fix was to defer emission of the output defines until the file end. David Edelsohn I think rightly objected that this fix was too invasive and ultimately a fix to the main code body was accepted: 2005-01-16 John David Anglin PR target/16304 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default. * toplev.c (compile_file): Call process_pending_assemble_output_defs just before targetm.asm_out.file_end. * tree.h (process_pending_assemble_output_defs): Declare. * varasm.c (assemble_output_def, process_pending_assemble_output_defs): New functions. (assemble_alias): Defer generation of assembly code for defines when TARGET_DEFERRED_OUTPUT_DEFS is true. * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define. * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define. * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document. On the mainline, this fix used Nathan's vector support which Mark was keen to support. 3) I'm concerned that the proposed fix requires a linker fix. There won't be a fix for HP-UX 10 and possibly 11.00. There's still interest in these system versions for a number of older machines that are still in fairly wide use. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19797