diff options
53 files changed, 98 insertions, 5106 deletions
@@ -1,5 +1,71 @@ 2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org> + * 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. + * nptl/Makefile (libpthread-routines): Add pthread_join_common. * nptl/pthreadP.h (__pthread_timedjoin_ex): New prototype. * nptl/pthread_join_common.c: New file: common function used on @@ -106,6 +106,8 @@ Deprecated and removed features, and other changes affecting compatibility: * The libresolv function p_secstodate is no longer supported for new programs. +* The tilepro-*-linux-gnu configuration is no longer supported. + Changes to build and runtime requirements: * bison version 2.7 or later is required to generate code in the 'intl' @@ -43,7 +43,6 @@ The GNU C Library supports these configurations for using Linux kernels: sparc*-*-linux-gnu sparc64*-*-linux-gnu tilegx-*-linux-gnu - tilepro-*-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/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index b86d6c1387..b183cd2696 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -359,8 +359,6 @@ class Context(object): os_name='linux-gnu', glibcs=[{}, {'variant': '32', 'ccopts': '-m32'}]) - self.add_config(arch='tilepro', - os_name='linux-gnu') self.add_config(arch='x86_64', os_name='linux-gnu', gcc_cfg=['--with-multilib-list=m64,m32,mx32'], diff --git a/sysdeps/tile/__tls_get_addr.S b/sysdeps/tile/__tls_get_addr.S index 3b2b95522f..2402bd1e9a 100644 --- a/sysdeps/tile/__tls_get_addr.S +++ b/sysdeps/tile/__tls_get_addr.S @@ -37,7 +37,6 @@ ENTRY (__tls_get_addr) ADDI_PTR r27, tp, DTV_OFFSET } .Llnk: -#ifdef __tilegx__ { LD_PTR r27, r27 /* r27 = THREAD_DTV() */ moveli r26, hw1_last(_rtld_local + TLS_GENERATION_OFFSET - .Llnk) @@ -47,16 +46,6 @@ ENTRY (__tls_get_addr) ADD_PTR r25, r25, r26 LD_PTR r26, r0 /* r26 = ti_module */ } -#else - { - LD_PTR r27, r27 /* r27 = THREAD_DTV() */ - addli r25, r25, lo16(_rtld_local + TLS_GENERATION_OFFSET - .Llnk) - } - { - auli r25, r25, ha16(_rtld_local + TLS_GENERATION_OFFSET - .Llnk) - LD_PTR r26, r0 /* r26 = ti_module */ - } -#endif LD_PTR r25, r25 /* r25 = DL(dl_tls_generation) */ { LD_PTR r28, r27 /* r28 = THREAD_DTV()->counter */ diff --git a/sysdeps/tile/crti.S b/sysdeps/tile/crti.S index 522373aff5..1d714ab483 100644 --- a/sysdeps/tile/crti.S +++ b/sysdeps/tile/crti.S @@ -70,7 +70,6 @@ _init: #if PREINIT_FUNCTION_WEAK lnk r2 0: -# ifdef __tilegx__ moveli r1, hw2_last(_GLOBAL_OFFSET_TABLE_ - 0b) { shl16insli r1, r1, hw1(_GLOBAL_OFFSET_TABLE_ - 0b) @@ -80,22 +79,12 @@ _init: shl16insli r1, r1, hw0(_GLOBAL_OFFSET_TABLE_ - 0b) shl16insli r0, r0, hw0_got(PREINIT_FUNCTION) } -# else - { - moveli r1, lo16(_GLOBAL_OFFSET_TABLE_ - 0b) - moveli r0, got_lo16(PREINIT_FUNCTION) - } - { - auli r1, r1, ha16(_GLOBAL_OFFSET_TABLE_ - 0b) - auli r0, r0, got_ha16(PREINIT_FUNCTION) - } -# endif ADD_PTR r0, r0, r1 ADD_PTR r0, r0, r2 LD_PTR r0, r0 BEQZ r0, .Lno_weak_fn jalr r0 -#elif defined(__tilegx__) && !defined(NO_PLT_PCREL) +#elif !defined(NO_PLT_PCREL) /* Since we are calling from the start of the object to the PLT, call by loading the full address into a register. */ lnk r2 diff --git a/sysdeps/tile/dl-machine.h b/sysdeps/tile/dl-machine.h index f7af7c3848..d745a9c07f 100644 --- a/sysdeps/tile/dl-machine.h +++ b/sysdeps/tile/dl-machine.h @@ -20,11 +20,7 @@ #ifndef dl_machine_h #define dl_machine_h -#ifdef __tilegx__ #define ELF_MACHINE_NAME "tilegx" -#else -#define ELF_MACHINE_NAME "tilepro" -#endif #include <sys/param.h> #include <string.h> @@ -37,18 +33,12 @@ static inline int elf_machine_matches_host (const ElfW(Ehdr) *ehdr) { -#if defined __tilegx__ if (ehdr->e_machine != EM_TILEGX) return 0; -# if __WORDSIZE == 32 +#if __WORDSIZE == 32 return (ehdr->e_ident[EI_CLASS] == ELFCLASS32); -# else - return (ehdr->e_ident[EI_CLASS] == ELFCLASS64); -# endif -#elif defined __tilepro__ - return ehdr->e_machine == EM_TILEPRO; #else -# error "Unknown tile architecture." + return (ehdr->e_ident[EI_CLASS] == ELFCLASS64); #endif } @@ -62,19 +52,12 @@ elf_machine_dynamic (void) { ElfW(Addr) *got; -#ifdef __tilegx__ ElfW(Addr) tmp; asm( " { lnk %0; moveli %1, hw2_last(_GLOBAL_OFFSET_TABLE_ - 1f) }\n" "1: shl16insli %1, %1, hw1(_GLOBAL_OFFSET_TABLE_ - 1b)\n" " shl16insli %1, %1, hw0(_GLOBAL_OFFSET_TABLE_ - 1b)\n" " add %0, %0, %1" : "=r" (got), "=r" (tmp)); -#else - asm( " lnk %0\n" - "1: addli %0, %0, lo16(_GLOBAL_OFFSET_TABLE_ - 1b)\n" - " auli %0, %0, ha16(_GLOBAL_OFFSET_TABLE_ - 1b)" - : "=r" (got)); -#endif return *got; } @@ -86,9 +69,8 @@ elf_machine_load_address (void) { ElfW(Addr) *got; ElfW(Addr) dynamic; - -#ifdef __tilegx__ ElfW(Addr) tmp; + asm( " lnk %2\n" "1: {\n" " moveli %0, hw2_last(_GLOBAL_OFFSET_TABLE_ - 1b)\n" @@ -107,18 +89,6 @@ elf_machine_load_address (void) " add %1, %1, %2\n" " }" : "=r" (got), "=r" (dynamic), "=r" (tmp)); -#else - asm( " lnk %0\n" - "1: {\n" - " addli %0, %0, lo16(_GLOBAL_OFFSET_TABLE_ - 1b)\n" - " addli %1, %0, lo16(_DYNAMIC - 1b)\n" - " }\n" - " {\n" - " auli %0, %0, ha16(_GLOBAL_OFFSET_TABLE_ - 1b)\n" - " auli %1, %1, ha16(_DYNAMIC - 1b)\n" - " }\n" - : "=r" (got), "=r" (dynamic)); -#endif return dynamic - *got; } @@ -197,15 +167,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) #endif /* Wrap a generic Tilera relocation type. */ -#ifdef __tilegx__ #define R_TILE(x) R_TILEGX_##x #define __R_TILE_TLS(x,c) R_TILEGX_TLS_##x##c #define _R_TILE_TLS(x,c) __R_TILE_TLS(x,c) #define R_TILE_TLS(x) _R_TILE_TLS(x,__ELF_NATIVE_CLASS) -#else -#define R_TILE(x) R_TILEPRO_##x -#define R_TILE_TLS(x) R_TILEPRO_TLS_##x##32 -#endif /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or TLS variable, so undefined references should not be allowed to @@ -272,13 +237,8 @@ struct reloc_howto /* Right shift operand by this number of bits. */ unsigned char right_shift; -#ifdef __tilegx__ /* If nonzero, this is updating a code bundle. */ unsigned char is_bundle_update; -#else - /* If nonzero, add 0x8000 to the value. */ - unsigned char add_0x8000; -#endif /* If nonzero, subtract the containing address from the address. */ unsigned char is_pcrel; @@ -291,19 +251,17 @@ struct reloc_howto because then the table would not be position-independent. */ static const struct reloc_howto howto[] = { -#ifdef __tilegx__ - -# if __WORDSIZE == 32 +#if __WORDSIZE == 32 /* The GX -m32 loader only handles 32-bit types, so it will be confused by shifts larger than that. We convert them to just sign-exte |
