Message ID | alpine.DEB.2.20.1804271534430.17705@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
Series | Remove tilegx port | expand |
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 <joseph@codesourcery.com> > > * 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.
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
On April 27, 2018 7:26:19 PM GMT+02:00, Jeff Law <law@redhat.com> 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
On 04/27/2018 11:42 AM, Richard Biener wrote: > On April 27, 2018 7:26:19 PM GMT+02:00, Jeff Law <law@redhat.com> 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 <law@redhat.com> + + * config.gcc: Mark tile* targets as deprecated/obsolete. + 2018-04-27 Richard Biener <rguenther@suse.de> * 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
On Fri, Apr 27, 2018 at 9:32 PM Jeff Law <law@redhat.com> wrote: > > On 04/27/2018 11:42 AM, Richard Biener wrote: > > On April 27, 2018 7:26:19 PM GMT+02:00, Jeff Law <law@redhat.com> 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. It's been deprecated since GCC 8 now but the port is still on trunk, guarded by --enable-obsolete - is it time to remove it? Richard. > jeff
On 9/10/2021 5:50 AM, Richard Biener via Libc-alpha wrote: > On Fri, Apr 27, 2018 at 9:32 PM Jeff Law <law@redhat.com> wrote: >> On 04/27/2018 11:42 AM, Richard Biener wrote: >>> On April 27, 2018 7:26:19 PM GMT+02:00, Jeff Law <law@redhat.com> 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. > It's been deprecated since GCC 8 now but the port is still on trunk, > guarded by --enable-obsolete - is it time to remove it? Definitely. Folks have had years to complain. If you wanted to add cr16 to the deprecated ports list, I'd fully support that as well. It hasn't built since dropping cc0 and there doesn't appear to be anyone interested in making it work. jeff
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