Subject: bin/12103: ARM32 tools do not support weak symbols
To: None <gnats-bugs@gnats.netbsd.org>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: netbsd-bugs
Date: 02/01/2001 14:39:49
>Number: 12103
>Category: bin
>Synopsis: ARM tools do not support weak symbols
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Feb 01 14:42:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Richard Earnshaw
>Release: NetBSD-current
>Organization:
ARM
>Environment:
System: NetBSD buzzard.buzzard.freeserve.co.uk 1.5I NetBSD 1.5I (BUZZARD) #216: Sun Nov 19 21:24:48 GMT 2000 rearnsha@buzzard.buzzard.freeserve.co.uk:/usr/src/sys/arch/arm32/compile/BUZZARD arm32
>Description:
The toolchain for ARM32 does not correctly support weak symbols.
This is a critical issue for the new gcc-3.0 development which
requires this behaviour for C++ RTTI and hence for exception throwing.
>How-To-Repeat:
Compile and link the following two C files. The program should run
without aborting.
weak0.c:
char mystr[] __attribute__((weak)) = "hello";
extern char *getmystr();
main ()
{
if (getmystr() != mystr)
abort();
exit (0);
}
weak1.c:
char mystr[] __attribute__((weak)) = "hello";
char *getmystr() { return mystr;}
>Fix:
Not known. It may be the assembler or the linker (or even both).
>Release-Note:
>Audit-Trail:
>Unformatted: