1. 12 7月, 2012 7 次提交
  2. 11 7月, 2012 9 次提交
  3. 10 7月, 2012 2 次提交
  4. 09 7月, 2012 1 次提交
  5. 08 7月, 2012 2 次提交
    • R
      remove little-endian assumption from arm atomic.h · a3bdcd93
      Rich Felker 提交于
      this hidden endian dependency had left big endian arm badly broken.
      a3bdcd93
    • R
      fix dlsym RTLD_NEXT support · d93e028c
      Rich Felker 提交于
      previously this was being handled the same as a library-specific,
      dependency-order lookup on the next library in the global chain, which
      is likely to be utterly meaningless. instead the lookup needs to be in
      the global namespace, but omitting the initial portion of the global
      library chain up through the calling library.
      d93e028c
  6. 05 7月, 2012 3 次提交
  7. 04 7月, 2012 2 次提交
    • R
      configure: only use -ffloat-store on i386 · 2121b8a4
      Rich Felker 提交于
      this option is expensive and only used on old gcc's that lack
      -fexcess-precision=standed, but it's not needed on non-i386 archs
      where floating point does not have excess precision anyway.
      
      if musl ever supports m68k, i think it will need to be special-cased
      too. i'm not aware of any other archs with excess precision.
      2121b8a4
    • R
      jmp_buf overhaul fixing several issues · d6c0efe1
      Rich Felker 提交于
      on arm, the location of the saved-signal-mask flag and mask were off
      by one between sigsetjmp and siglongjmp, causing incorrect behavior
      restoring the signal mask. this is because the siglongjmp code assumed
      an extra slot was in the non-sig jmp_buf for the flag, but arm did not
      have this. now, the extra slot is removed for all archs since it was
      useless.
      
      also, arm eabi requires jmp_buf to have 8-byte alignment. we achieve
      that using long long as the type rather than with non-portable gcc
      attribute tags.
      d6c0efe1
  8. 03 7月, 2012 4 次提交
  9. 29 6月, 2012 1 次提交
    • R
      replace old and ugly crypt implementation · cdf51506
      Rich Felker 提交于
      the new version is largely the work of Solar Designer, with minor
      changes for integration with musl. compared to the old code, text size
      is reduced by about 7k, stack space usage by about 70k, and
      performance is greatly improved by avoiding expensive calculation of
      constant tables on each run.
      
      this version also adds support for extended des-based password hashes,
      which allow for unlimited key (password) length and configurable
      iteration counts.
      
      i've also published the interface for crypt_r in a new crypt.h header.
      especially since this is not a standard interface, i did not feel
      compelled to match the glibc abi for the crypt_data structure. the
      glibc structure is way too big to allocate on the stack; in fact it's
      so big that the first usage may cause the main thread to exceed its
      pre-committed stack size of 128k and thus could cause the program to
      crash even on systems with overcommit disabled. the only legitimate
      use of crypt_data for crypt_r is to store the hash string to return,
      so i've reserved 256 bytes, which should be more than sufficient
      (longest known password hashes are ~60 characters, and beyond that is
      possibly even exceeding some implementations' passwd file field size
      limit).
      cdf51506
  10. 26 6月, 2012 1 次提交
    • R
      fix arm crti/crtn code · 9abab94b
      Rich Felker 提交于
      lr must be saved because init/fini-section code from the compiler
      clobbers it. this was not a problem when i tested without gcc's
      crtbegin/crtend files present, but with them, musl on arm fails to
      work (infinite loop in _init).
      9abab94b
  11. 25 6月, 2012 1 次提交
  12. 24 6月, 2012 2 次提交
  13. 21 6月, 2012 5 次提交
    • R
      proper error handling for fcntl F_GETOWN on modern kernels · 4e8b0938
      Rich Felker 提交于
      on old kernels, there's no way to detect errors; we must assume
      negative syscall return values are pgrp ids. but if the F_GETOWN_EX
      fcntl works, we can get a reliable answer.
      4e8b0938
    • N
      math: fix fma bug on x86 (found by Bruno Haible with gnulib) · e5fb6820
      nsz 提交于
      The long double adjustment was wrong:
      The usual check is
        mant_bits & 0x7ff == 0x400
      before doing a mant_bits++ or mant_bits-- adjustment since
      this is the only case when rounding an inexact ld80 into
      double can go wrong. (only in nearest rounding mode)
      
      After such a check the ++ and -- is ok (the mantissa will end
      in 0x401 or 0x3ff).
      
      fma is a bit different (we need to add 3 numbers with correct
      rounding: hi_xy + lo_xy + z so we should survive two roundings
      at different places without precision loss)
      
      The adjustment in fma only checks for zero low bits
        mant_bits & 0x3ff == 0
      this way the adjusted value is correct when rounded to
      double or *less* precision.
      (this is an important piece in the fma puzzle)
      
      Unfortunately in this case the -- is not a correct adjustment
      because mant_bits might underflow so further checks are needed
      and this was the source of the bug.
      e5fb6820
    • R
      fix broken wcwidth tables · ac4fb51d
      Rich Felker 提交于
      unicode char data has both "W" and "F" wide types and the old table
      only included the "W" ones. this omitted U+3000 (ideographic space)
      and all the wide-ascii, etc.
      ac4fb51d
    • R
      support ld80 pseudo-denormal invalid bit patterns; treat them as nan · fad231b9
      Rich Felker 提交于
      this is silly, but it makes apps that read binary junk and interpret
      it as ld80 "safer", and it gets gnulib to stop replacing printf...
      fad231b9
    • R
      fix ptsname_r to conform to the upcoming posix requirements · c21a19d5
      Rich Felker 提交于
      it should return the error code rather than 0/-1 and setting errno.
      c21a19d5