Linux / UNIX Tech Support Forum
This is a discussion on Hidden symbol error using libgcc.a within the Coding in General forums, part of the Development/Scripting category; I am trying to build an application using shared libraries for vxWorks. The compiler is based on the GNU 3.3.2 ...
|
|||||||
| Coding in General Discussion on PHP/Perl/Python/Ruby/GNU C or C++. MySQL, PgSQL and (X)HTML or any other programming languages you want. |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
I am trying to build an application using shared libraries for
vxWorks. The compiler is based on the GNU 3.3.2 tools. When I build my very trivial test application, which uses the ACE library (libACE.so), I get the following error message: myRTP.vxe: hidden symbol `_Unwind_SjLj_Unregister' in /home/local1/vx/VxWorks_6.1/gnu/3.3.2-vxworks61/target/powerpc-wrs-vxworks/lib/mrtp/libgcc.a(unwind-sjlj.o) is referenced by DSO collect2: ld returned 1 exit status As I read it, this message is telling me that there is a hidden symbol (_Unwind_SjLj_Unregister) in libgcc.a that is being referenced by the shared library (libACE.so). Is this a correct interpretation? I don't know why this symbol is referenced from libACE.so. If I put --trace-symbol=_Unwind_SjLj_Unregister on the ld command line when building the libACE.so library, sure enough, it shows that many object files making up the library reference this symbol. I can find nothing in the source files to suggest why, so I assume it is some kind of built-into-gcc construct. Does anyone know what is going on here or how I might resolve this? Is there a way to cause the symbols in libgcc.a to not be hidden? Thanks in advance for any help you can give... |
| Sponsored Links | ||
|
|
|
|||
|
Good question. I did some checking and I think I am doing it correctly:
I use -rpath on the link of the application so the loader knows where to find the library at run-time. However, the error occurs when I try to build the application, not when I run it. I use the -L switch to indicate where to find the library at build time, at it appears to find it - since it complains about it referenceing a hidden symbol. I think the real question comes down to: What is this _Unwind_SjLj_Unregister_ symbol and why is it referenced from a shared library whose source code does not contain anything like "*Unwind*", "*unwind*", etc.? It must be part of the way gcc generates code...(?) Also, the error message refers to "unwind-sjlj.o" as part of libgcc.a. Anybody know what that is for? Are apps supposed to reference symbols from there? Messy question, I know. Thanks for taking a stab at it... HB |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) |
|
| Thread Tools | |
| Display Modes | |
|
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Invalid ICMP type 3 code 3 error to a broadcast -samba error | raj | Linux software | 0 | 09-07-2006 04:38 AM |