1. 17 8月, 2020 1 次提交
  2. 18 10月, 2019 2 次提交
    • R
      make endian.h expose unprefixed macros, functions in standard profile · 316730cd
      Rich Felker 提交于
      the resolution of Austin Group issue #162 adds endian.h as a standard
      header for future versions of the standard, making it no longer
      acceptable for some of the functionality to be hidden behind
      _BSD_SOURCE or _GNU_SOURCE. the definitions of the [lb]etoh{16,32,64}
      function-like macros are kept conditional since they are alternate
      names which the standard did not adopt.
      316730cd
    • R
      move __BYTE_ORDER definition to alltypes.h · 97d35a55
      Rich Felker 提交于
      this change is motivated by the intersection of several factors.
      presently, despite being a nonstandard header, endian.h is exposing
      the unprefixed byte order macros and functions only if _BSD_SOURCE or
      _GNU_SOURCE is defined. this is to accommodate use of endian.h from
      other headers, including bits headers, which need to define structure
      layout in terms of endianness. with time64 switch-over, even more
      headers will need to do this.
      
      at the same time, the resolution of Austin Group issue 162 makes
      endian.h a standard header for POSIX-future, requiring that it expose
      the unprefixed macros and the functions even in standards-conforming
      profiles. changes to meet this new requirement would break existing
      internal usage of endian.h by causing it to violate namespace where
      it's used.
      
      instead, have the arch's alltypes.h define __BYTE_ORDER, either as a
      fixed constant or depending on the right arch-specific predefined
      macros for determining endianness. explicit literals 1234 and 4321 are
      used instead of __LITTLE_ENDIAN and __BIG_ENDIAN so that there's no
      danger of getting the wrong result if a macro is undefined and
      implicitly evaluates to 0 at the preprocessor level.
      
      the powerpc (32-bit) bits/endian.h being removed had logic for varying
      endianness, but our powerpc arch has never supported that and has
      always been big-endian-only. this logic is not carried over to the new
      __BYTE_ORDER definition in alltypes.h.
      97d35a55
  3. 08 9月, 2012 1 次提交
    • R
      default features: make musl usable without feature test macros · c1a9658b
      Rich Felker 提交于
      the old behavior of exposing nothing except plain ISO C can be
      obtained by defining __STRICT_ANSI__ or using a compiler option (such
      as -std=c99) that predefines it. the new default featureset is POSIX
      with XSI plus _BSD_SOURCE. any explicit feature test macros will
      inhibit the default.
      
      installation docs have also been updated to reflect this change.
      c1a9658b
  4. 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
  5. 07 5月, 2012 1 次提交
    • R
      take byte order from gcc if gcc has defined it · a3b20f67
      Rich Felker 提交于
      this only works with gcc 4.6 and later, but it allows us to support
      non-default endianness on archs like arm, mips, ppc, etc. that can do
      both without having separate header sets for both variants, and it
      saves one #include even on fixed-endianness archs like x86.
      a3b20f67
  6. 04 5月, 2012 1 次提交
  7. 22 4月, 2012 2 次提交
  8. 12 2月, 2011 1 次提交