Skip to content
Snippets Groups Projects
  1. Apr 27, 2018
    • Joseph Myers's avatar
      Remove tilegx port. · a3fb6b6b
      Joseph Myers authored
      Since tile support has been removed from the Linux kernel for 4.17,
      this patch removes the (unmaintained) port to tilegx from glibc (the
      tilepro support having been previously removed).  This reflects the
      general principle that a glibc port needs upstream support for the
      architecture in all the components it build-depends on (so binutils,
      GCC and the Linux kernel, for the normal case of a port supporting the
      Linux kernel but no other OS), in order to be maintainable.
      
      Apart from removal of sysdeps/tile and sysdeps/unix/sysv/linux/tile,
      there are updates to various comments referencing tile for which
      removal of those references seemed appropriate.  The configuration is
      removed from README and from build-many-glibcs.py.  contrib.texi keeps
      mention of removed contributions, but I updated Chris Metcalf's entry
      to reflect that he also contributed the non-removed support for the
      generic Linux kernel syscall interface.
      __ASSUME_FADVISE64_64_NO_ALIGN support is removed, as it was only used
      by tile.
      
      	* sysdeps/tile: Remove.
      	* sysdeps/unix/sysv/linux/tile: Likewise.
      	* README (tilegx-*-linux-gnu): Remove from list of supported
      	configurations.
      	* manual/contrib.texi (Contributors): Mention Chris Metcalf's
      	contribution of support for generic Linux kernel syscall
      	interface.
      	* scripts/build-many-glibcs.py (Context.add_all_configs): Remove
      	tilegx configurations.
      	(Config.install_linux_headers): Do not handle tile.
      	* sysdeps/unix/sysv/linux/aarch64/ldsodefs.h: Do not mention Tile
      	in comment.
      	* sysdeps/unix/sysv/linux/nios2/Makefile: Likewise.
      	* sysdeps/unix/sysv/linux/posix_fadvise.c: Likewise.
      	[__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
      	conditional undefine and redefine.
      	* sysdeps/unix/sysv/linux/posix_fadvise64.c: Do not mention Tile
      	in comment.
      	[__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
      	conditional undefine and redefine.
      a3fb6b6b
  2. Apr 02, 2018
  3. Jan 29, 2018
    • Palmer Dabbelt's avatar
      Skeleton documentation for the RISC-V port · 40ca951b
      Palmer Dabbelt authored
      During the upstreaming process it was suggested that I add a handful of
      small documentation entries about the RISC-V port, which I've collected
      here.
      
      2018-01-29  Palmer Dabbelt  <palmer@sifive.com>
      
              * manual/math.texi: RISC-V supports _Float128 and _Float64x.
      40ca951b
  4. Jan 26, 2018
  5. Dec 20, 2017
    • Adhemerval Zanella's avatar
      Remove tilepro-*-linux-gnu support · ed95f611
      Adhemerval Zanella authored
      As from previous discussions [1] this patch removes tileprox-*-linux-gnu
      support from GLIBC.  This patch is a straigthfoward one, which just remove
      tilepro specific implementation and configurations (no sysdep simplfication
      or reorganization is done).
      
      	* README: Remove tilepro-*-linux-gnu from supported architecture.
      	* scripts/build-many-glibcs.py: Likewise.
      	* sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
      	* sysdeps/tile/crti.S (PREINIT_FUNCTION): Likewise.
      	* sysdeps/tile/dl-machine.h (ELF_MACHINE_NAME,
      	elf_machine_matches_host, elf_machine_dynamic,
      	elf_machine_load_address, elf_machine_runtime_setup, reloc_howto
      	howto, elf_machine_rela): Likewise
      	* sysdeps/tile/dl-start.S (_start): Likewise.
      	* sysdeps/tile/memcmp.c (DBLALIGN, REVBYTES): Likewise.
      	* sysdeps/tile/memcopy.h (MEMCPY_OK_FOR_FWD_MEMMOVE,
      	MEMCPY_OK_FOR_FWD_MEMMOVE, op_t): Likewise.
      	* sysdeps/tile/nptl/pthread_spin_lock.c (TNS, CMPTNS): Likewise.
      	* sysdeps/tile/nptl/pthread_spin_trylock.c (TNS): Likewise.
      	* sysdeps/tile/nptl/pthread_spin_unlock.c (pthread_spin_unlock):
      	Likewise.
      	* sysdeps/tile/nptl/tls.h (DB_THREAD_SELF): Likewise.
      	* sysdeps/tile/preconfigure: Likewise.
      	* sysdeps/tile/stackguard-macros.h (STACK_CHK_GUARD,
      	POINTER_CHK_GUARD): Likewise.
      	* sysdeps/tile/stackinfo.h (__stackinfo_sub): Likewise.
      	* sysdeps/tile/start.S (_start): Likewise.
      	* sysdeps/tile/tls-macros.h (TLS_GD_OFFSET, TLS_IE_OFFSET, _TLS_LE):
      	Likewise.
      	* sysdeps/tile/sysdep.h (REGSIZE): Likewise.
      	(LD, LD4U, ST, ST4, BNEZ, BEQZ, BEQZT, BGTZ, CMPEQI, CMPEQ, CMOVEQZ,
      	CMOVNEZ): Remove.
      	* sysdeps/unix/sysv/linux/tile/bits/environments.h
      	(__ILP32_OFF32_CFLAGS, __ILP32_OFFBIG_CFLAGS, __ILP32_OFF32_LDFLAGS,
      	__ILP32_OFFBIG_LDFLAGS, __LP64_OFF64_CFLAGS, __LP64_OFF64_LDFLAGS):
      	Likewise.
      	* sysdeps/tile/wordcopy.c (DBLALIGN): Likewise.
      	* sysdeps/tile/tilepro/Implies: Remove file.
      	* sysdeps/tile/tilepro/atomic-machine.h: Likewise.
      	* sysdeps/tile/tilepro/bits/wordsize.h: Likewise.
      	* sysdeps/tile/tilepro/memchr.c: Likewise.
      	* sysdeps/tile/tilepro/memcpy.S: Likewise.
      	* sysdeps/tile/tilepro/memset.c: Likewise.
      	* sysdeps/tile/tilepro/memusage.h: Likewise.
      	* sysdeps/tile/tilepro/rawmemchr.c: Likewise.
      	* sysdeps/tile/tilepro/strchr.c: Likewise.
      	* sysdeps/tile/tilepro/strchrnul.c: Likewise.
      	* sysdeps/tile/tilepro/strlen.c: Likewise.
      	* sysdeps/tile/tilepro/strrchr.c: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/Implies: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist:
      	Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist: Likewise.
      	* sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h: Likewise.
      	* sysdeps/unix/sysv/linux/tile/sysconf.c (linux_sysconf): Remove
      	tilepro mention in comment.
      
      [1] https://sourceware.org/ml/libc-alpha/2017-12/msg00038.html
      ed95f611
  6. May 08, 2017
    • Joseph Myers's avatar
      Require Linux kernel 3.2 or later on x86 / x86_64. · 139ace95
      Joseph Myers authored
      As per the recent discussion, this patch implements a requirement for
      Linux 3.2 or later for x86 and x86_64.  This is only the initial
      change to increase the configured minimum; it's expected that followup
      patches would deal with associated removal of conditionals that are no
      longer needed.  If we remove the start-up test on the kernel version,
      of course the NEWS and README text should then be revised (to reflect
      that this version is just one such that glibc does not intend to
      include compatibility code for any older kernel version, rather than
      older kernels necessarily failing to work or glibc necessarily having
      compatibility code for newer interfaces).
      
      The followups would be able to assume presence of getcpu (x86_64),
      recvmmsg (not always through its own syscall, sometimes only through
      socketcall), sendmmsg (likewise), /proc/$pid/task/$tid/comm, f_flags
      from statfs, prlimit64.
      
      Tested for x86_64 and x86.
      
      	* sysdeps/unix/sysv/linux/i386/configure.ac (arch_minimum_kernel):
      	Remove.
      	* sysdeps/unix/sysv/linux/i386/configure: Regenerated.
      	* sysdeps/unix/sysv/linux/x86_64/64/configure.ac
      	(arch_minimum_kernel): Remove.
      	* sysdeps/unix/sysv/linux/x86_64/64/configure: Regenerated.
      	* README: Update statement about Linux kernel requirements.
      139ace95
  7. Feb 24, 2016
    • Joseph Myers's avatar
      Require Linux 3.2 except on x86 / x86_64, 3.2 headers everywhere. · 5b4ecd3f
      Joseph Myers authored
      In <https://sourceware.org/ml/libc-alpha/2016-01/msg00885.html> I
      proposed a minimum Linux kernel version of 3.2 for glibc 2.24, since
      Linux 2.6.32 has reached EOL.
      
      In the discussion in February, some concerns were expressed about
      compatibility with OpenVZ containers.  It's not clear that these are
      real issues, given OpenVZ backporting kernel features and faking the
      kernel version for guest software, as discussed in
      <https://sourceware.org/ml/libc-alpha/2016-02/msg00278.html>.  It's
      also not clear that supporting running GNU/Linux distributions from
      late 2016 (at the earliest) on a kernel series from 2009 is a sensible
      expectation.  However, as an interim step, this patch increases the
      requirement everywhere except x86 / x86_64 (since the controversy was
      only about those architectures); the special caveats and settings can
      easily be removed later when we're ready to increase the requirements
      on x86 / x86_64 (and if someone would like to raise the issue on LWN
      as suggested in the previous discussion, that would be welcome).  3.2
      kernel headers are required everywhere by this patch.
      
      (x32 already requires 3.4 or later, so is unaffected by this patch.)
      
      As usual for such a change, this patch only changes the configure
      scripts and associated documentation.  The intent is to follow up with
      removal of dead __LINUX_KERNEL_VERSION conditionals.  Each __ASSUME_*
      or other macro that becomes dead can then be removed independently.
      
      Tested for x86_64 and x86.
      
      	* sysdeps/unix/sysv/linux/configure.ac (LIBC_LINUX_VERSION):
      	Define to 3.2.0.
      	(arch_minimum_kernel): Likewise.
      	* sysdeps/unix/sysv/linux/configure: Regenerated.
      	* sysdeps/unix/sysv/linux/i386/configure.ac (arch_minimum_kernel):
      	Define to 2.6.32.
      	* sysdeps/unix/sysv/linux/i386/configure: Regenerated.
      	* sysdeps/unix/sysv/linux/x86_64/64/configure.ac
      	(arch_minimum_kernel): Define to 2.6.32.
      	* sysdeps/unix/sysv/linux/x86_64/64/configure: Regenerated.
      	* README: Document Linux 3.2 requirement.
      	* manual/install.texi (Linux): Document Linux 3.2 headers
      	requirement.
      	* INSTALL: Regenerated.
      5b4ecd3f
  8. Feb 11, 2015
  9. Jun 25, 2014
    • Joseph Myers's avatar
      Update README and NEWS for ports directory removal. · cfd2ea50
      Joseph Myers authored
      This patch updates README to remove a mention of the ports directory.
      It also adds a NEWS item for the merge of ports into the main sysdeps
      tree (I think it's NEWS-worthy, although not strictly a user-visible
      feature).
      
      Other remaining ports references to resolve: a comment in
      manual/signal.texi (not giving a literal path, but maybe should change
      anyway); a comment in config.h.in (path should be updated);
      scripts/list-sources.sh (appears to date back to ports being a
      separate repository).
      
      	* README: Do not mention ports directory.
      cfd2ea50
  10. Apr 30, 2014
    • Joseph Myers's avatar
      Increase minimum Linux kernel version to 2.6.32. · d0f5b3f8
      Joseph Myers authored
      This patch increases the minimum Linux kernel version for glibc to
      2.6.32, as discussed in the thread starting at
      <https://sourceware.org/ml/libc-alpha/2014-01/msg00511.html>.
      
      This patch just does the minimal change to arch_minimum_kernel
      settings (and LIBC_LINUX_VERSION, which determines the minimum kernel
      headers version, as it doesn't make sense for that to be older than
      the minimum kernel that can be used at runtime).  Followups would be
      expected to do, roughly and not necessarily precisely in this order:
      
      * Remove __LINUX_KERNEL_VERSION checks in kernel-features.h files
        where those checks are always true / always false for kernels 2.6.32
        and above.
      
      * Otherwise simplify/improve conditionals in those files (for example,
        where defining once in the main file then undefining in
        architecture-specific files makes things clearer than having lots of
        separate definitions of the same macro), possibly fixing in the
        process cases where a macro should optimally have been defined for a
        given architecture but wasn't.  (In the review in preparation for
        this version increase I checked what the right conditions should be
        for all macros in the main kernel-features.h whose definitions there
        would have been affected by the increase - but I only fixed that
        subset of the issues found where --enable-kernel=2.6.32 would have
        caused a kernel feature to be wrongly assumed to be present, not any
        cases where a feature is not assumed but could be assumed.)
      
      * Remove conditionals on __ASSUME_* where they can now be taken to be
        always-true, and the definitions when the macros are only used in
        Linux-specific files.
      
      * Split more architectures out of the main kernel-features.h (like
        ex-ports architectures), once various of the architecture
        conditionals there have been eliminated so the new
        architecture-specific files are no larger than actually necessary.
      
      Tested x86_64.
      
      2014-03-27  Joseph Myers  <joseph@codesourcery.com>
      
      	[BZ #9894]
      	* sysdeps/unix/sysv/linux/configure.ac (LIBC_LINUX_VERSION):
      	Change to 2.6.32.
      	(arch_minimum_kernel): Change all 2.6.16 settings to 2.6.32.
      	* sysdeps/unix/sysv/linux/configure: Regenerated.
      	* sysdeps/unix/sysv/linux/microblaze/configure.ac: Remove file.
      	* sysdeps/unix/sysv/linux/microblaze/configure: Likewise.
      	* sysdeps/unix/sysv/linux/tile/configure.ac: Likewise.
      	* sysdeps/unix/sysv/linux/tile/configure: Likewise.
      	* README: Update reference to required Linux kernel version.
      	* manual/install.texi (Linux): Update reference to required Linux
      	kernel headers version.
      	* INSTALL: Regenerated.
      d0f5b3f8
  11. Apr 29, 2014
  12. Feb 17, 2014
  13. Feb 16, 2014
  14. Feb 12, 2014
    • Richard Henderson's avatar
      Relocate alpha from ports to libc · 68b7efaa
      Richard Henderson authored
      Also fixed the following whitespace nits to satisfy the push:
      
      sysdeps/alpha/alphaev6/memset.S:142: space before tab in indent.
      sysdeps/alpha/configure:1: new blank line at EOF.
      sysdeps/alpha/fpu/e_sqrt.c:126: space before tab in indent.
      sysdeps/alpha/preconfigure:1: new blank line at EOF.
      sysdeps/unix/sysv/linux/alpha/syscalls.list:1: new blank line at EOF.
      68b7efaa
  15. Feb 11, 2014
    • Marcus Shawcroft's avatar
      Relocate AArch64 from ports to libc. · 75eff3fe
      Marcus Shawcroft authored
      This patch moves the AArch64 port to the main sysdeps hierarchy.  The
      move is essentially:
      
        git mv ports/sysdeps/aarch64 sysdeps/aarch64
        git mv ports/sysdeps/unix/sysv/linux/aarch64 sysdeps/unix/sysv/linux/aarch64
      
      The README is updated and I've updated ChangeLog.aarch64 along the
      lines of the ARM move.  The AArch64 build has been tested to confirm
      that there were no changes in objdump -dr output or the shared
      objects.
      75eff3fe
  16. Feb 10, 2014
    • Joseph Myers's avatar
      Move mips from ports to libc. · 2ad7600b
      Joseph Myers authored
      I've moved the MIPS port from ports to the main sysdeps hierarchy.
      Beyond the README update, the move of the files was simply
      
      git mv ports/sysdeps/mips sysdeps/mips
      git mv ports/sysdeps/unix/mips sysdeps/unix/mips
      git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips
      
      and in addition to the ChangeLog entries here, I put a note at the top
      of ports/ChangeLog.mips similar to those in other files.
      
      Tested that disassembly of installed shared libraries for mips is the
      same before and after this patch (except for ld.so where paths in
      assertions are involved, as for arm).
      
      	* sysdeps/mips: Move directory from ports/sysdeps/mips.
      	* sysdeps/unix/mips: Move directory from ports/sysdeps/unix/mips.
      	* sysdeps/unix/sysv/linux/mips: Move directory from
      	ports/sysdeps/unix/sysv/linux/mips.
      	* README: Update listing for mips-*-linux-gnu and
      	mips64-*-linux-gnu.
      
      	* sysdeps/mips: Move directory to ../sysdeps/mips.
      	* sysdeps/unix/mips: Move directory to ../sysdeps/unix/mips.
      	* sysdeps/unix/sysv/linux/mips: Move directory to
      	../sysdeps/unix/sysv/linux/mips.
      2ad7600b
    • Andreas Schwab's avatar
      Move m68k from ports to libc · 73588a72
      Andreas Schwab authored
      73588a72
    • Chris Metcalf's avatar
      Move tilegx, tilepro, and linux-generic from ports to libc. · 4372980f
      Chris Metcalf authored
      I've moved the TILE-Gx and TILEPro ports to the main sysdeps hierarchy,
      along with the linux-generic ports infrastructure.  Beyond the README
      update, the move was just
      
          git mv ports/sysdeps/tile sysdeps/tile
          git mv ports/sysdeps/unix/sysv/linux/tile \
            sysdeps/unix/sysv/linux/tile
          git mv ports/sysdeps/unix/sysv/linux/generic \
            sysdeps/unix/sysv/linux/generic
      
      I updated the relevant ChangeLogs along the lines of the ARM move
      in commit c6bfe5c4 and tested the 64-bit tilegx build to confirm that
      there were no changes in "objdump -dr" output in the shared objects.
      4372980f
  17. Feb 08, 2014
    • Joseph Myers's avatar
      Move arm from ports to libc. · c6bfe5c4
      Joseph Myers authored
      I've moved the ARM port from ports to the main sysdeps hierarchy.
      Beyond the README update, the move of the files was simply
      
      git mv ports/sysdeps/arm sysdeps/arm
      git mv ports/sysdeps/unix/arm sysdeps/unix/arm
      git mv ports/sysdeps/unix/sysv/linux/arm sysdeps/unix/sysv/linux/arm
      
      and in addition to the ChangeLog entries here, I put a note at the top
      of ports/ChangeLog.arm similar to that at the top of
      ChangeLog.powerpc.  There is deliberately no NEWS change, as I think
      it makes the most sense to put in a general note above all ports
      having moved if we can achieve that for 2.20.
      
      Tested that disassembly of installed shared libraries for arm is the
      same before and after this patch, except for data (not instructions)
      in ld.so (there are assertions in sysdeps/arm/dl-machine.h, and the
      path by which that file is found, and so by which it appears in the
      assertion message, changes as a result of the move).
      
      	* sysdeps/arm: Move directory from ports/sysdeps/arm.
      	* sysdeps/unix/arm: Move directory from ports/sysdeps/unix/arm.
      	* sysdeps/unix/sysv/linux/arm: Move directory from
      	ports/sysdeps/unix/sysv/linux/arm.
      	* README: Update listing for arm-*-linux-gnueabi.
      
      ports/ChangeLog.arm:
      	* sysdeps/arm: Move directory to ../sysdeps/arm.
      	* sysdeps/unix/arm: Move directory to ../sysdeps.arm.
      	* sysdeps/unix/sysv/linux/arm: Move directory to
      	../sysdeps/unix/sysv/linux/arm.
      c6bfe5c4
    • Joseph Myers's avatar
      Remove am33 port. · 464263cc
      Joseph Myers authored
      This patch removes the am33 port (no other port #includes any files
      from it), as previously discussed (see
      <https://sourceware.org/ml/libc-ports/2014-01/msg00046.html>).
      464263cc
  18. Oct 06, 2013
  19. Oct 05, 2013
  20. Oct 04, 2013
  21. Apr 06, 2013
    • Carlos O'Donell's avatar
      i386: Fail at configure time for i386 builds. · a01f19c8
      Carlos O'Donell authored
      This change does two things:
      
      * Treats a target i386-* as if it were i686.
      * Fails configure if the user is generating code
        for i386.
      
      We no longer support i386 code-generation because the i386
      lacks the atomic operations we need in glibc.
      
      You can still configure for i386-*, but you get i686 code.
      
      You can't build with --march=i386, --mtune=i386 or a compiler
      that defaults to i386 code-generation.
      
      I've added two i386 entries in the master todo list to discuss
      merging and renaming:
      http://sourceware.org/glibc/wiki/Development_Todo/Master#i386
      
      The failure modes are fail-safe here. You compile for i386,
      get i686, and try to run on i386 and it fails. The configure
      log has a warning saying we elided to i686. There is no situation
      that I can see where we run into any serious problems.
      
      The patch makes the current state better in that we get less
      confused users and we build successfully in more default
      configurations.
      
      The next enhancement would be to add --march=i?86
      as suggested in #c20 of BZ#10062 for any i?86-* builds, which
      would solve the problem of a 32-bit compiler that defaults to
      i386 code-gen and glibc configured for i686-* target. Which
      previously failed at build time, and now will fail at configure
      time (requires adding --march=i686).
      
      Updated NEWS with BZ #10060 and #10062.
      
      No regressions.
      
      ---
      
      2013-04-06  Carlos O'Donell  <carlos@redhat.com>
      
      	[BZ #10060, #10062]
      	* aclocal.m4 (LIBC_COMPILER_BUILTIN_INLINED): New macro.
      	* sysdeps/i386/configure.in: Use LIBC_COMPILER_BUILTIN_INLINED and
      	fail configure if __sync_val_compare_and_swap is not inlined.
      	* sysdeps/i386/configure: Regenerate.
      	* configure.in: Build for i686 when configured for i386.
      	* configure: Regenerate.
      	* README: Remove i386 reference.
      a01f19c8
  22. Jan 02, 2013
  23. Dec 05, 2012
  24. Aug 07, 2012
  25. Aug 03, 2012
  26. Jul 01, 2012
  27. Jun 30, 2012
  28. Apr 27, 2012
  29. Mar 21, 2012
  30. Feb 07, 2012
  31. Oct 20, 2011
  32. Feb 10, 2010
  33. Feb 24, 2009
    • Roland McGrath's avatar
      [BZ #9895] · 9ef79dce
      Roland McGrath authored
      2009-02-24  Roland McGrath  <roland@redhat.com>
      	[BZ #9895]
      	* README.template: Reworded not to use substituted version number.
      	Renamed to ...
      	* README: ... here (no longer generated).
      	* Makefile (README): Target removed.
      9ef79dce
  34. Oct 17, 2007
  35. May 15, 2007
Loading