libgcc.a, et. al.
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> 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