1. 17 8月, 2020 1 次提交
  2. 03 11月, 2019 1 次提交
    • R
      switch all existing 32-bit archs to 64-bit time_t · 38143339
      Rich Felker 提交于
      this commit preserves ABI fully for existing interface boundaries
      between libc and libc consumers (applications or libraries), by
      retaining existing symbol names for the legacy 32-bit interfaces and
      redirecting sources compiled against the new headers to alternate
      symbol names. this does not necessarily, however, preserve the
      pairwise ABI of libc consumers with one another; where they use
      time_t-derived types in their interfaces with one another, it may be
      necessary to synchronize updates with each other.
      
      the intent is that ABI resulting from this commit already be stable
      and permanent, but it will not be officially so until a release is
      made. changes to some header-defined types that do not play any role
      in the ABI between libc and its consumers may still be subject to
      change.
      
      mechanically, the changes made by this commit for each 32-bit arch are
      as follows:
      
      - _REDIR_TIME64 is defined to activate the symbol redirections in
        public headers
      
      - COMPAT_SRC_DIRS is defined in arch.mak to activate build of ABI
        compat shims to serve as definitions for the original symbol names
      
      - time_t and suseconds_t definitions are changed to long long (64-bit)
      
      - IPC_STAT definition is changed to add the IPC_TIME64 bit (0x100),
        triggering conversion of semid_ds, shmid_ds, and msqid_ds split
        low/high time bits into new time_t members
      
      - structs semid_ds, shmid_ds, msqid_ds, and stat are modified to add
        new 64-bit time_t/timespec members at the end, maintaining existing
        layout of other members.
      
      - socket options (SO_*) and ioctl (sockios) command macros are
        redefined to use the kernel's "_NEW" values.
      
      in addition, on archs where vdso clock_gettime is used, the
      VDSO_CGT_SYM macro definition in syscall_arch.h is changed to use a
      new time64 vdso function if available, and a new VDSO_CGT32_SYM macro
      is added for use as fallback on kernels lacking time64.
      38143339
  3. 30 7月, 2019 2 次提交
    • R
      7f797b5e
    • R
      duplicate generic bits/shm.h for each arch using it, in prep to change · 6ed37ccd
      Rich Felker 提交于
      there are more archs sharing the generic 64-bit version of the struct,
      which is uniform and much more reasonable, than sharing the current
      "generic" one, and depending on how time64 sysvipc is done for 32-bit
      archs, even more may be sharing the "64-bit version" in the future.
      
      so, duplicate the current generic to all archs using it (arm, i386,
      m68k, microblaze, or1k) so that the generic can be changed freely.
      
      this is recorded as its own commit mainly as a hint to git tooling, to
      assist in copy/move tracking.
      6ed37ccd
  4. 04 7月, 2016 1 次提交
    • R
      make brace placement in public header struct definitions consistent · befa5866
      Rich Felker 提交于
      placing the opening brace on the same line as the struct keyword/tag
      is the style I prefer and seems to be the prevailing practice in more
      recent additions.
      
      these changes were generated by the command:
      
      find include/ arch/*/bits -name '*.h' \
      -exec sed -i '/^struct [^;{]*$/{N;s/\n/ /;}' {} +
      
      and subsequently checked by hand to ensure that the regex did not pick
      up any false positives.
      befa5866
  5. 28 1月, 2016 1 次提交
    • R
      deduplicate the bulk of the arch bits headers · 4dfac115
      Rich Felker 提交于
      all bits headers that were identical for a number of 'clean' archs are
      moved to the new arch/generic tree. in addition, a few headers that
      differed only cosmetically from the new generic version are removed.
      
      additional deduplication may be possible in mman.h and in several
      headers (limits.h, posix.h, stdint.h) that mostly depend on whether
      the arch is 32- or 64-bit, but they are left alone for now because
      greater gains are likely possible with more invasive changes to header
      logic, which is beyond the scope of this commit.
      4dfac115
  6. 23 2月, 2014 1 次提交
  7. 19 9月, 2011 1 次提交
    • R
      initial commit of the arm port · d960d4f2
      Rich Felker 提交于
      this port assumes eabi calling conventions, eabi linux syscall
      convention, and presence of the kernel helpers at 0xffff0f?0 needed
      for threads support. otherwise it makes very few assumptions, and the
      code should work even on armv4 without thumb support, as well as on
      systems with thumb interworking. the bits headers declare this a
      little endian system, but as far as i can tell the code should work
      equally well on big endian.
      
      some small details are probably broken; so far, testing has been
      limited to qemu/aboriginal linux.
      d960d4f2
  8. 14 4月, 2011 1 次提交
    • R
      numerous fixes to sysv ipc · 07e865cc
      Rich Felker 提交于
      some of these definitions were just plain wrong, others based on
      outdated ancient "non-64" versions of the kernel interface.
      
      as much as possible has now been moved out of bits/*
      
      these changes break abi (the old abi for these functions was wrong),
      but since they were not working anyway it can hardly matter.
      07e865cc
  9. 15 2月, 2011 2 次提交
  10. 12 2月, 2011 1 次提交