1. 02 4月, 2013 2 次提交
  2. 24 3月, 2013 1 次提交
  3. 05 3月, 2013 1 次提交
    • R
      fix types for wctype_t and wctrans_t · da1442c9
      Rich Felker 提交于
      wctype_t was incorrectly "int" rather than "long" on x86_64. not only
      is this an ABI incompatibility; it's also a major design flaw if we
      ever wanted wctype_t to be implemented as a pointer, which would be
      necessary if locales support custom character classes, since int is
      too small to store a converted pointer. this commit fixes wctype_t to
      be unsigned long on all archs, matching the LSB ABI; this change does
      not matter for C code, but for C++ it affects mangling.
      
      the same issue applied to wctrans_t. glibc/LSB defines this type as
      const __int32_t *, but since no such definition is visible, I've just
      expanded the definition, int, everywhere.
      
      it would be nice if these types (which don't vary by arch) could be in
      wctype.h, but the OB XSI requirement in POSIX that wchar.h expose some
      types and functions from wctype.h precludes doing so. glibc works
      around this with some hideous hacks, but trying to duplicate that
      would go against the intent of musl's headers.
      da1442c9
  4. 13 1月, 2013 4 次提交
  5. 06 12月, 2012 3 次提交
  6. 04 12月, 2012 1 次提交
  7. 26 11月, 2012 2 次提交
  8. 24 11月, 2012 3 次提交
    • R
      begin sys/user.h and sys/reg.h fixes for ports · 4acc95e4
      Rich Felker 提交于
      aside from microblaze, these should be roughly correct for all archs
      now. some misc junk macros and typedefs are missing, which should
      probably be added for max compatibility with trace/debug tools.
      4acc95e4
    • R
      sigcontext/mcontext cleanup for arch-specific bits · c72fc238
      Rich Felker 提交于
      with these changes, the members/types of mcontext_t and related stuff
      should closely match the glibc definitions. unlike glibc, however, the
      definitions here avoid using typedefs as much as possible and work
      directly with the underlying types, to minimize namespace pollution
      from signal.h in the default (_BSD_SOURCE) profile.
      
      this is a first step in improving compatibility with applications
      which poke at context/register information -- mainly debuggers, trace
      utilities, etc. additional definitions in ucontext.h and other headers
      may be needed later.
      
      if feature test macros are used to request a conforming namespace,
      mcontext_t is replaced with an opaque structure of the equivalent size
      and alignment; conforming programs cannot examine its contents anyway.
      c72fc238
    • R
  9. 22 11月, 2012 1 次提交
    • R
      add back NSIG, removed from powerpc in last commit, but for all archs · 65b98213
      Rich Felker 提交于
      unlike the previous definition, NSIG/_NSIG is supposed to be one more
      than the highest signal number. adding this will allow simplifying
      libc-internal code that makes signal-related syscalls, which can be
      done as a later step. some apps might use it too; while this usage is
      questionable, it's at least not insane.
      65b98213
  10. 19 11月, 2012 1 次提交
  11. 18 11月, 2012 1 次提交
    • R
      fcntl.h: O_SEARCH was missing for powerpc · 8d2887f8
      rofl0r 提交于
      put some macros that do not differ between architectures in the
      main header and remove from bits.
      restructure mips header so it has the same structure as the others.
      8d2887f8
  12. 19 10月, 2012 1 次提交
  13. 22 9月, 2012 1 次提交
  14. 16 9月, 2012 1 次提交
    • R
      add O_EXEC open mode · 6d05d862
      Rich Felker 提交于
      the linux O_PATH mode provides the necessary semantics for both the
      O_SEARCH and O_EXEC modes defined and required by POSIX 2008.
      6d05d862
  15. 14 9月, 2012 1 次提交
    • R
      add O_PATH/O_SEARCH support to fcntl.h · b238b37a
      Rich Felker 提交于
      I'm not 100% sure that Linux's O_PATH meets the POSIX requirements for
      O_SEARCH, but it seems very close if not perfect. and old kernels
      ignore it, so O_SEARCH will still work as desired as long as the
      caller has read permissions to the directory.
      b238b37a
  16. 09 9月, 2012 1 次提交
    • R
      syscall organization overhaul · 208eb584
      Rich Felker 提交于
      now public syscall.h only exposes __NR_* and SYS_* constants and the
      variadic syscall function. no macros or inline functions, no
      __syscall_ret or other internal details, no 16-/32-bit legacy syscall
      renaming, etc. this logic has all been moved to src/internal/syscall.h
      with the arch-specific parts in arch/$(ARCH)/syscall_arch.h, and the
      amount of arch-specific stuff has been reduced to a minimum.
      
      changes still need to be reviewed/double-checked. minimal testing on
      i386 and mips has already been performed.
      208eb584
  17. 03 9月, 2012 1 次提交
    • R
      avoid "inline" in public headers for strict c89 compatibility · fb247faf
      Rich Felker 提交于
      while musl itself requires a c99 compiler, some applications insist on
      being compiled with c89 compilers, and use of "inline" in the headers
      was breaking them. much of this had been avoided already by just
      skipping the inline keyword in pre-c99 compilers or modes, but this
      new unified solution is cleaner and may/should result in better code
      generation in the default gcc configuration.
      fb247faf
  18. 11 8月, 2012 1 次提交
    • R
      use int instead of long for ptrdiff_t on all 32-bit archs · e3ebe7db
      Rich Felker 提交于
      this is needed to match the underlying "ABI" standards. it's not
      really an ABI issue since the binary representations are the same, but
      having the wrong type can lead to errors when the type arising from a
      difference-of-pointers expression does not match the defined type of
      ptrdiff_t. most of the problems affect C++, not C.
      e3ebe7db
  19. 10 8月, 2012 1 次提交
  20. 13 7月, 2012 1 次提交
    • R
      workaround another sendmsg kernel bug on 64-bit machines · 96107564
      Rich Felker 提交于
      the kernel wrongly expects the cmsg length field to be size_t instead
      of socklen_t. in order to work around the issue, we have to impose a
      length limit and copy to a local buffer. the length limit should be
      more than sufficient for any real-world use; these headers are only
      used for passing file descriptors and permissions between processes
      over unix sockets.
      96107564
  21. 09 7月, 2012 1 次提交
  22. 04 7月, 2012 1 次提交
    • 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
  23. 24 6月, 2012 1 次提交
  24. 21 6月, 2012 1 次提交
  25. 25 5月, 2012 1 次提交
  26. 23 5月, 2012 1 次提交
    • R
      fix missing _BSD_SOURCE support in bits/*.h · 030b452b
      Rich Felker 提交于
      this is actually rather ugly, and would get even uglier if we ever
      want to support further feature test macros. at some point i may
      factor the bits headers into separate files for C base, POSIX base,
      and nonstandard extensions (the only distinctions that seem to matter
      now) and then the logic for which to include can go in the main header
      rather than being duplicated for each arch. the downside of this is
      that it would result in more files having to be opened during
      compilation, so as long as the ugliness does not grow, i'm inclined to
      leave it alone for now.
      030b452b
  27. 25 4月, 2012 1 次提交
  28. 16 4月, 2012 2 次提交
  29. 22 3月, 2012 1 次提交
    • R
      fix DECIMAL_DIG definitions · 47db8903
      Rich Felker 提交于
      DECIMAL_DIG is not the same as LDBL_DIG
      
      type_DIG is the maximimum number of decimal digits that can survive a
      round trip from decimal to type and back to decimal.
      
      DECIMAL_DIG is the minimum number of decimal digits required in order
      for any floating point type to survive the round trip to decimal and
      back, and it is generally larger than LDBL_DIG. since the exact
      formula is non-trivial, and defining it larger than necessary may be
      legal but wasteful, just define the right value in bits/float.h.
      47db8903
  30. 16 2月, 2012 1 次提交