1. 02 11月, 2012 2 次提交
    • R
      fix more unused variable warnings · a617a8e2
      Rich Felker 提交于
      some of these were coming from stdio functions locking files without
      unlocking them. I believe it's useful for this to throw a warning, so
      I added a new macro that's self-documenting that the file will never
      be unlocked to avoid the warning in the few places where it's wrong.
      a617a8e2
    • R
      fix unused variable warnings · 3a5aa8e4
      Rich Felker 提交于
      3a5aa8e4
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 23 10月, 2012 1 次提交
  9. 22 10月, 2012 4 次提交
  10. 21 10月, 2012 1 次提交
  11. 20 10月, 2012 4 次提交
  12. 19 10月, 2012 10 次提交
  13. 18 10月, 2012 2 次提交
  14. 17 10月, 2012 1 次提交
  15. 16 10月, 2012 1 次提交