------- Comment #27 from jakub at gcc dot gnu dot org 2007-12-13 17:34 ------- First of all I wonder what's the point of the PA ASM_OUTPUT_EXTERNAL_REAL vs. ASM_OUTPUT_EXTERNAL hacks. The middle-end already does the deferring itself, see assemble_external/process_pending_assemble_externals/assemble_external_real. The only place where ASM_OUTPUT_EXTERNAL is invoked is during process_pending_assemble_externals, i.e. right before targetm.asm_out.file_end (well, there is also output of IDENT_ASM_OP, but that isn't relevant). So, PA buffers the externals once again, from the process_pending_assemble_externals call to the immediately following file_end.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003