• R
    overhaul internally-public declarations using wrapper headers · 13d1afa4
    Rich Felker 提交于
    commits leading up to this one have moved the vast majority of
    libc-internal interface declarations to appropriate internal headers,
    allowing them to be type-checked and setting the stage to limit their
    visibility. the ones that have not yet been moved are mostly
    namespace-protected aliases for standard/public interfaces, which
    exist to facilitate implementing plain C functions in terms of POSIX
    functionality, or C or POSIX functionality in terms of extensions that
    are not standardized. some don't quite fit this description, but are
    "internally public" interfacs between subsystems of libc.
    
    rather than create a number of newly-named headers to declare these
    functions, and having to add explicit include directives for them to
    every source file where they're needed, I have introduced a method of
    wrapping the corresponding public headers.
    
    parallel to the public headers in $(srcdir)/include, we now have
    wrappers in $(srcdir)/src/include that come earlier in the include
    path order. they include the public header they're wrapping, then add
    declarations for namespace-protected versions of the same interfaces
    and any "internally public" interfaces for the subsystem they
    correspond to.
    
    along these lines, the wrapper for features.h is now responsible for
    the definition of the hidden, weak, and weak_alias macros. this means
    source files will no longer need to include any special headers to
    access these features.
    
    over time, it is my expectation that the scope of what is "internally
    public" will expand, reducing the number of source files which need to
    include *_impl.h and related headers down to those which are actually
    implementing the corresponding subsystems, not just using them.
    13d1afa4
lookup_name.c 11.6 KB