Remove tilegx port

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Remove tilegx port

Joseph Myers
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
(omitted from the diffs below), 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.

2018-04-27  Joseph Myers  <[hidden email]>

        * 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.

diff --git a/NEWS b/NEWS
index 3d6b2c8..363e918 100644
--- a/NEWS
+++ b/NEWS
@@ -57,6 +57,8 @@ Deprecated and removed features, and other changes affecting compatibility:
   these macros should first include <sys/types.h>, and then include
   <sys/sysmacros.h> if __GNU_LIBRARY__ is defined.
 
+* The tilegx*-*-linux-gnu configurations are no longer supported.
+
 Changes to build and runtime requirements:
 
   [Add changes to build and runtime requirements here]
diff --git a/README b/README
index 2874505..27a9fd4 100644
--- a/README
+++ b/README
@@ -41,7 +41,6 @@ The GNU C Library supports these configurations for using Linux kernels:
  sh[34]-*-linux-gnu
  sparc*-*-linux-gnu
  sparc64*-*-linux-gnu
- tilegx-*-linux-gnu
 
 If you are interested in doing a port, please contact the glibc
 maintainers; see http://www.gnu.org/software/libc/ for more
diff --git a/manual/contrib.texi b/manual/contrib.texi
index 0da6dcb..dd28e92 100644
--- a/manual/contrib.texi
+++ b/manual/contrib.texi
@@ -265,7 +265,8 @@ version 3 (@code{i386-sequent-bsd}).
 @item
 Chris Metcalf for the port to Linux/Tile
 (@code{tilegx-@var{anything}-linux} and
-@code{tilepro-@var{anything}-linux}).
+@code{tilepro-@var{anything}-linux}) and support for the generic Linux
+kernel syscall interface used by several newer ports.
 
 @item
 David Miller for contributing the port to Linux/Sparc
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index f911b20..19411c1 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -376,14 +376,6 @@ class Context(object):
                                        'arch': 'sparcv9',
                                        'ccopts': '-m32 -mlong-double-128',
                                        'cfg': ['--disable-multi-arch']}])
-        self.add_config(arch='tilegx',
-                        os_name='linux-gnu',
-                        glibcs=[{},
-                                {'variant': '32', 'ccopts': '-m32'}])
-        self.add_config(arch='tilegxbe',
-                        os_name='linux-gnu',
-                        glibcs=[{},
-                                {'variant': '32', 'ccopts': '-m32'}])
         self.add_config(arch='x86_64',
                         os_name='linux-gnu',
                         gcc_cfg=['--with-multilib-list=m64,m32,mx32'],
@@ -1271,7 +1263,6 @@ class Config(object):
                     'riscv64': 'riscv',
                     'sh': 'sh',
                     'sparc': 'sparc',
-                    'tile': 'tile',
                     'x86_64': 'x86'}
         linux_arch = None
         for k in arch_map:
diff --git a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
index 2f2f973..ff88292 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
@@ -1,4 +1,5 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+   AArch64 version.
    Copyright (C) 2001-2018 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
index d0af9ec..20910fa 100644
--- a/sysdeps/unix/sysv/linux/nios2/Makefile
+++ b/sysdeps/unix/sysv/linux/nios2/Makefile
@@ -3,7 +3,7 @@ gen-as-const-headers += ucontext_i.sym
 endif
 
 ifeq ($(subdir),misc)
-# MIPS/Tile-style cacheflush routine
+# MIPS-style cacheflush routine
 sysdep_headers += sys/cachectl.h
 sysdep_routines += cacheflush
 endif
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c
index 08ccc22..d676a68 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
@@ -31,9 +31,8 @@
    (redefined to __NR_fadvise64_64 in kernel-features.h) that behaves as
    __NR_fadvise64_64 (without the aligment argument required for the ABI).
 
-   Third option will be used by both tile 32-bits and mips o32.  Tile
-   will set __ASSUME_FADVISE64_64_NO_ALIGN to issue a 6 argument syscall,
-   while mips will use a 7 argument one with __NR_fadvise64.
+   Third option will be used by mips o32.  Mips will use a 7 argument
+   syscall with __NR_fadvise64.
 
    s390 implements fadvice64_64 using a specific struct with arguments
    packed inside.  This is the only implementation handled in arch-specific
@@ -53,11 +52,6 @@ posix_fadvise (int fd, off_t offset, off_t len, int advise)
    SYSCALL_LL (offset), SYSCALL_LL (len));
 #  else
 
-#   ifdef __ASSUME_FADVISE64_64_NO_ALIGN
-#    undef __ALIGNMENT_ARG
-#    define __ALIGNMENT_ARG
-#   endif
-
 #   ifndef __NR_fadvise64_64
 #    define __NR_fadvise64_64 __NR_fadvise64
 #   endif
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c
index eebf10c..61dfe89 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c
@@ -26,18 +26,10 @@ libc_hidden_proto (__posix_fadvise64_l64)
    just after 'fd' to avoid the requirement of implementing 7-arg syscalls.
    ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64.
 
-   tile requires __ASSUME_ALIGNED_REGISTER_PAIRS but implements the 32-bit
-   fadvise64_64 without the padding 0 after fd.
-
    s390 implements fadvice64_64 using a specific struct with arguments
    packed inside.  This is the only implementation handled in arch-specific
    code.  */
 
-#ifdef __ASSUME_FADVISE64_64_NO_ALIGN
-# undef __ALIGNMENT_ARG
-# define __ALIGNMENT_ARG
-#endif
-
 #ifndef __NR_fadvise64_64
 # define __NR_fadvise64_64 __NR_fadvise64
 #endif

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Remove tilegx port

Adhemerval Zanella-2


On 27/04/2018 12:36, Joseph Myers wrote:

> 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
> (omitted from the diffs below), 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.
>
> 2018-04-27  Joseph Myers  <[hidden email]>
>
> * 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.

LGTM.

>
> diff --git a/NEWS b/NEWS
> index 3d6b2c8..363e918 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -57,6 +57,8 @@ Deprecated and removed features, and other changes affecting compatibility:
>    these macros should first include <sys/types.h>, and then include
>    <sys/sysmacros.h> if __GNU_LIBRARY__ is defined.
>  
> +* The tilegx*-*-linux-gnu configurations are no longer supported.
> +
>  Changes to build and runtime requirements:
>  
>    [Add changes to build and runtime requirements here]

Ok.

> diff --git a/README b/README
> index 2874505..27a9fd4 100644
> --- a/README
> +++ b/README
> @@ -41,7 +41,6 @@ The GNU C Library supports these configurations for using Linux kernels:
>   sh[34]-*-linux-gnu
>   sparc*-*-linux-gnu
>   sparc64*-*-linux-gnu
> - tilegx-*-linux-gnu
>  
>  If you are interested in doing a port, please contact the glibc
>  maintainers; see http://www.gnu.org/software/libc/ for more

Ok.

> diff --git a/manual/contrib.texi b/manual/contrib.texi
> index 0da6dcb..dd28e92 100644
> --- a/manual/contrib.texi
> +++ b/manual/contrib.texi
> @@ -265,7 +265,8 @@ version 3 (@code{i386-sequent-bsd}).
>  @item
>  Chris Metcalf for the port to Linux/Tile
>  (@code{tilegx-@var{anything}-linux} and
> -@code{tilepro-@var{anything}-linux}).
> +@code{tilepro-@var{anything}-linux}) and support for the generic Linux
> +kernel syscall interface used by several newer ports.
>  
>  @item
>  David Miller for contributing the port to Linux/Sparc
> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
> index f911b20..19411c1 100755
> --- a/scripts/build-many-glibcs.py
> +++ b/scripts/build-many-glibcs.py
> @@ -376,14 +376,6 @@ class Context(object):
>                                         'arch': 'sparcv9',
>                                         'ccopts': '-m32 -mlong-double-128',
>                                         'cfg': ['--disable-multi-arch']}])
> -        self.add_config(arch='tilegx',
> -                        os_name='linux-gnu',
> -                        glibcs=[{},
> -                                {'variant': '32', 'ccopts': '-m32'}])
> -        self.add_config(arch='tilegxbe',
> -                        os_name='linux-gnu',
> -                        glibcs=[{},
> -                                {'variant': '32', 'ccopts': '-m32'}])
>          self.add_config(arch='x86_64',
>                          os_name='linux-gnu',
>                          gcc_cfg=['--with-multilib-list=m64,m32,mx32'],
> @@ -1271,7 +1263,6 @@ class Config(object):
>                      'riscv64': 'riscv',
>                      'sh': 'sh',
>                      'sparc': 'sparc',
> -                    'tile': 'tile',
>                      'x86_64': 'x86'}
>          linux_arch = None
>          for k in arch_map:

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
> index 2f2f973..ff88292 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
> +++ b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
> @@ -1,4 +1,5 @@
> -/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
> +/* Run-time dynamic linker data structures for loaded ELF shared objects.
> +   AArch64 version.
>     Copyright (C) 2001-2018 Free Software Foundation, Inc.
>     This file is part of the GNU C Library.
>  

Ok.

> diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
> index d0af9ec..20910fa 100644
> --- a/sysdeps/unix/sysv/linux/nios2/Makefile
> +++ b/sysdeps/unix/sysv/linux/nios2/Makefile
> @@ -3,7 +3,7 @@ gen-as-const-headers += ucontext_i.sym
>  endif
>  
>  ifeq ($(subdir),misc)
> -# MIPS/Tile-style cacheflush routine
> +# MIPS-style cacheflush routine
>  sysdep_headers += sys/cachectl.h
>  sysdep_routines += cacheflush
>  endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c
> index 08ccc22..d676a68 100644
> --- a/sysdeps/unix/sysv/linux/posix_fadvise.c
> +++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
> @@ -31,9 +31,8 @@
>     (redefined to __NR_fadvise64_64 in kernel-features.h) that behaves as
>     __NR_fadvise64_64 (without the aligment argument required for the ABI).
>  
> -   Third option will be used by both tile 32-bits and mips o32.  Tile
> -   will set __ASSUME_FADVISE64_64_NO_ALIGN to issue a 6 argument syscall,
> -   while mips will use a 7 argument one with __NR_fadvise64.
> +   Third option will be used by mips o32.  Mips will use a 7 argument
> +   syscall with __NR_fadvise64.
>  
>     s390 implements fadvice64_64 using a specific struct with arguments
>     packed inside.  This is the only implementation handled in arch-specific
> @@ -53,11 +52,6 @@ posix_fadvise (int fd, off_t offset, off_t len, int advise)
>     SYSCALL_LL (offset), SYSCALL_LL (len));
>  #  else
>  
> -#   ifdef __ASSUME_FADVISE64_64_NO_ALIGN
> -#    undef __ALIGNMENT_ARG
> -#    define __ALIGNMENT_ARG
> -#   endif
> -
>  #   ifndef __NR_fadvise64_64
>  #    define __NR_fadvise64_64 __NR_fadvise64
>  #   endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c
> index eebf10c..61dfe89 100644
> --- a/sysdeps/unix/sysv/linux/posix_fadvise64.c
> +++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c
> @@ -26,18 +26,10 @@ libc_hidden_proto (__posix_fadvise64_l64)
>     just after 'fd' to avoid the requirement of implementing 7-arg syscalls.
>     ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64.
>  
> -   tile requires __ASSUME_ALIGNED_REGISTER_PAIRS but implements the 32-bit
> -   fadvise64_64 without the padding 0 after fd.
> -
>     s390 implements fadvice64_64 using a specific struct with arguments
>     packed inside.  This is the only implementation handled in arch-specific
>     code.  */
>  
> -#ifdef __ASSUME_FADVISE64_64_NO_ALIGN
> -# undef __ALIGNMENT_ARG
> -# define __ALIGNMENT_ARG
> -#endif
> -
>  #ifndef __NR_fadvise64_64
>  # define __NR_fadvise64_64 __NR_fadvise64
>  #endif
>

Ok.
Reply | Threaded
Open this post in threaded view
|

Re: Remove tilegx port

Jeff Law
In reply to this post by Joseph Myers
On 04/27/2018 09:36 AM, Joseph Myers wrote:

> 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
> (omitted from the diffs below), 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.
Given tilegx/tilepro removal from the kernel and glibc, should we go
ahead and deprecate them in GCC?  The only tilegx/tilepro configurations
are -linux.

Jeff

Reply | Threaded
Open this post in threaded view
|

Re: Remove tilegx port

Richard Biener
On April 27, 2018 7:26:19 PM GMT+02:00, Jeff Law <[hidden email]> wrote:

>On 04/27/2018 09:36 AM, Joseph Myers wrote:
>> 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
>> (omitted from the diffs below), 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.
>Given tilegx/tilepro removal from the kernel and glibc, should we go
>ahead and deprecate them in GCC?  The only tilegx/tilepro
>configurations
>are -linux.

Makes sense to me. Let's deprecate it for GCC 8 and remove from trunk.

Richard.

>Jeff

Reply | Threaded
Open this post in threaded view
|

Re: Remove tilegx port

Jeff Law
On 04/27/2018 11:42 AM, Richard Biener wrote:

> On April 27, 2018 7:26:19 PM GMT+02:00, Jeff Law <[hidden email]> wrote:
>> On 04/27/2018 09:36 AM, Joseph Myers wrote:
>>> 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
>>> (omitted from the diffs below), 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.
>> Given tilegx/tilepro removal from the kernel and glibc, should we go
>> ahead and deprecate them in GCC?  The only tilegx/tilepro
>> configurations
>> are -linux.
>
> Makes sense to me. Let's deprecate it for GCC 8 and remove from trunk.
>
> Richard.
>
>> Jeff
>
Here's what I committed to the trunk and the release branch.  I'll
find/update the appropriate web page momentarily.

jeff

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4db67b8d069..f81b09f8739 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2018-04-27  Jeff Law  <[hidden email]>
+
+ * config.gcc: Mark tile* targets as deprecated/obsolete.
+
 2018-04-27  Richard Biener  <[hidden email]>
 
  * config/aarch64/aarch64.c: Simplify ap.__stack advance and
diff --git a/gcc/config.gcc b/gcc/config.gcc
index e58494c1c17..a5defb0f005 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -237,6 +237,7 @@ md_file=
 # Obsolete configurations.
 case ${target} in
   powerpc*-*-*spe* \
+  | tile*-*-* \
  )
     if test "x$enable_obsolete" != xyes; then
       echo "*** Configuration ${target} is obsolete." >&2