]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Simplify tilegx sysdeps folder
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 13 Dec 2017 13:43:39 +0000 (11:43 -0200)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 20 Dec 2017 18:55:26 +0000 (16:55 -0200)
With tilepro support removal we can now simplify internal tile support by
moving the directory structure to avoid the unnecessary directory levels
in tile/tilegx both on generic and linux folders.

Checked with a build for tilegx-linux-gnu and tilegx-linux-gnu-32 with
and without the patch, there is no difference in generated binary with
a dissassemble.

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

68 files changed:
ChangeLog
stdlib/bug-getcontext.c
sysdeps/tile/Implies
sysdeps/tile/Makefile
sysdeps/tile/atomic-machine.h
sysdeps/tile/bits/wordsize.h [moved from sysdeps/tile/tilegx/bits/wordsize.h with 100% similarity]
sysdeps/tile/memchr.c [moved from sysdeps/tile/tilegx/memchr.c with 100% similarity]
sysdeps/tile/memcpy.c [moved from sysdeps/tile/tilegx/memcpy.c with 100% similarity]
sysdeps/tile/memset.c [moved from sysdeps/tile/tilegx/memset.c with 100% similarity]
sysdeps/tile/memusage.h [moved from sysdeps/tile/tilegx/memusage.h with 100% similarity]
sysdeps/tile/preconfigure
sysdeps/tile/rawmemchr.c [moved from sysdeps/tile/tilegx/rawmemchr.c with 100% similarity]
sysdeps/tile/strcasestr.c [moved from sysdeps/tile/tilegx/strcasestr.c with 100% similarity]
sysdeps/tile/strchr.c [moved from sysdeps/tile/tilegx/strchr.c with 100% similarity]
sysdeps/tile/strchrnul.c [moved from sysdeps/tile/tilegx/strchrnul.c with 100% similarity]
sysdeps/tile/string-endian.h [moved from sysdeps/tile/tilegx/string-endian.h with 100% similarity]
sysdeps/tile/strlen.c [moved from sysdeps/tile/tilegx/strlen.c with 100% similarity]
sysdeps/tile/strnlen.c [moved from sysdeps/tile/tilegx/strnlen.c with 100% similarity]
sysdeps/tile/strrchr.c [moved from sysdeps/tile/tilegx/strrchr.c with 100% similarity]
sysdeps/tile/strstr.c [moved from sysdeps/tile/tilegx/strstr.c with 100% similarity]
sysdeps/tile/tilegx/Implies [deleted file]
sysdeps/tile/tilegx/Makefile [deleted file]
sysdeps/tile/tilegx/atomic-machine.h [deleted file]
sysdeps/tile/tilegx32/Implies [moved from sysdeps/tile/tilegx/tilegx32/Implies with 58% similarity]
sysdeps/tile/tilegx64/Implies [moved from sysdeps/tile/tilegx/tilegx64/Implies with 58% similarity]
sysdeps/unix/sysv/linux/tile/Makefile
sysdeps/unix/sysv/linux/tile/configure [moved from sysdeps/unix/sysv/linux/tile/tilegx/configure with 96% similarity]
sysdeps/unix/sysv/linux/tile/configure.ac [moved from sysdeps/unix/sysv/linux/tile/tilegx/configure.ac with 91% similarity]
sysdeps/unix/sysv/linux/tile/ioctl.S [moved from sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S with 100% similarity]
sysdeps/unix/sysv/linux/tile/ldconfig.h [moved from sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h with 100% similarity]
sysdeps/unix/sysv/linux/tile/ldd-rewrite.sed [moved from sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed with 100% similarity]
sysdeps/unix/sysv/linux/tile/register-dump.h [moved from sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h with 100% similarity]
sysdeps/unix/sysv/linux/tile/sched_getcpu.c [moved from sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx/Makefile [deleted file]
sysdeps/unix/sysv/linux/tile/tilegx32/Implies [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies with 74% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/Makefile [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/c++-types.data [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/jmp_buf-macros.h [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/jmp_buf-macros.h with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/ld.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libBrokenLocale.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libanl.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libcrypt.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libdl.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libnsl.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libpthread.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libresolv.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/librt.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libthread_db.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx32/libutil.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/Implies [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies with 72% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/Makefile [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/c++-types.data [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/jmp_buf-macros.h [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/jmp_buf-macros.h with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/ld.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libBrokenLocale.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libanl.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libcrypt.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libdl.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libnsl.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libresolv.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/librt.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libthread_db.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist with 100% similarity]
sysdeps/unix/sysv/linux/tile/tilegx64/libutil.abilist [moved from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist with 100% similarity]

index 43dfbf2a5e9cc57d3c7616ee3e20dddc2737bce9..488769724bdab20f88090944b15ff1224223980b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 163400acba4ac0f4ab735afa797633d93b764bcc..55c681c4805ab287228ae9acbb07efffa23c71a4 100644 (file)
@@ -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
index 1cbc0539050494c3baec19e0b9b6bdc64ac1c9f4..cb17441cbd7860675b270d46a1d78a34e4e16834 100644 (file)
@@ -1,3 +1,4 @@
 ieee754/soft-fp
+ieee754/dbl-64/wordsize-64
 ieee754/dbl-64
 ieee754/flt-32
index 3cd4d1e7524a78203ad325ef5ed4d5f11d16bb05..dcb8777a54ac186dda1878dfea147bbd0de86e83 100644 (file)
@@ -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.
 
index 32277c960ff1f48cffab81f2da84311328f58ae2..58ce76ccc9e3a2fee6b6633ad340cd9b993e4b53 100644 (file)
    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  */
index d2165c301de769a46bd3f6067d14454299999447..21382df0f74af26bdb79b7274352f34c02a7b093 100644 (file)
@@ -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/Implies b/sysdeps/tile/tilegx/Implies
deleted file mode 100644 (file)
index ade71c1..0000000
+++ /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 (file)
index 4281dd9..0000000
+++ /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 (file)
index e77f670..0000000
+++ /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 */
similarity index 58%
rename from sysdeps/tile/tilegx/tilegx32/Implies
rename to sysdeps/tile/tilegx32/Implies
index 993b7f4cd1438f11546f3ab34b03cb49f2ae0c77..709e1dc12236cf1d66e7062edb26e0f89bca6b75 100644 (file)
@@ -1,3 +1,2 @@
-tile/tilegx
 tile
 wordsize-32
similarity index 58%
rename from sysdeps/tile/tilegx/tilegx64/Implies
rename to sysdeps/tile/tilegx64/Implies
index eb0686e0e699868b11bf045b51d54fc6af2b0ca7..1e9db8ed95d395696eb6c8c1ffe7a3976fbc956d 100644 (file)
@@ -1,3 +1,2 @@
-tile/tilegx
 tile
 wordsize-64
index 04605a69acdea56ef58cdebfddd8912a01158582..fddaf181fe2e755ba46817fbab09879c1731a928 100644 (file)
@@ -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.
similarity index 96%
rename from sysdeps/unix/sysv/linux/tile/tilegx/configure
rename to sysdeps/unix/sysv/linux/tile/configure
index 36e42e07e997e7676e8507744f0958849a975e48..63f9686971e455796853986252193d4239ac0b1e 100644 (file)
@@ -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/)
similarity index 91%
rename from sysdeps/unix/sysv/linux/tile/tilegx/configure.ac
rename to sysdeps/unix/sysv/linux/tile/configure.ac
index baca1f62a80047b2b0a13ceed357496bb9f0a299..45ec42cff95183e58779bf10e3778b8b39326e41 100644 (file)
@@ -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/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx/Makefile
deleted file mode 100644 (file)
index 62a5be6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Provide biarch definitions.
-abi-variants := 64 32
-abi-64-condition := __WORDSIZE == 64
-abi-32-condition := __WORDSIZE == 32
similarity index 74%
rename from sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies
rename to sysdeps/unix/sysv/linux/tile/tilegx32/Implies
index 9090d3fb8b89a0a590a2c8a07fc0400607e52274..0023bb77aada876542e25c342f81a96581bee749 100644 (file)
@@ -1,4 +1,3 @@
-unix/sysv/linux/tile/tilegx
 unix/sysv/linux/tile
 unix/sysv/linux/generic/wordsize-32
 unix/sysv/linux/generic
similarity index 72%
rename from sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies
rename to sysdeps/unix/sysv/linux/tile/tilegx64/Implies
index e4e0800c0a5fcb9822914131d0cc1dd3869d7a22..f8143197bde558c75abdb737fbe0f5767b76b262 100644 (file)
@@ -1,4 +1,3 @@
-unix/sysv/linux/tile/tilegx
 unix/sysv/linux/tile
 unix/sysv/linux/generic
 unix/sysv/linux/wordsize-64