diff options
-rw-r--r-- | ChangeLog | 27 | ||||
-rw-r--r-- | stdlib/bug-getcontext.c | 2 | ||||
-rw-r--r-- | sysdeps/tile/Implies | 1 | ||||
-rw-r--r-- | sysdeps/tile/Makefile | 36 | ||||
-rw-r--r-- | sysdeps/tile/atomic-machine.h | 51 | ||||
-rw-r--r-- | sysdeps/tile/bits/wordsize.h (renamed from sysdeps/tile/tilegx/bits/wordsize.h) | 0 | ||||
-rw-r--r-- | sysdeps/tile/memchr.c (renamed from sysdeps/tile/tilegx/memchr.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/memcpy.c (renamed from sysdeps/tile/tilegx/memcpy.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/memset.c (renamed from sysdeps/tile/tilegx/memset.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/memusage.h (renamed from sysdeps/tile/tilegx/memusage.h) | 0 | ||||
-rw-r--r-- | sysdeps/tile/preconfigure | 4 | ||||
-rw-r--r-- | sysdeps/tile/rawmemchr.c (renamed from sysdeps/tile/tilegx/rawmemchr.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strcasestr.c (renamed from sysdeps/tile/tilegx/strcasestr.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strchr.c (renamed from sysdeps/tile/tilegx/strchr.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strchrnul.c (renamed from sysdeps/tile/tilegx/strchrnul.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/string-endian.h (renamed from sysdeps/tile/tilegx/string-endian.h) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strlen.c (renamed from sysdeps/tile/tilegx/strlen.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strnlen.c (renamed from sysdeps/tile/tilegx/strnlen.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strrchr.c (renamed from sysdeps/tile/tilegx/strrchr.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/strstr.c (renamed from sysdeps/tile/tilegx/strstr.c) | 0 | ||||
-rw-r--r-- | sysdeps/tile/tilegx/Implies | 1 | ||||
-rw-r--r-- | sysdeps/tile/tilegx/Makefile | 35 | ||||
-rw-r--r-- | sysdeps/tile/tilegx/atomic-machine.h | 61 | ||||
-rw-r--r-- | sysdeps/tile/tilegx32/Implies (renamed from sysdeps/tile/tilegx/tilegx32/Implies) | 1 | ||||
-rw-r--r-- | sysdeps/tile/tilegx64/Implies (renamed from sysdeps/tile/tilegx/tilegx64/Implies) | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/Makefile | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/configure (renamed from sysdeps/unix/sysv/linux/tile/tilegx/configure) | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/configure.ac (renamed from sysdeps/unix/sysv/linux/tile/tilegx/configure.ac) | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/ioctl.S (renamed from sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/ldconfig.h (renamed from sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed (renamed from sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/register-dump.h (renamed from sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/sched_getcpu.c (renamed from sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/Implies (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies) | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/Makefile (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/jmp_buf-macros.h) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/Implies (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies) | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/Makefile (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/jmp_buf-macros.h) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist (renamed from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist) | 0 |
68 files changed, 114 insertions, 121 deletions
@@ -1,5 +1,32 @@ 2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org> + * stdlib/bug-getcontext.c (do_test): Remove tilepro mention in + comment. + * sysdeps/tile/preconfigure: Remove tilegx folder. + * sysdeps/tile/tilegx/Implies: Move definitions to ... + * sysdeps/tile/Implies: ... here. + * sysdeps/tile/tilegx/Makefile: Move rules to ... + * sysdeps/tile/Makefile: ... here. + * sysdeps/tile/tilegx/atomic-machine.h: Move definitions to ... + * sysdeps/tile/atomic-machine.h: ... here. Add include guards. + * sysdeps/tile/tilegx/bits/wordsize.h: Move to ... + * sysdeps/tile/bits/wordsize.h: ... here. + * sysdeps/tile/tilegx/*: Move to ... + * sysdeps/tile/*: ... here. + * sysdeps/tile/tilegx/tilegx32/Implies: Move to ... + * sysdeps/tile/tilegx32/Implies: ... here. + * sysdeps/tile/tilegx/tilegx64/Implies: Move to ... + * sysdeps/tile/tilegx64/Implies: ... here. + * sysdeps/unix/sysv/linux/tile/tilegx/Makefile: Move definitions + to ... + * sysdeps/unix/sysv/linux/tile/Makefile: ... here. + * sysdeps/unix/sysv/linux/tile/tilegx/*: Move to ... + * sysdeps/unix/sysv/linux/tile/*: ... here. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/*: Move to ... + * sysdeps/unix/sysv/linux/tile/tilegx32/*: ... here. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/*: Move to ... + * sysdeps/unix/sysv/linux/tile/tilegx64/*: ... here. + * README: Remove tilepro-*-linux-gnu from supported architecture. * scripts/build-many-glibcs.py: Likewise. * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise. diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c index 163400acba..55c681c480 100644 --- a/stdlib/bug-getcontext.c +++ b/stdlib/bug-getcontext.c @@ -50,7 +50,7 @@ do_test (void) printf ("\nDone with getcontext()!\n"); fflush (NULL); - /* On nios2 and tilepro, GCC 5 warns that except_mask may be used + /* On nios2 GCC 5 warns that except_mask may be used uninitialized. Because it is always initialized and nothing in this test ever calls setcontext (a setcontext call could result in local variables being clobbered on the second return from diff --git a/sysdeps/tile/Implies b/sysdeps/tile/Implies index 1cbc053905..cb17441cbd 100644 --- a/sysdeps/tile/Implies +++ b/sysdeps/tile/Implies @@ -1,3 +1,4 @@ ieee754/soft-fp +ieee754/dbl-64/wordsize-64 ieee754/dbl-64 ieee754/flt-32 diff --git a/sysdeps/tile/Makefile b/sysdeps/tile/Makefile index 3cd4d1e752..dcb8777a54 100644 --- a/sysdeps/tile/Makefile +++ b/sysdeps/tile/Makefile @@ -1,3 +1,39 @@ +include $(common-objpfx)cflags-mcmodel-large.mk + +# Check for gcc to support the command-line switch, and for +# binutils to support the hwN_plt() assembly operators and relocations. +$(common-objpfx)cflags-mcmodel-large.mk: $(common-objpfx)config.make + mcmodel=no; \ + (echo 'int main() { return getuid(); }' | \ + $(CC) -o /dev/null -xc - -mcmodel=large -fpic) && mcmodel=yes; \ + echo "cflags-mcmodel-large = $$mcmodel" > $@ + +ifeq (yes,$(cflags-mcmodel-large)) + +ifeq ($(subdir),csu) +# elf-init.c is in libc_nonshared.o (the end of the shared object) but +# must reach the _init symbol at the very start of the shared object. +CFLAGS-elf-init.c += -mcmodel=large + +# __gmon_start__ is at the very start of the shared object when linked +# with profiling, but calls to libc.so via the PLT at the very end. +CFLAGS-gmon-start.c += -mcmodel=large +endif + +else + +# Don't try to compile assembly code with hwN_plt() directives if the +# toolchain doesn't support -mcmodel=large. +ifeq ($(subdir),csu) +CPPFLAGS-start.S += -DNO_PLT_PCREL +CPPFLAGS-crti.S += -DNO_PLT_PCREL +endif +ifeq ($(subdir),nptl) +CPPFLAGS-pt-crti.S += -DNO_PLT_PCREL +endif + +endif + # We don't support long doubles as a distinct type. We don't need to set # this variable; it's here mostly for documentational purposes. diff --git a/sysdeps/tile/atomic-machine.h b/sysdeps/tile/atomic-machine.h index 32277c960f..58ce76ccc9 100644 --- a/sysdeps/tile/atomic-machine.h +++ b/sysdeps/tile/atomic-machine.h @@ -16,20 +16,12 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -/* The sub-architecture headers provide definitions for these macros - that work for "int" and "long" size values only: - - atomic_compare_and_exchange_val_acq() - atomic_exchange_acq() - atomic_exchange_and_add() - atomic_and_val() - atomic_or_val() - atomic_decrement_if_positive() [tilegx only] - - Here we provide generic definitions true for all Tilera chips. */ +#ifndef _ATOMIC_MACHINE_H +#define _ATOMIC_MACHINE_H 1 #include <stdint.h> #include <features.h> +#include <arch/spr_def.h> typedef int32_t atomic32_t; typedef uint32_t uatomic32_t; @@ -46,6 +38,41 @@ typedef uintptr_t uatomicptr_t; typedef intmax_t atomic_max_t; typedef uintmax_t uatomic_max_t; +#ifdef _LP64 +# define __HAVE_64B_ATOMICS 1 +#else +/* tilegx32 does have 64-bit atomics, but assumptions in the semaphore + code mean that unaligned 64-bit atomics will be used if this symbol + is true, and unaligned atomics are not supported on tile. */ +# define __HAVE_64B_ATOMICS 0 +#endif + +#define USE_ATOMIC_COMPILER_BUILTINS 0 +#define ATOMIC_EXCHANGE_USES_CAS 0 + +/* Pick appropriate 8- or 4-byte instruction. */ +#define __atomic_update(mem, v, op) \ + ((__typeof (*(mem))) (__typeof (*(mem) - *(mem))) \ + ((sizeof (*(mem)) == 8) ? \ + __insn_##op ((void *) (mem), (int64_t) (__typeof((v) - (v))) (v)) : \ + (sizeof (*(mem)) == 4) ? \ + __insn_##op##4 ((void *) (mem), (int32_t) (__typeof ((v) - (v))) (v)) : \ + __atomic_error_bad_argument_size())) + +#define atomic_compare_and_exchange_val_acq(mem, n, o) \ + ({ __insn_mtspr (SPR_CMPEXCH_VALUE, (int64_t) (__typeof ((o) - (o))) (o)); \ + __atomic_update (mem, n, cmpexch); }) +#define atomic_exchange_acq(mem, newvalue) \ + __atomic_update (mem, newvalue, exch) +#define atomic_exchange_and_add(mem, value) \ + __atomic_update (mem, value, fetchadd) +#define atomic_and_val(mem, mask) \ + __atomic_update (mem, mask, fetchand) +#define atomic_or_val(mem, mask) \ + __atomic_update (mem, mask, fetchor) +#define atomic_decrement_if_positive(mem) \ + __atomic_update (mem, -1, fetchaddgez) + /* Barrier macro. */ #define atomic_full_barrier() __sync_synchronize() @@ -79,3 +106,5 @@ typedef uintmax_t uatomic_max_t; */ extern int __atomic_error_bad_argument_size(void) __attribute__ ((warning ("bad sizeof atomic argument"))); + +#endif /* _ATOMIC_MACHINE_H */ diff --git a/sysdeps/tile/tilegx/bits/wordsize.h b/sysdeps/tile/bits/wordsize.h index 9dc4da5de9..9dc4da5de9 100644 --- a/sysdeps/tile/tilegx/bits/wordsize.h +++ b/sysdeps/tile/bits/wordsize.h diff --git a/sysdeps/tile/tilegx/memchr.c b/sysdeps/tile/memchr.c index 38c0da6737..38c0da6737 100644 --- a/sysdeps/tile/tilegx/memchr.c +++ b/sysdeps/tile/memchr.c diff --git a/sysdeps/tile/tilegx/memcpy.c b/sysdeps/tile/memcpy.c index c1a2a29860..c1a2a29860 100644 --- a/sysdeps/tile/tilegx/memcpy.c +++ b/sysdeps/tile/memcpy.c diff --git a/sysdeps/tile/tilegx/memset.c b/sysdeps/tile/memset.c index c6804a9dc6..c6804a9dc6 100644 --- a/sysdeps/tile/tilegx/memset.c +++ b/sysdeps/tile/memset.c diff --git a/sysdeps/tile/tilegx/memusage.h b/sysdeps/tile/memusage.h index c91371adcd..c91371adcd 100644 --- a/sysdeps/tile/tilegx/memusage.h +++ b/sysdeps/tile/memusage.h diff --git a/sysdeps/tile/preconfigure b/sysdeps/tile/preconfigure index d2165c301d..21382df0f7 100644 --- a/sysdeps/tile/preconfigure +++ b/sysdeps/tile/preconfigure @@ -3,8 +3,8 @@ case "$machine" in tilegx*) base_machine=tile if $CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep -q __LP64__; then - machine=tile/tilegx/tilegx64 + machine=tile/tilegx64 else - machine=tile/tilegx/tilegx32 + machine=tile/tilegx32 fi ;; esac diff --git a/sysdeps/tile/tilegx/rawmemchr.c b/sysdeps/tile/rawmemchr.c index 3f5044c83e..3f5044c83e 100644 --- a/sysdeps/tile/tilegx/rawmemchr.c +++ b/sysdeps/tile/rawmemchr.c diff --git a/sysdeps/tile/tilegx/strcasestr.c b/sysdeps/tile/strcasestr.c index ecb3e623ca..ecb3e623ca 100644 --- a/sysdeps/tile/tilegx/strcasestr.c +++ b/sysdeps/tile/strcasestr.c diff --git a/sysdeps/tile/tilegx/strchr.c b/sysdeps/tile/strchr.c index 1a5eb5c927..1a5eb5c927 100644 --- a/sysdeps/tile/tilegx/strchr.c +++ b/sysdeps/tile/strchr.c diff --git a/sysdeps/tile/tilegx/strchrnul.c b/sysdeps/tile/strchrnul.c index e3024dda57..e3024dda57 100644 --- a/sysdeps/tile/tilegx/strchrnul.c +++ b/sysdeps/tile/strchrnul.c diff --git a/sysdeps/tile/tilegx/string-endian.h b/sysdeps/tile/string-endian.h index 09b57810df..09b57810df 100644 --- a/sysdeps/tile/tilegx/string-endian.h +++ b/sysdeps/tile/string-endian.h diff --git a/sysdeps/tile/tilegx/strlen.c b/sysdeps/tile/strlen.c index cebdf22af5..cebdf22af5 100644 --- a/sysdeps/tile/tilegx/strlen.c +++ b/sysdeps/tile/strlen.c diff --git a/sysdeps/tile/tilegx/strnlen.c b/sysdeps/tile/strnlen.c index c3560d208d..c3560d208d 100644 --- a/sysdeps/tile/tilegx/strnlen.c +++ b/sysdeps/tile/strnlen.c diff --git a/sysdeps/tile/tilegx/strrchr.c b/sysdeps/tile/strrchr.c index 51a08b71bf..51a08b71bf 100644 --- a/sysdeps/tile/tilegx/strrchr.c +++ b/sysdeps/tile/strrchr.c diff --git a/sysdeps/tile/tilegx/strstr.c b/sysdeps/tile/strstr.c index f82936a3c2..f82936a3c2 100644 --- a/sysdeps/tile/tilegx/strstr.c +++ b/sysdeps/tile/strstr.c diff --git a/sysdeps/tile/tilegx/Implies b/sysdeps/tile/tilegx/Implies deleted file mode 100644 index ade71c1957..0000000000 --- a/sysdeps/tile/tilegx/Implies +++ /dev/null @@ -1 +0,0 @@ -ieee754/dbl-64/wordsize-64 diff --git a/sysdeps/tile/tilegx/Makefile b/sysdeps/tile/tilegx/Makefile deleted file mode 100644 index 4281dd98fc..0000000000 --- a/sysdeps/tile/tilegx/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -include $(common-objpfx)cflags-mcmodel-large.mk - -# Check for gcc to support the command-line switch, and for -# binutils to support the hwN_plt() assembly operators and relocations. -$(common-objpfx)cflags-mcmodel-large.mk: $(common-objpfx)config.make - mcmodel=no; \ - (echo 'int main() { return getuid(); }' | \ - $(CC) -o /dev/null -xc - -mcmodel=large -fpic) && mcmodel=yes; \ - echo "cflags-mcmodel-large = $$mcmodel" > $@ - -ifeq (yes,$(cflags-mcmodel-large)) - -ifeq ($(subdir),csu) -# elf-init.c is in libc_nonshared.o (the end of the shared object) but -# must reach the _init symbol at the very start of the shared object. -CFLAGS-elf-init.c += -mcmodel=large - -# __gmon_start__ is at the very start of the shared object when linked -# with profiling, but calls to libc.so via the PLT at the very end. -CFLAGS-gmon-start.c += -mcmodel=large -endif - -else - -# Don't try to compile assembly code with hwN_plt() directives if the -# toolchain doesn't support -mcmodel=large. -ifeq ($(subdir),csu) -CPPFLAGS-start.S += -DNO_PLT_PCREL -CPPFLAGS-crti.S += -DNO_PLT_PCREL -endif -ifeq ($(subdir),nptl) -CPPFLAGS-pt-crti.S += -DNO_PLT_PCREL -endif - -endif diff --git a/sysdeps/tile/tilegx/atomic-machine.h b/sysdeps/tile/tilegx/atomic-machine.h deleted file mode 100644 index e77f6707b0..0000000000 --- a/sysdeps/tile/tilegx/atomic-machine.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (C) 2011-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _ATOMIC_MACHINE_H -#define _ATOMIC_MACHINE_H 1 - -#include <arch/spr_def.h> - -#ifdef _LP64 -# define __HAVE_64B_ATOMICS 1 -#else -/* tilegx32 does have 64-bit atomics, but assumptions in the semaphore - code mean that unaligned 64-bit atomics will be used if this symbol - is true, and unaligned atomics are not supported on tile. */ -# define __HAVE_64B_ATOMICS 0 -#endif - -#define USE_ATOMIC_COMPILER_BUILTINS 0 -#define ATOMIC_EXCHANGE_USES_CAS 0 - -/* Pick appropriate 8- or 4-byte instruction. */ -#define __atomic_update(mem, v, op) \ - ((__typeof (*(mem))) (__typeof (*(mem) - *(mem))) \ - ((sizeof (*(mem)) == 8) ? \ - __insn_##op ((void *) (mem), (int64_t) (__typeof((v) - (v))) (v)) : \ - (sizeof (*(mem)) == 4) ? \ - __insn_##op##4 ((void *) (mem), (int32_t) (__typeof ((v) - (v))) (v)) : \ - __atomic_error_bad_argument_size())) - -#define atomic_compare_and_exchange_val_acq(mem, n, o) \ - ({ __insn_mtspr (SPR_CMPEXCH_VALUE, (int64_t) (__typeof ((o) - (o))) (o)); \ - __atomic_update (mem, n, cmpexch); }) -#define atomic_exchange_acq(mem, newvalue) \ - __atomic_update (mem, newvalue, exch) -#define atomic_exchange_and_add(mem, value) \ - __atomic_update (mem, value, fetchadd) -#define atomic_and_val(mem, mask) \ - __atomic_update (mem, mask, fetchand) -#define atomic_or_val(mem, mask) \ - __atomic_update (mem, mask, fetchor) -#define atomic_decrement_if_positive(mem) \ - __atomic_update (mem, -1, fetchaddgez) - -#include <sysdeps/tile/atomic-machine.h> - -#endif /* atomic-machine.h */ diff --git a/sysdeps/tile/tilegx/tilegx32/Implies b/sysdeps/tile/tilegx32/Implies index 993b7f4cd1..709e1dc122 100644 --- a/sysdeps/tile/tilegx/tilegx32/Implies +++ b/sysdeps/tile/tilegx32/Implies @@ -1,3 +1,2 @@ -tile/tilegx tile wordsize-32 diff --git a/sysdeps/tile/tilegx/tilegx64/Implies b/sysdeps/tile/tilegx64/Implies index eb0686e0e6..1e9db8ed95 100644 --- a/sysdeps/tile/tilegx/tilegx64/Implies +++ b/sysdeps/tile/tilegx64/Implies @@ -1,3 +1,2 @@ -tile/tilegx tile wordsize-64 diff --git a/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile index 04605a69ac..fddaf181fe 100644 --- a/sysdeps/unix/sysv/linux/tile/Makefile +++ b/sysdeps/unix/sysv/linux/tile/Makefile @@ -1,3 +1,8 @@ +# Provide biarch definitions. +abi-variants := 64 32 +abi-64-condition := __WORDSIZE == 64 +abi-32-condition := __WORDSIZE == 32 + ifeq ($(subdir),misc) # <sys/reg.h> provides something like x86 compatibility. diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/configure b/sysdeps/unix/sysv/linux/tile/configure index 36e42e07e9..63f9686971 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/configure +++ b/sysdeps/unix/sysv/linux/tile/configure @@ -4,7 +4,7 @@ ldd_rewrite_script=$dir/ldd-rewrite.sed case $machine in -tile/tilegx/tilegx32) +tile/tilegx32) test -n "$libc_cv_slibdir" || case "$prefix" in /usr | /usr/) diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac b/sysdeps/unix/sysv/linux/tile/configure.ac index baca1f62a8..45ec42cff9 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac +++ b/sysdeps/unix/sysv/linux/tile/configure.ac @@ -4,7 +4,7 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ldd_rewrite_script=$dir/ldd-rewrite.sed case $machine in -tile/tilegx/tilegx32) +tile/tilegx32) LIBC_SLIBDIR_RTLDDIR([lib32], [lib32]) ;; esac diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S b/sysdeps/unix/sysv/linux/tile/ioctl.S index 43f956399e..43f956399e 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S +++ b/sysdeps/unix/sysv/linux/tile/ioctl.S diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h b/sysdeps/unix/sysv/linux/tile/ldconfig.h index 6185e300fe..6185e300fe 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h +++ b/sysdeps/unix/sysv/linux/tile/ldconfig.h diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed index 8b0bb691cc..8b0bb691cc 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed +++ b/sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h b/sysdeps/unix/sysv/linux/tile/register-dump.h index 491413e980..491413e980 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h +++ b/sysdeps/unix/sysv/linux/tile/register-dump.h diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c b/sysdeps/unix/sysv/linux/tile/sched_getcpu.c index 807913c7d1..807913c7d1 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c +++ b/sysdeps/unix/sysv/linux/tile/sched_getcpu.c diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx/Makefile deleted file mode 100644 index 62a5be662a..0000000000 --- a/sysdeps/unix/sysv/linux/tile/tilegx/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -# Provide biarch definitions. -abi-variants := 64 32 -abi-64-condition := __WORDSIZE == 64 -abi-32-condition := __WORDSIZE == 32 diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies b/sysdeps/unix/sysv/linux/tile/tilegx32/Implies index 9090d3fb8b..0023bb77aa 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/Implies @@ -1,4 +1,3 @@ -unix/sysv/linux/tile/tilegx unix/sysv/linux/tile unix/sysv/linux/generic/wordsize-32 unix/sysv/linux/generic diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx32/Makefile index 1e9d29be31..1e9d29be31 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/Makefile diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data index 1a7bcb38d3..1a7bcb38d3 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h index eb64802525..eb64802525 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/jmp_buf-macros.h +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist index f166310147..f166310147 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist index 0d64827515..0d64827515 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist index a3b1cc08bf..a3b1cc08bf 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist index dcbfbc05ac..dcbfbc05ac 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist index d5643802b7..d5643802b7 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist index cabc30c239..cabc30c239 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist index 6b375f5152..6b375f5152 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist index 0277e5c1a8..0277e5c1a8 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist index d16158f938..d16158f938 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist index aa2fefa6e4..aa2fefa6e4 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist index 14f5c8245d..14f5c8245d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist index 4aade0b7e0..4aade0b7e0 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist index e4d432643c..e4d432643c 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies b/sysdeps/unix/sysv/linux/tile/tilegx64/Implies index e4e0800c0a..f8143197bd 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/Implies @@ -1,4 +1,3 @@ -unix/sysv/linux/tile/tilegx unix/sysv/linux/tile unix/sysv/linux/generic unix/sysv/linux/wordsize-64 diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx64/Makefile index c8991d31e4..c8991d31e4 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/Makefile diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data index ac925ccb36..ac925ccb36 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h index 685f9b8236..685f9b8236 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/jmp_buf-macros.h +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist index ab74e7ecd1..ab74e7ecd1 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist index 0d64827515..0d64827515 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist index a3b1cc08bf..a3b1cc08bf 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist index 53dc99c45a..53dc99c45a 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist index d5643802b7..d5643802b7 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist index cabc30c239..cabc30c239 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist index 6b375f5152..6b375f5152 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist index 0277e5c1a8..0277e5c1a8 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist index d16158f938..d16158f938 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist index bd81642e3d..bd81642e3d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist index 14f5c8245d..14f5c8245d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist index 4aade0b7e0..4aade0b7e0 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist index e4d432643c..e4d432643c 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist |