This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: as: error 7403: undefined label - _ZTVN10__cxxabiv120__si_class_type_infoE [was Re: fix execute/20010518-2.c]
- To: dave at hiauly1 dot hia dot nrc dot ca (John David Anglin)
- Subject: Re: as: error 7403: undefined label - _ZTVN10__cxxabiv120__si_class_type_infoE [was Re: fix execute/20010518-2.c]
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Mon, 27 Aug 2001 16:25:03 -0400 (EDT)
- Cc: rth at redhat dot com, mark at codesourcery dot com, gcc-bugs at gcc dot gnu dot org
> > 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)