[LLVMbugs] [Bug 1006] NEW: llvm-gcc libstdc++.so fails to have Std C++ Symbol

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu Nov 16 15:23:20 PST 2006


http://llvm.org/bugs/show_bug.cgi?id=1006

           Summary: llvm-gcc libstdc++.so fails to have Std C++ Symbol
           Product: tools
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: minor
          Priority: P2
         Component: llvm-gcc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: rspencer at x10sys.com


If you configure llvm-gcc4 without --disable-shared option and then attempt to
use it as a linker for a C++ program, you will encounter:

/proj/llvm/cfe/install-1/lib/gcc/i686-pc-linux-gnu/4.0.1/libstdc++.so: undefined
reference to `std::basic_istream<wchar_t, std::char_traits<wchar_t> >::ignore(int)'

In C, the symbol is: _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi

This was a known issue with the 4.0.x release. The patch suggested on the gcc
patches list has been applied to llvm-gcc4. Its not clear why this symbol
doesn't show up when building shared libs. After digging into it for a while, I
believe the problem lies in the libstdc++-v3/config/linker-map.gnu file in
llvm-gcc4. You will find that there is no section for the 3.4.6 compiler. It
stops at 3.4.5.

There are several references to this problem on our llvm-dev mailing list:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006522.html
http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006587.html
http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006588.html 

The workaround is: use --disable-shared when you configure llvm-gcc4.

This issue is quite likely Linux specific.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list