1. 04 12月, 2012 3 次提交
    • R
      7aa73925
    • R
      add _ALL_SOURCE as an alias for _GNU_SOURCE/enable-everything · b3175f5c
      Rich Felker 提交于
      reportedly this is a semi-common practice among some BSDs and a few
      other systems, and will improve application compatibility.
      b3175f5c
    • R
      feature test macros: make _GNU_SOURCE enable everything · 769fd4ce
      Rich Felker 提交于
      previously, a few BSD features were enabled only by _BSD_SOURCE, not
      by _GNU_SOURCE. since _BSD_SOURCE is default in the absence of other
      feature test macros, this made adding _GNU_SOURCE to a project not a
      purely additive feature test macro; it actually caused some features
      to be suppressed.
      
      most of the changes made by this patch actually bring musl in closer
      alignment with the glibc behavior for _GNU_SOURCE. the only exceptions
      are the added visibility of functions like strlcpy which were BSD-only
      due to being disliked/rejected by glibc maintainers. here, I feel the
      consistency of having _GNU_SOURCE mean "everything", and especially
      the property of it being purely additive, are more valuable than
      hiding functions which glibc does not have.
      769fd4ce
  2. 03 12月, 2012 1 次提交
    • R
      fix a couple issues in the inttypes.h PRI/SCN macros · 216b7065
      Rich Felker 提交于
      most importantly, the format/scan macros for the [u]int_fast16_t and
      [u]int_fast32_t types were defined incorrectly assuming these types
      would match the native word/pointer size. this is incorrect on any
      64-bit system; the "fast" types for 16- and 32-bit integers are simply
      int.
      
      another issue which was "only a warning" (despite being UB) is that
      the choice of "l" versus "ll" was incorrect for 64-bit types on 64-bit
      machines. while it would "work" to always use "long long" for 64-bit
      types, we use "long" on 64-bit machines to match what glibc does and
      what the ABI documents recommend. the macro definitions were probably
      right in very old versions of musl, but became wrong when we aligned
      most closely with the 'standard' ABI. checking UINTPTR_MAX is an easy
      way to get the system wordsize without pulling in new headers.
      
      finally, the useless __PRIPTR macro to allow the underlying type of
      [u]intptr_t to vary has been removed. we are using "long" on all
      targets, and thankfully this matches what glibc does, so I do not
      envision ever needing to change it. thus, the "l" has just been
      incorporated directly in the strings.
      216b7065
  3. 01 12月, 2012 2 次提交
    • R
      provide NSIG under _BSD_SOURCE (default) as well as _GNU_SOURCE · 7dcb640d
      Rich Felker 提交于
      this fixes a regression related to the changes made to bits/signal.h
      between 0.9.7 and 0.9.8 that broke some (non-portable) software.
      7dcb640d
    • R
      fix ordering of shared library ctors with respect to libc init · a7936f61
      Rich Felker 提交于
      previously, shared library constructors were being called before
      important internal things like the environment (extern char **environ)
      and hwcap flags (needed for sjlj to work right with float on arm) were
      initialized in __libc_start_main. rather than trying to have to
      dynamic linker make sure this stuff all gets initialized right, I've
      opted to just defer calling shared library constructors until after
      the main program's entry point is reached. this also fixes the order
      of ctors to be the exact reverse of dtors, which is a desirable
      property and possibly even mandated by some languages.
      
      the main practical effect of this change is that shared libraries
      calling getenv from ctors will no longer fail.
      a7936f61
  4. 27 11月, 2012 5 次提交
  5. 26 11月, 2012 4 次提交
  6. 24 11月, 2012 9 次提交
  7. 22 11月, 2012 6 次提交
  8. 21 11月, 2012 1 次提交
  9. 19 11月, 2012 9 次提交