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.
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
ieee754/soft-fp
+ieee754/dbl-64/wordsize-64
ieee754/dbl-64
ieee754/flt-32
+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.
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;
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()
*/
extern int __atomic_error_bad_argument_size(void)
__attribute__ ((warning ("bad sizeof atomic argument")));
+
+#endif /* _ATOMIC_MACHINE_H */
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
+++ /dev/null
-ieee754/dbl-64/wordsize-64
+++ /dev/null
-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
+++ /dev/null
-/* 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 */
-tile/tilegx
tile
wordsize-32
-tile/tilegx
tile
wordsize-64
+# 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.
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/)
ldd_rewrite_script=$dir/ldd-rewrite.sed
case $machine in
-tile/tilegx/tilegx32)
+tile/tilegx32)
LIBC_SLIBDIR_RTLDDIR([lib32], [lib32])
;;
esac
+++ /dev/null
-# Provide biarch definitions.
-abi-variants := 64 32
-abi-64-condition := __WORDSIZE == 64
-abi-32-condition := __WORDSIZE == 32
-unix/sysv/linux/tile/tilegx
unix/sysv/linux/tile
unix/sysv/linux/generic/wordsize-32
unix/sysv/linux/generic
-unix/sysv/linux/tile/tilegx
unix/sysv/linux/tile
unix/sysv/linux/generic
unix/sysv/linux/wordsize-64