1. 09 9月, 2020 1 次提交
  2. 17 8月, 2020 1 次提交
  3. 27 7月, 2019 1 次提交
    • R
      refactor thrd_sleep and nanosleep in terms of clock_nanosleep · 331993e3
      Rich Felker 提交于
      for namespace-safety with thrd_sleep, this requires an alias, which is
      also added. this eliminates all but one direct call point for
      nanosleep syscalls, and arranges that 64-bit time_t conversion logic
      will only need to exist in one file rather than three.
      
      as a bonus, clock_nanosleep with CLOCK_REALTIME and empty flags is now
      implemented as SYS_nanosleep, thereby working on older kernels that
      may lack POSIX clocks functionality.
      331993e3
  4. 13 9月, 2018 2 次提交
    • R
      use wrapper headers to hide most namespaced/internally-public symbols · 0676c3a3
      Rich Felker 提交于
      not all prefixed symbols can be made hidden. some are part of
      ABI-compat (e.g. __nl_langinfo_l) and others are ABI as a consequence
      of the way copy relocations for weak aliases work in ELF shared
      libraries. most, however, can be made hidden.
      
      with this commit, there should be no remaining unintentionally visible
      symbols exported from libc.so.
      0676c3a3
    • 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