| gnulib-arch = $(elf-objpfx)libgcc-stubs.a | 
 | static-gnulib-arch = $(elf-objpfx)libgcc-stubs.a | 
 |  | 
 | # All supported build tools support TLS descriptors, but the OS may not. | 
 | ifndef have-arm-tls-desc | 
 | have-arm-tls-desc = yes | 
 | endif | 
 |  | 
 | ifeq ($(subdir),elf) | 
 | sysdep-dl-routines += tlsdesc dl-tlsdesc | 
 | sysdep_routines += aeabi_unwind_cpp_pr1 find_exidx | 
 | sysdep-rtld-routines += aeabi_unwind_cpp_pr1 | 
 | shared-only-routines += aeabi_unwind_cpp_pr1 | 
 |  | 
 | $(objpfx)libgcc-stubs.a: $(objpfx)aeabi_unwind_cpp_pr1.os | 
 | 	$(build-extra-lib) | 
 |  | 
 | lib-noranlib: $(objpfx)libgcc-stubs.a | 
 |  | 
 | ifeq ($(build-shared),yes) | 
 | ifeq ($(have-arm-tls-desc),yes) | 
 | tests += tst-armtlsdescloc tst-armtlsdescextnow tst-armtlsdescextlazy | 
 | modules-names += tst-armtlsdesclocmod | 
 | modules-names += tst-armtlsdescextlazymod tst-armtlsdescextnowmod | 
 | CPPFLAGS-tst-armtlsdescextnowmod.c += -Dstatic= | 
 | CPPFLAGS-tst-armtlsdescextlazymod.c += -Dstatic= | 
 | CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=gnu2 | 
 | CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=gnu2 | 
 | CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=gnu2 | 
 | LDFLAGS-tst-armtlsdescextnowmod.so += -Wl,-z,now | 
 | tst-armtlsdescloc-ENV = LD_BIND_NOW=1 | 
 | tst-armtlsdescextnow-ENV = LD_BIND_NOW=1 | 
 | tst-armtlsdescextlazy-ENV = LD_BIND_NOW=1 | 
 | $(objpfx)tst-armtlsdescloc: $(objpfx)tst-armtlsdesclocmod.so | 
 | $(objpfx)tst-armtlsdescextnow: $(objpfx)tst-armtlsdescextnowmod.so | 
 | $(objpfx)tst-armtlsdescextlazy: $(objpfx)tst-armtlsdescextlazymod.so | 
 | endif | 
 | endif | 
 | endif | 
 |  | 
 | ifeq ($(subdir),csu) | 
 | # get offset to rtld_global._dl_hwcap | 
 | gen-as-const-headers += rtld-global-offsets.sym tlsdesc.sym | 
 | aeabi_constants = aeabi_lcsts aeabi_sighandlers aeabi_math | 
 | aeabi_routines = aeabi_assert aeabi_localeconv aeabi_errno_addr \ | 
 | 		 aeabi_mb_cur_max aeabi_atexit aeabi_memclr aeabi_memcpy \ | 
 | 		 aeabi_memmove aeabi_memset \ | 
 | 		 aeabi_read_tp libc-aeabi_read_tp | 
 |  | 
 | sysdep_routines += $(aeabi_constants) $(aeabi_routines) | 
 | static-only-routines += $(aeabi_constants) aeabi_read_tp | 
 | shared-only-routines += libc-aeabi_read_tp | 
 |  | 
 | # In order for unwinding to fail when it falls out of main, we need a | 
 | # cantunwind marker.  There's one in start.S.  To make sure we reach it, add | 
 | # unwind tables for __libc_start_main. | 
 | CFLAGS-libc-start.c += -fexceptions | 
 |  | 
 | sysdep_routines += arm-unwind-resume | 
 | shared-only-routines += arm-unwind-resume | 
 | endif | 
 |  | 
 | ifeq ($(subdir),gmon) | 
 | sysdep_routines += arm-mcount | 
 | endif | 
 |  | 
 | ifeq ($(subdir),debug) | 
 | CFLAGS-backtrace.c += -funwind-tables | 
 | endif | 
 |  | 
 | ifeq ($(subdir),rt) | 
 | librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume | 
 | librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume | 
 | endif | 
 |  | 
 | ifeq ($(subdir),nptl) | 
 | libpthread-sysdep_routines += pt-arm-unwind-resume | 
 | libpthread-shared-only-routines += pt-arm-unwind-resume | 
 | endif |