libgcc.a, et. al.

David Edelsohn
Sun Jan 8 17:13:00 GMT 2006

>>>>> Perry Smith writes:

Perry> I can not find a description of what the different versions of libgcc  
Perry> and libstd++ are for.  Some versions are obvious, others are not.

Perry> In particular, I am trying to determine what these libraries are  
Perry> for:  (this is on AIX version 5.3)  (how are they different from each  
Perry> other perhaps is a better way to phrase my question.  Or what  
Perry> objective do each of these have?)

Perry> gcc/powerpc-ibm-aix5.3.0.0/4.0.2/libgcc_eh.a
Perry> libgcc_s.a
Perry> libsupc++.a
Perry> libstdc++.a

Perry> To provide some background, I am attempting to write a device driver  
Perry> on AIX 5.3 using C++.  I want to use the try/catch/throw exception  
Perry> part of C++.  I realize this may be an uphill battle but I think it  
Perry> will be worth it.  To do this, the driver must be linked statically  
Perry> except for references resolved by exports provided by the AIX kernel  
Perry> services.  I've been writing drivers using xlc on AIX for 18+ years  
Perry> so I am familiar with the AIX environment using C but want to start  
Perry> using C++.

	libgcc is a general, low-level runtime support library for GCC.
On AIX, the XLC support routines are provided by the system libc.
libgcc_s is the shared library version of the support library.  libstdc++
provides the standard C++ library.  libgcc_eh.a provides general support
for exception handling for all GCC languages. libsupc++ is included in
libstdc++.  The VAC++ runtime libraries are much like the G++ libraries,
but the two are incompatible.

	GCC, including G++, provides a "-static" option to link an
application staticly.  GCC invokes the appropriate options for AIX
(similarly, an AIX shared object can be created with the "-shared"
commandline option).  One can examine the options generated for the linker
with the "-v" commandline option.

	Using a C++ applications with exception handling to build a device
driver is complicated, even without using G++.  G++ needs all of its GCC
and C++-related support libraries for exception handling.


More information about the Gcc-help mailing list