This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: libgcc.a, et. al.
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Perry Smith <pedz at easesoftware dot net>
- Cc: gcc at gcc dot gnu dot org, gcc-help at gcc dot gnu dot org
- Date: Sun, 08 Jan 2006 12:13:23 -0500
- Subject: Re: libgcc.a, et. al.
- References: <2058C243-1013-4D3A-84BE-3D9D3197AED8@easesoftware.net>
>>>>> 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.
David