This is the mail archive of the
glibc-linux@ricardo.ecn.wfu.edu
mailing list for the glibc project.
Re: Why some symbols exported in .a but not .so
- To: glibc-linux at ricardo dot ecn dot wfu dot edu
- Subject: Re: Why some symbols exported in .a but not .so
- From: Kaz Kylheku <kaz at ashi dot footprints dot net>
- Date: Sat, 5 Feb 2000 16:34:18 -0800 (PST)
- Reply-To: glibc-linux at ricardo dot ecn dot wfu dot edu
On Sat, 5 Feb 2000, Chan Shih-Ping wrote:
> Date: Sat, 5 Feb 2000 21:35:08 +0800 (SGT)
> From: Chan Shih-Ping <cshihpin@dso.org.sg>
> Reply-To: glibc-linux@ricardo.ecn.wfu.edu
> To: glibc-linux@ricardo.ecn.wfu.edu
> Subject: Why some symbols exported in .a but not .so
>
>
> New to glibc...
>
> Why are some symbols global in the static library
> but not in the shared library.
>
> For example, internal functions
> like _nl_find_locale are visible in the archive
> library.
Because there are tricks you can do in shared libraries to get rid of such
symbols that aren't availble when making archives.
In any case external names like _nl_find_locale are in a reserved namespace.
ANSI C reserves all external names which have the form _[a-z].* regardless of
the inclusion of a standard header, which makes these identifiers available to
a library implementor for internal use. If your program uses them, its
behavior is undefined.