This is the mail archive of the glibc-linux@ricardo.ecn.wfu.edu mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Why some symbols exported in .a but not .so


> 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.

No, it doesn't. Looking at 7.1.3 (Reserved Identifiers) of C99, I find
the following list

# - All identifiers that begin with an underscore and either an
# uppercase letter or another underscore are always reserved for any
# use.
# - All identifiers that begin with an underscore are always reserved
# for use as identifiers with file scope in both the ordinary and tag
# name spaces.
# - Each macro name in any of the following subclauses (including the
# future library directions) is reserved for use as specified if any
# of its associated headers is included; unless explicitly stated
# otherwise (see 7.1.4).
# - All identifiers with external linkage in any of the following
# subclauses (including the future library directions) are always
# reserved for use as identifiers with external linkage.143)
# - Each identifier with file scope listed in any of the following
# subclauses (including the future library directions) is reserved for
# use as macro and as an identifier with file scope in the same name
# space if any of its associated headers is included.
#
# No other identifiers are reserved.

So _nl_find_locale is be reserved for file-scope and tag names, but
not as a name of an external function.

Regards,
Martin

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]