1. 23 2月, 2014 5 次提交
  2. 22 2月, 2014 5 次提交
    • R
      sys/sem.h: cheat and make all longs use time_t instead · 1a2e55b9
      rofl0r 提交于
      most of the members should be time_t anyway, and time_t has the
      correct semantics for "syscall_long", so it works on all archs, even x32.
      1a2e55b9
    • R
      3b168ce1
    • R
      internal/syscall.h: add syscall_arg_t macro · 5cc1d920
      rofl0r 提交于
      some 32-on-64 archs require that the actual syscall args be long long.
      in that case syscall_arch.h can define syscall_arg_t to whatever it needs
      and syscall.h picks it up.
      all other archs just use long as usual.
      5cc1d920
    • R
      internal/syscall.h: use a macro for the syscall args casts · bf84967c
      rofl0r 提交于
      this allows syscall_arch.h to define the macro __scc if special
      casting is needed, as is the case for x32, where the actual syscall
      arguments are 64bit, but, in case of pointers, would get sign-extended
      and thus become invalid.
      bf84967c
    • R
      add fallback emulation for accept4 on old kernels · dc01e2cb
      Rich Felker 提交于
      the other atomic FD_CLOEXEC interfaces (dup3, pipe2, socket) already
      had such emulation in place. the justification for doing the emulation
      here is the same as for the other functions: it allows applications to
      simply use accept4 rather than having to have their own fallback code
      for ENOSYS/EINVAL (which one you get is arch-specific!) and there is
      no reasonable way an application could benefit from knowing the
      operation is emulated/non-atomic since there is no workaround at the
      application level for non-atomicity (that is the whole reason these
      interfaces were added).
      dc01e2cb
  3. 19 2月, 2014 1 次提交
  4. 14 2月, 2014 2 次提交
  5. 12 2月, 2014 2 次提交
  6. 11 2月, 2014 1 次提交
  7. 10 2月, 2014 3 次提交
    • B
      clone: make clone a wrapper around __clone · fdf5f1b1
      Bobby Bingham 提交于
      The architecture-specific assembly versions of clone did not set errno on
      failure, which is inconsistent with glibc.  __clone still returns the error
      via its return value, and clone is now a wrapper that sets errno as needed.
      The public clone has also been moved to src/linux, as it's not directly
      related to the pthreads API.
      
      __clone is called by pthread_create, which does not report errors via
      errno.  Though not strictly necessary, it's nice to avoid clobbering errno
      here.
      fdf5f1b1
    • S
      7ee48f7b
    • S
      fix fesetenv(FE_DFL_ENV) on i386 · 929729d4
      Szabolcs Nagy 提交于
      the default fenv was not set up properly, in particular the
      tag word that indicates the contents of the x87 registers was
      set to 0 (used) instead of 0xffff (empty)
      
      this could cause random crashes after setting the default fenv
      because it corrupted the fpu stack and then any float computation
      gives NaN result breaking the program logic (usually after a
      float to integer conversion).
      929729d4
  8. 07 2月, 2014 2 次提交
    • R
      in fdopen, avoid setting O_APPEND flag if it's already set · 758ab35a
      Rich Felker 提交于
      this saves a syscall in the case where the underlying open already
      took place with O_APPEND, which is common because fopen with append
      modes sets O_APPEND at the time of open before passing the file
      descriptor to __fdopen.
      758ab35a
    • R
      fix ftello result for append streams with unflushed output · 3af2edee
      Rich Felker 提交于
      when there is unflushed output, ftello (and ftell) compute the logical
      stream position as the underlying file descriptor's offset plus an
      adjustment for the amount of buffered data. however, this can give the
      wrong result for append-mode streams where the unflushed writes should
      adjust the logical position to be at the end of the file, as if a seek
      to end-of-file takes place before the write.
      
      the solution turns out to be a simple trick: when ftello (indirectly)
      calls lseek to determine the current file offset, use SEEK_END instead
      of SEEK_CUR if the stream is append-mode and there's unwritten
      buffered data.
      
      the ISO C rules regarding switching between reading and writing for a
      stream opened in an update mode, along with the POSIX rules regarding
      switching "active handles", conveniently leave undefined the
      hypothetical usage cases where this fix might lead to observably
      incorrect offsets.
      
      the bug being fixed was discovered via the test case for glibc issue
      3af2edee
  9. 06 2月, 2014 6 次提交
    • R
      reduce namespace pollution in netinet/udp.h · 89511cd9
      Rich Felker 提交于
      the affected part of the header is responsible for providing both GNU
      and BSD versions of the udphdr structure. previously, the
      namespace-polluting GNU names were always used for the actual struct
      members, and the BSD names, which are named in a manner resembling a
      sane namespace, were always macros defined to expand to the GNU names.
      now, unless _GNU_SOURCE is defined, the BSD names are used as the
      actual structure members, and the macros and GNU names only come into
      play when the application requests them.
      89511cd9
    • R
      fix use of legacy u_intN_t types in netinet/tcp.h · 685b1cd4
      Rich Felker 提交于
      policy is to avoid using these types except where they are needed for
      namespace conformance. C99-style stdint.h types should be used
      instead.
      685b1cd4
    • R
      add support for BSD struct tcphdr in netinet/tcp.h · fdaaa68d
      Rich Felker 提交于
      there are two versions of this structure: the BSD version and the GNU
      version. previously only the GNU version was supported. the only way
      to support both simultaneously is with an anonymous union, which was a
      nonstandard extension prior to C11, so some effort is made to avoid
      breakage with compilers which do not support anonymous unions.
      
      this commit is based on a patch by Timo Teräs, but with some changes.
      in particular, the GNU version of the structure is not exposed unless
      _GNU_SOURCE is defined; this both avoids namespace pollution and
      dependency on anonymous unions in the default feature profile.
      fdaaa68d
    • R
      add nonstandard timespec/timeval conversion macros in sys/time.h · ad87c2ee
      Rich Felker 提交于
      these are poorly designed (illogical argument order) and even poorly
      implemented (brace issues) on glibc, but unfortunately some software
      is using them. we could consider removing them again in the future at
      some point if they're documented as deprecated, but for now the
      simplest thing to do is just to provide them under _GNU_SOURCE.
      ad87c2ee
    • T
      add NO_ADDRESS macro to netdb.h as an alias for NO_DATA · a0351ee6
      Timo Teräs 提交于
      some applications expect it to be defined, despite the standard making
      it impossible for it to ever be returned as a value distinct from
      NO_DATA. since these macros are outside the scope of the current
      standards, no special effort is made to hide NO_ADDRESS under
      conditions where the others are exposed.
      a0351ee6
    • T
      add legacy functions setkey() and encrypt() · 16a3580e
      Timo Teräs 提交于
      16a3580e
  10. 02 2月, 2014 1 次提交
    • R
      fix nftw FTW_MOUNT flag · 73871ee3
      Rich Felker 提交于
      the incorrect check for crossing device boundaries was preventing nftw
      from traversing anything except the initially provided pathname.
      73871ee3
  11. 23 1月, 2014 1 次提交
  12. 21 1月, 2014 3 次提交
    • R
      add version.h to .gitignore; it is a generated file · 59314304
      Rich Felker 提交于
      59314304
    • R
      fix crash in dynamic linker when certain copy relocations are unsatisfied · 69003e05
      Rich Felker 提交于
      STB_WEAK is only a weak reference for undefined symbols (those with a
      section of SHN_UNDEF). otherwise, it's a weak definition. normally
      this distinction would not matter, since a relocation referencing a
      symbol that also provides a definition (not SHN_UNDEF) will always
      succeed in finding the referenced symbol itself. however, in the case
      of copy relocations, the referenced symbol itself is ignored in order
      to search for another symbol to copy from, and thus it's possible that
      no definition is found. in this case, if the symbol being resolved
      happened to be a weak definition, it was misinterpreted as a weak
      reference, suppressing the error path and causing a crash when the
      copy relocation was performed with a null source pointer passed to
      memcpy.
      
      there are almost certainly still situations in which invalid
      combinations of symbol and relocation types can cause the dynamic
      linker to crash (this is pretty much inevitable), but the intent is
      that crashes not be possible for symbol/relocation tables produced by
      a valid linker.
      69003e05
    • S
      fix initstate to make the state buffer usable in setstate · 1569f396
      Szabolcs Nagy 提交于
      setstate could use the results of previous initstate or setstate
      calls (they return the old state buffer), but the documentation
      requires that an initialized state buffer should be possible to
      use in setstate immediately, which means that initstate should
      save the generator parameters in it.
      
      I also removed the copyright notice since it is present in the
      copyright file.
      1569f396
  13. 16 1月, 2014 2 次提交
  14. 12 1月, 2014 3 次提交
  15. 09 1月, 2014 3 次提交