This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: as: error 7403: undefined label - _ZTVN10__cxxabiv120__si_class_type_infoE [was Re: fix execute/20010518-2.c]


> > 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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]