1. 09 11月, 2012 2 次提交
    • R
      clean up stdio_impl.h · 835f9f95
      Rich Felker 提交于
      this header evolved to facilitate the extremely lazy practice of
      omitting explicit includes of the necessary headers in individual
      stdio source files; not only was this sloppy, but it also increased
      build time.
      
      now, stdio_impl.h is only including the headers it needs for its own
      use; any further headers needed by source files are included directly
      where needed.
      835f9f95
    • R
      fix dlsym asm for mips · 1e717ea3
      Rich Felker 提交于
      saving the return address from the delay slot is not valid -- by the
      time the instruction executes, the return address has already been
      replaced.
      1e717ea3
  2. 06 11月, 2012 2 次提交
    • R
      improve SOCK_NONBLOCK/SOCK_CLOEXEC fallback code · e8a0b27a
      Rich Felker 提交于
      checking for EINVAL should be sufficient, but qemu user emulation
      returns EPROTONOSUPPORT in some of the failure cases, and it seems
      conceivable that other kernels doing linux-emulation could make the
      same mistake. since DNS lookups and other important code might break
      if the fallback does not get invoked, be extra careful and check for
      either error.
      
      note that it's important NOT to perform the fallback code on other
      errors such as resource-exhaustion cases, since the fallback is not
      atomic and will lead to file-descriptor leaks in multi-threaded
      programs that use exec. the fallback code is only "safe" to run when
      the initial failure is caused by the application's choice of
      arguments, not the system state.
      e8a0b27a
    • R
      fix numerous mips abi constant definition mismatches · 32d6d77e
      Rich Felker 提交于
      32d6d77e
  3. 05 11月, 2012 1 次提交
  4. 02 11月, 2012 3 次提交
  5. 01 11月, 2012 2 次提交
    • R
      b367ab15
    • R
      add dl_iterate_phdr interface · 18c0e02e
      Rich Felker 提交于
      patches by Alex Caudill (npx). the dynamic-linked version is almost
      identical to the final submitted patch; I just added a couple missing
      lines for saving the phdr address when the dynamic linker is invoked
      directly to run a program, and removed a couple to avoid introducing
      another unnecessary type. the static-linked version is based on npx's
      draft. it could use some improvements which are contingent on the
      startup code saving some additional information for later use.
      18c0e02e
  6. 29 10月, 2012 3 次提交
    • R
      system is a cancellation point · 76f28cfc
      Rich Felker 提交于
      ideally, system would also be cancellable while running the external
      command, but I cannot find any way to make that work without either
      leaking zombie processes or introducing behavior that is far outside
      what the standard specifies. glibc handles cancellation by killing the
      child process with SIGKILL, but this could be unsafe in that it could
      leave the data being manipulated by the command in an inconsistent
      state.
      76f28cfc
    • R
      release notes for 0.9.7 · dd762cf6
      Rich Felker 提交于
      dd762cf6
    • R
      fix shmdt syscall calling convention on old archs · 86dd1e7b
      Rich Felker 提交于
      86dd1e7b
  7. 28 10月, 2012 1 次提交
    • R
      separate getc/putc from fgetc/fputc · 8fc7b596
      Rich Felker 提交于
      for conformance, two functions should not have the same address. a
      conforming program could use the addresses of getc and fgetc in ways
      that assume they are distinct. normally i would just use a wrapper,
      but these functions are so small and performance-critical that an
      extra layer of function call could make the one that's a wrapper
      nearly twice as slow, so I'm just duplicating the code instead.
      8fc7b596
  8. 27 10月, 2012 3 次提交
    • R
      update documentation · 3ffb556c
      Rich Felker 提交于
      3ffb556c
    • R
      further pcc fixes in configure · cd31a1fc
      Rich Felker 提交于
      -lpcc only works if -nostdlib is not passed, so it's useless. instead,
      use -print-file-name to look up the full pathname for libpcc.a, and
      check whether that succeeds before trying to link with the result.
      
      also, silence pcc's junk printed on stdout during tests.
      cd31a1fc
    • R
      add support for detecting pcc's compiler runtime · 3d99266b
      Rich Felker 提交于
      in old versions of pcc, the directory containing libpcc.a was not in
      the library path, and other options like -print-file-name may have
      been needed to locate it. however, -print-file-name itself seems to
      have been added around the same time that the directory was added to
      the search path, and moreover, I see no evidence that older versions
      of pcc are capable of building a working musl shared library. thus, it
      seems reasonable to just test whether -lpcc is accepted.
      3d99266b
  9. 26 10月, 2012 2 次提交
    • R
      use explicit visibility to optimize a few hot-path function calls · 607b05ac
      Rich Felker 提交于
      on x86 and some other archs, functions which make function calls which
      might go through a PLT incur a significant overhead cost loading the
      GOT register prior to making the call. this load is utterly useless in
      musl, since all calls are bound at library-creation time using
      -Bsymbolic-functions, but the compiler has no way of knowing this, and
      attempts to set the default visibility to protected have failed due to
      bugs in GCC and binutils.
      
      this commit simply manually assigns hidden/protected visibility, as
      appropriate, to a few internal-use-only functions which have many
      callers, or which have callers that are hot paths like getc/putc. it
      shaves about 5k off the i386 libc.so with -Os. many of the
      improvements are in syscall wrappers, where the benefit is just size
      and performance improvement is unmeasurable noise amid the syscall
      overhead. however, stdio may be measurably faster.
      
      if in the future there are toolchains that can do the same thing
      globally without introducing linking bugs, it might be worth
      considering removing these workarounds.
      607b05ac
    • R
      configure: test not just compiling but linking with -march/-mtune · 80a45458
      Rich Felker 提交于
      pcc wrongly passes any option beginning with -m to the linker, and
      will break at link time if these options were added to CFLAGS. testing
      linking lets us catch this at configure time and skip them.
      80a45458
  10. 25 10月, 2012 3 次提交
    • R
      correct locking in stdio functions that tried to be lock-free · c8cb6bcd
      Rich Felker 提交于
      these functions must behave as if they obtain the lock via flockfile
      to satisfy POSIX requirements. since another thread can provably hold
      the lock when they are called, they must wait to obtain the lock
      before they can return, even if the correct return value could be
      obtained without locking. in the case of fclose and freopen, failure
      to do so could cause correct (albeit obscure) programs to crash or
      otherwise misbehave; in the case of feof, ferror, and fwide, failure
      to obtain the lock could sometimes return incorrect results. in any
      case, having these functions proceed and return while another thread
      held the lock was wrong.
      c8cb6bcd
    • R
      greatly improve freopen behavior · 892cafff
      Rich Felker 提交于
      1. don't open /dev/null just as a basis to copy flags; use shared
      __fmodeflags function to get the right file flags for the mode.
      
      2. handle the case (probably invalid, but whatever) case where the
      original stream's file descriptor was closed; previously, the logic
      re-closed it.
      
      3. accept the "e" mode flag for close-on-exec; update dup3 to fallback
      to using dup2 so we can simply call __dup3 instead of putting fallback
      logic in freopen itself.
      892cafff
    • R
      708c91f4
  11. 23 10月, 2012 1 次提交
  12. 22 10月, 2012 4 次提交
  13. 21 10月, 2012 1 次提交
  14. 20 10月, 2012 4 次提交
  15. 19 10月, 2012 8 次提交