1. 15 9月, 2012 7 次提交
    • R
      fix syscall asm constraints for arm too · 075fdb90
      Rich Felker 提交于
      no problems were detected so far, but the constraints seem to have
      been invalid just like the mips ones.
      075fdb90
    • R
      revert low rounds-count limits in crypt hashes · aeaceb1f
      Rich Felker 提交于
      it was determined in discussion that these kind of limits are not
      sufficient to protect single-threaded servers against denial of
      service attacks from maliciously large round counts. the time scales
      simply vary too much; many users will want login passwords with rounds
      counts on a scale that gives decisecond latency, while highly loaded
      webservers will need millisecond latency or shorter.
      
      still some limit is left in place; the idea is not to protect against
      attacks, but to avoid the runtime of a single call to crypt being, for
      all practical purposes, infinite, so that configuration errors can be
      caught and fixed without bringing down whole systems. these limits are
      very high, on the order of minute-long runtimes for modest systems.
      aeaceb1f
    • R
      update mips cancellation-point syscall asm with 7-arg and r25 fixes · 88186838
      Rich Felker 提交于
      these fixes were already made to the normal syscall asm but not the
      cancellation point version.
      88186838
    • R
      fix buggy constraints in mips inline syscall asm · 4221f154
      Rich Felker 提交于
      if same register is used for input/output, the compiler must be told.
      otherwise is generates random junk code that clobbers the result. in
      pure syscall-wrapper functions, nothing went wrong, but in more
      complex functions where register allocation is non-trivial, things
      broke badly.
      4221f154
    • R
      workaround gcc got-register-reload performance problems in malloc · afd209de
      Rich Felker 提交于
      with this patch, the malloc in libc.so built with -Os is nearly the
      same speed as the one built with -O3. thus it solves the performance
      regression that resulted from removing the forced -O3 when building
      libc.so; now libc.so can be both small and fast.
      afd209de
    • R
      remove forced -O3 from shared library CFLAGS · 9f74574f
      Rich Felker 提交于
      I originally added -O3 for shared libraries to counteract very bad
      behavior by GCC when building PIC code: it insists on reloading the
      GOT register in static functions that need it, even if the address of
      the function is never leaked from the translation unit and all local
      callers of the function have already loaded the GOT register. this
      measurably degrades performance in a few key areas like malloc. the
      inlining done at -O3 avoids the issue, but that's really not a good
      reason for overriding the user's choice of optimization level.
      9f74574f
    • R
      use vfork if possible in posix_spawn · d62f4e98
      Rich Felker 提交于
      vfork is implemented as the fork syscall (with no atfork handlers run)
      on archs where it is not available, so this change does not introduce
      any change in behavior or regression for such archs.
      d62f4e98
  2. 14 9月, 2012 2 次提交
  3. 11 9月, 2012 7 次提交
    • R
      improve mips syscall asm constraints to use immediates, if possible · cfc09b1e
      Rich Felker 提交于
      by using the "ir" constraint (immediate or register) and the carefully
      constructed instruction addu $2,$0,%2 which can take either an
      immediate or a register for %2, the new inline asm admits maximal
      optimization with no register spillage to the stack when the compiler
      successfully performs constant propagration, but still works by
      allocating a register when the syscall number cannot be recognized as
      a constant. in the case of syscalls with 0-3 arguments it barely
      matters, but for 4-argument syscalls, using an immediate for the
      syscall number avoids creating a stack frame for the syscall wrapper
      function.
      cfc09b1e
    • R
      eliminate assumption that mips syscall restart preserves r25 · b94067ee
      Rich Felker 提交于
      all past and current kernel versions have done so, but there seems to
      be no reason it's necessary and the sentiment from everyone I've asked
      has been that we should not rely on it. instead, use r7 (an argument
      register) which will necessarily be preserved upon syscall restart.
      however this only works for 0-3 argument syscalls, and we have to
      resort to the function call for 4-argument syscalls.
      b94067ee
    • R
      asm for memmove on i386 and x86_64 · 2bf46931
      Rich Felker 提交于
      for the sake of simplicity, I've only used rep movsb rather than
      breaking up the copy for using rep movsd/q. on all modern cpus, this
      seems to be fine, but if there are performance problems, there might
      be a need to go back and add support for rep movsd/q.
      2bf46931
    • R
      a9555a99
    • R
      reenable word-at-at-time copying in memmove · 1701e4f3
      Rich Felker 提交于
      before restrict was added, memove called memcpy for forward copies and
      used a byte-at-a-time loop for reverse copies. this was changed to
      avoid invoking UB now that memcpy has an undefined copying order,
      making memmove considerably slower.
      
      performance is still rather bad, so I'll be adding asm soon.
      1701e4f3
    • R
      fix ppoll with null timeout argument · 3b5e6905
      Rich Felker 提交于
      3b5e6905
    • R
      add LIBCC (compiler runtime) logic and override to configure · 2c1cd239
      Rich Felker 提交于
      this should both fix the issue with ARM needing -lgcc_eh (although
      that's really a bug in the libgcc build process that's causing
      considerable bloat, which should be fixed) and make it easier to build
      musl using clang/llvm in place of gcc. unfortunately I don't know a
      good way to detect and support pcc's -lpcc since it's not in pcc's
      default library search path...
      2c1cd239
  4. 10 9月, 2012 8 次提交
  5. 09 9月, 2012 12 次提交
  6. 08 9月, 2012 4 次提交