This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
as: error 7403: undefined label - _ZTVN10__cxxabiv120__si_class_type_infoE [was Re: fix execute/20010518-2.c]
- To: rth at redhat dot com (Richard Henderson)
- Subject: 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: Sun, 26 Aug 2001 17:28:40 -0400 (EDT)
- Cc: gcc-patches at gcc dot gnu dot org, 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.
I don't think the problem is in output_function_exception_table. This
small program demonstrates the problem.
namespace std
{
class exception
{
public:
exception() throw() { }
virtual ~exception() throw();
};
class bad_typeid : public exception
{
public:
bad_typeid () throw() { }
virtual ~bad_typeid () throw();
};
}
extern "C" void __cxa_bad_typeid ();
extern "C" void
__cxa_bad_typeid ()
{
throw std::bad_typeid();
}
In the assembler output from both hppa1.1-hp-hpux10.20 and i686-pc-linux-gnu,
the symbol _ZTVN10__cxxabiv120__si_class_type_infoE is not defined. However,
GAS doesn't care that there is no .weak or .global statement for it.
A work around is to include <cxxabi.h>. If this is the correct solution,
then a lot of code needs fixing.
On i686, the symbol looked OK to me after finish_vtable_vardecl. Still
trying to figure out why assemble_external isn't being called.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)