mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	Simplify tilegx sysdeps folder
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.
This commit is contained in:
		
							
								
								
									
										27
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,5 +1,32 @@
 | 
				
			|||||||
2017-12-20  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 | 
					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.
 | 
						* README: Remove tilepro-*-linux-gnu from supported architecture.
 | 
				
			||||||
	* scripts/build-many-glibcs.py: Likewise.
 | 
						* scripts/build-many-glibcs.py: Likewise.
 | 
				
			||||||
	* sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
 | 
						* sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@ do_test (void)
 | 
				
			|||||||
  printf ("\nDone with getcontext()!\n");
 | 
					  printf ("\nDone with getcontext()!\n");
 | 
				
			||||||
  fflush (NULL);
 | 
					  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
 | 
					     uninitialized.  Because it is always initialized and nothing in
 | 
				
			||||||
     this test ever calls setcontext (a setcontext call could result
 | 
					     this test ever calls setcontext (a setcontext call could result
 | 
				
			||||||
     in local variables being clobbered on the second return from
 | 
					     in local variables being clobbered on the second return from
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,4 @@
 | 
				
			|||||||
ieee754/soft-fp
 | 
					ieee754/soft-fp
 | 
				
			||||||
 | 
					ieee754/dbl-64/wordsize-64
 | 
				
			||||||
ieee754/dbl-64
 | 
					ieee754/dbl-64
 | 
				
			||||||
ieee754/flt-32
 | 
					ieee754/flt-32
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
					# 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.
 | 
					# this variable; it's here mostly for documentational purposes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,20 +16,12 @@
 | 
				
			|||||||
   License along with the GNU C Library.  If not, see
 | 
					   License along with the GNU C Library.  If not, see
 | 
				
			||||||
   <http://www.gnu.org/licenses/>.  */
 | 
					   <http://www.gnu.org/licenses/>.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The sub-architecture headers provide definitions for these macros
 | 
					#ifndef _ATOMIC_MACHINE_H
 | 
				
			||||||
   that work for "int" and "long" size values only:
 | 
					#define _ATOMIC_MACHINE_H       1
 | 
				
			||||||
 | 
					 | 
				
			||||||
   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.  */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <features.h>
 | 
					#include <features.h>
 | 
				
			||||||
 | 
					#include <arch/spr_def.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef int32_t atomic32_t;
 | 
					typedef int32_t atomic32_t;
 | 
				
			||||||
typedef uint32_t uatomic32_t;
 | 
					typedef uint32_t uatomic32_t;
 | 
				
			||||||
@@ -46,6 +38,41 @@ typedef uintptr_t uatomicptr_t;
 | 
				
			|||||||
typedef intmax_t atomic_max_t;
 | 
					typedef intmax_t atomic_max_t;
 | 
				
			||||||
typedef uintmax_t uatomic_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. */
 | 
					/* Barrier macro. */
 | 
				
			||||||
#define atomic_full_barrier() __sync_synchronize()
 | 
					#define atomic_full_barrier() __sync_synchronize()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,3 +106,5 @@ typedef uintmax_t uatomic_max_t;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
extern int __atomic_error_bad_argument_size(void)
 | 
					extern int __atomic_error_bad_argument_size(void)
 | 
				
			||||||
  __attribute__ ((warning ("bad sizeof atomic argument")));
 | 
					  __attribute__ ((warning ("bad sizeof atomic argument")));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _ATOMIC_MACHINE_H  */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@ case "$machine" in
 | 
				
			|||||||
    tilegx*)
 | 
					    tilegx*)
 | 
				
			||||||
	base_machine=tile
 | 
						base_machine=tile
 | 
				
			||||||
	if $CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep -q __LP64__; then
 | 
						if $CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep -q __LP64__; then
 | 
				
			||||||
	    machine=tile/tilegx/tilegx64
 | 
						    machine=tile/tilegx64
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    machine=tile/tilegx/tilegx32
 | 
						    machine=tile/tilegx32
 | 
				
			||||||
	fi ;;
 | 
						fi ;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
ieee754/dbl-64/wordsize-64
 | 
					 | 
				
			||||||
@@ -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
 | 
					 | 
				
			||||||
@@ -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 */
 | 
					 | 
				
			||||||
@@ -1,3 +1,2 @@
 | 
				
			|||||||
tile/tilegx
 | 
					 | 
				
			||||||
tile
 | 
					tile
 | 
				
			||||||
wordsize-32
 | 
					wordsize-32
 | 
				
			||||||
@@ -1,3 +1,2 @@
 | 
				
			|||||||
tile/tilegx
 | 
					 | 
				
			||||||
tile
 | 
					tile
 | 
				
			||||||
wordsize-64
 | 
					wordsize-64
 | 
				
			||||||
@@ -1,3 +1,8 @@
 | 
				
			|||||||
 | 
					# Provide biarch definitions.
 | 
				
			||||||
 | 
					abi-variants := 64 32
 | 
				
			||||||
 | 
					abi-64-condition := __WORDSIZE == 64
 | 
				
			||||||
 | 
					abi-32-condition := __WORDSIZE == 32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(subdir),misc)
 | 
					ifeq ($(subdir),misc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# <sys/reg.h> provides something like x86 compatibility.
 | 
					# <sys/reg.h> provides something like x86 compatibility.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
ldd_rewrite_script=$dir/ldd-rewrite.sed
 | 
					ldd_rewrite_script=$dir/ldd-rewrite.sed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case $machine in
 | 
					case $machine in
 | 
				
			||||||
tile/tilegx/tilegx32)
 | 
					tile/tilegx32)
 | 
				
			||||||
  test -n "$libc_cv_slibdir" ||
 | 
					  test -n "$libc_cv_slibdir" ||
 | 
				
			||||||
case "$prefix" in
 | 
					case "$prefix" in
 | 
				
			||||||
/usr | /usr/)
 | 
					/usr | /usr/)
 | 
				
			||||||
@@ -4,7 +4,7 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 | 
				
			|||||||
ldd_rewrite_script=$dir/ldd-rewrite.sed
 | 
					ldd_rewrite_script=$dir/ldd-rewrite.sed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case $machine in
 | 
					case $machine in
 | 
				
			||||||
tile/tilegx/tilegx32)
 | 
					tile/tilegx32)
 | 
				
			||||||
  LIBC_SLIBDIR_RTLDDIR([lib32], [lib32])
 | 
					  LIBC_SLIBDIR_RTLDDIR([lib32], [lib32])
 | 
				
			||||||
  ;;
 | 
					  ;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
# Provide biarch definitions.
 | 
					 | 
				
			||||||
abi-variants := 64 32
 | 
					 | 
				
			||||||
abi-64-condition := __WORDSIZE == 64
 | 
					 | 
				
			||||||
abi-32-condition := __WORDSIZE == 32
 | 
					 | 
				
			||||||
@@ -1,4 +1,3 @@
 | 
				
			|||||||
unix/sysv/linux/tile/tilegx
 | 
					 | 
				
			||||||
unix/sysv/linux/tile
 | 
					unix/sysv/linux/tile
 | 
				
			||||||
unix/sysv/linux/generic/wordsize-32
 | 
					unix/sysv/linux/generic/wordsize-32
 | 
				
			||||||
unix/sysv/linux/generic
 | 
					unix/sysv/linux/generic
 | 
				
			||||||
@@ -1,4 +1,3 @@
 | 
				
			|||||||
unix/sysv/linux/tile/tilegx
 | 
					 | 
				
			||||||
unix/sysv/linux/tile
 | 
					unix/sysv/linux/tile
 | 
				
			||||||
unix/sysv/linux/generic
 | 
					unix/sysv/linux/generic
 | 
				
			||||||
unix/sysv/linux/wordsize-64
 | 
					unix/sysv/linux/wordsize-64
 | 
				
			||||||
		Reference in New Issue
	
	Block a user