http://llvm.org/bugs/show_bug.cgi?id=3007
Summary: extern __attribute__((weak)) gets turned into undefined
symbol
Product: new-bugs
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
CC: [email protected]
The kernel uses genksyms to generate crcs, include/linux/module.h has this
comment:
/* Mark the CRC weak since genksyms apparently decides not to
* generate a checksums for some symbols */
/* testcase */
extern void * __attribute__((weak)) __crc_init_mm;
static const unsigned long __kcrctab_init_mm __attribute__((__used__))
__attribute__((section("__kcrctab" "_unused"), unused)) = (unsigned long)
&__crc_init_mm;
int main(void)
{
return 0;
}
LLVM-gcc output:
$ /home/edwin/llvm-svn/install/bin/llvm-gcc foo.c
/tmp/cc2NMjnF.o:(__kcrctab_unused+0x0): undefined reference to `__crc_init_mm'
collect2: ld returned 1 exit status
$ /home/edwin/llvm-svn/install/bin/llvm-gcc foo.c -c && nm foo.o
0000000000000000 d EH_frame0
U __crc_init_mm
0000000000000000 r __kcrctab_init_mm
0000000000000000 T main
0000000000000018 d main.eh
GCC:
$ gcc foo.c
$ gcc -c foo.c && nm foo.o
w __crc_init_mm
0000000000000000 r __kcrctab_init_mm
0000000000000000 T main
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs