as: error 7403: undefined label - _ZTVN10__cxxabiv120__si_class_type_infoE [was Re: fix execute/20010518-2.c]
John David Anglin
dave@hiauly1.hia.nrc.ca
Mon Aug 27 13:25:00 GMT 2001
> > On Fri, Aug 24, 2001 at 01:55:41AM -0400, John David Anglin wrote:
> > > New problem: HP as doesn't like undefined symbols without corresponding
> > > .IMPORT directive:
> >
> > We're probably missing calls to assemble_external in
> > output_function_exception_table.
> A work around is to include <cxxabi.h>. If this is the correct solution,
> then a lot of code needs fixing.
The problem is that neither TREE_PUBLIC or DECL_EXTERNAL are set when
assemble_external is called for the symbol on the PA. TREE_PUBLIC is
explicitly set to 0 in comdat_linkage for this decl because it is a
var_decl with the artifical flag set. comdat_linkage is called for
the decl from import_export_vtable because `found' is 0. It subsequently
resets DECL_EXTERNAL to 0. DECL_EXTERNAL was previously set to 1 in
get_vtable_decl.
The decision in import_export_vtable to use comdat_linkage (ie. static
linkage) seems wrong in this case since the reference needs to be
external unless cxxabi.h has been included. However, I don't know
how to detect this. Any clues?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
More information about the Gcc-bugs
mailing list