diff --git a/SOURCES/binutils-gas-Use-the-directory-name-in-.file-0.patch b/SOURCES/binutils-gas-Use-the-directory-name-in-.file-0.patch
new file mode 100644
index 0000000..e3e7526
--- /dev/null
+++ b/SOURCES/binutils-gas-Use-the-directory-name-in-.file-0.patch
@@ -0,0 +1,292 @@
+diff --git a/gas/testsuite/gas/elf/dwarf-5-file0-2.d b/gas/testsuite/gas/elf/dwarf-5-file0-2.d
+new file mode 100644
+index 00000000000..4b3ed29f4c9
+--- /dev/null
++++ b/gas/testsuite/gas/elf/dwarf-5-file0-2.d
+@@ -0,0 +1,15 @@
++#as: --gdwarf-5
++#name: DWARF5 .file 0 dir file
++#readelf: -wl
++
++#...
++ The Directory Table \(offset 0x.*, lines 1, columns 1\):
++  Entry	Name
++#...
++  0	\(indirect line string, offset: 0x.*\): /example
++
++ The File Name Table \(offset 0x.*, lines 2, columns 2\):
++  Entry	Dir	Name
++  0	0	\(indirect line string, offset: 0x.*\): test.c
++  1	0	\(indirect line string, offset: 0x.*\): test.c
++#pass
+diff --git a/gas/testsuite/gas/elf/dwarf-5-file0-2.s b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
+new file mode 100644
+index 00000000000..135a03bf493
+--- /dev/null
++++ b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
+@@ -0,0 +1,111 @@
++	.file	"test.c"
++	.text
++.Ltext0:
++	.file 0 "/example" "test.c"
++	.globl	x
++	.section	.bss
++	.balign 4
++	.type	x, @object
++	.size	x, 4
++x:
++	.zero	4
++	.text
++.Letext0:
++	.file 1 "test.c"
++	.section	.debug_info,"",%progbits
++.Ldebug_info0:
++	.long	0x32
++	.2byte	0x5
++	.byte	0x1
++	.byte	0x4
++	.long	.Ldebug_abbrev0
++	.uleb128 0x1
++	.long	.LASF2
++	.byte	0x1d
++	.long	.LASF0
++	.long	.LASF1
++	.long	.Ldebug_line0
++	.uleb128 0x2
++	.string	"x"
++	.byte	0x1
++	.byte	0x1
++	.byte	0x5
++	.long	0x2e
++	.uleb128 0x5
++	.byte	0x3
++	.long	x
++	.uleb128 0x3
++	.byte	0x4
++	.byte	0x5
++	.string	"int"
++	.byte	0
++	.section	.debug_abbrev,"",%progbits
++.Ldebug_abbrev0:
++	.uleb128 0x1
++	.uleb128 0x11
++	.byte	0x1
++	.uleb128 0x25
++	.uleb128 0xe
++	.uleb128 0x13
++	.uleb128 0xb
++	.uleb128 0x3
++	.uleb128 0x1f
++	.uleb128 0x1b
++	.uleb128 0x1f
++	.uleb128 0x10
++	.uleb128 0x17
++	.byte	0
++	.byte	0
++	.uleb128 0x2
++	.uleb128 0x34
++	.byte	0
++	.uleb128 0x3
++	.uleb128 0x8
++	.uleb128 0x3a
++	.uleb128 0xb
++	.uleb128 0x3b
++	.uleb128 0xb
++	.uleb128 0x39
++	.uleb128 0xb
++	.uleb128 0x49
++	.uleb128 0x13
++	.uleb128 0x3f
++	.uleb128 0x19
++	.uleb128 0x2
++	.uleb128 0x18
++	.byte	0
++	.byte	0
++	.uleb128 0x3
++	.uleb128 0x24
++	.byte	0
++	.uleb128 0xb
++	.uleb128 0xb
++	.uleb128 0x3e
++	.uleb128 0xb
++	.uleb128 0x3
++	.uleb128 0x8
++	.byte	0
++	.byte	0
++	.byte	0
++	.section	.debug_aranges,"",%progbits
++	.long	0x14
++	.2byte	0x2
++	.long	.Ldebug_info0
++	.byte	0x4
++	.byte	0
++	.2byte	0
++	.2byte	0
++	.long	0
++	.long	0
++	.section	.debug_line,"",%progbits
++.Ldebug_line0:
++	.section	.debug_str,"MS",%progbits,1
++.LASF2:
++	.string	"GNU C17 11.2.1 -g"
++	.section	.debug_line_str,"MS",%progbits,1
++.LASF1:
++	.string	"/example"
++.LASF0:
++	.string	"test.c"
++	.ident	"GCC: (GNU) 11.2.1"
++	.section	.note.GNU-stack,"",%progbits
+diff --git a/gas/testsuite/gas/elf/dwarf-5-file0-2.s b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
+index 135a03bf493..bab4a16b56b 100644
+--- a/gas/testsuite/gas/elf/dwarf-5-file0-2.s
++++ b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
+@@ -5,7 +5,7 @@
+ 	.globl	x
+ 	.section	.bss
+ 	.balign 4
+-	.type	x, @object
++	.type	x, %object
+ 	.size	x, 4
+ x:
+ 	.zero	4
+@@ -14,30 +14,30 @@ x:
+ 	.file 1 "test.c"
+ 	.section	.debug_info,"",%progbits
+ .Ldebug_info0:
+-	.long	0x32
++	.4byte	0x32
+ 	.2byte	0x5
+ 	.byte	0x1
+ 	.byte	0x4
+-	.long	.Ldebug_abbrev0
++	.4byte	.Ldebug_abbrev0
+ 	.uleb128 0x1
+-	.long	.LASF2
++	.4byte	.LASF2
+ 	.byte	0x1d
+-	.long	.LASF0
+-	.long	.LASF1
+-	.long	.Ldebug_line0
++	.4byte	.LASF0
++	.4byte	.LASF1
++	.4byte	.Ldebug_line0
+ 	.uleb128 0x2
+-	.string	"x"
++	.asciz	"x"
+ 	.byte	0x1
+ 	.byte	0x1
+ 	.byte	0x5
+-	.long	0x2e
++	.4byte	0x2e
+ 	.uleb128 0x5
+ 	.byte	0x3
+-	.long	x
++	.4byte	x
+ 	.uleb128 0x3
+ 	.byte	0x4
+ 	.byte	0x5
+-	.string	"int"
++	.asciz	"int"
+ 	.byte	0
+ 	.section	.debug_abbrev,"",%progbits
+ .Ldebug_abbrev0:
+@@ -88,24 +88,24 @@ x:
+ 	.byte	0
+ 	.byte	0
+ 	.section	.debug_aranges,"",%progbits
+-	.long	0x14
++	.4byte	0x14
+ 	.2byte	0x2
+-	.long	.Ldebug_info0
++	.4byte	.Ldebug_info0
+ 	.byte	0x4
+ 	.byte	0
+ 	.2byte	0
+ 	.2byte	0
+-	.long	0
+-	.long	0
++	.4byte	0
++	.4byte	0
+ 	.section	.debug_line,"",%progbits
+ .Ldebug_line0:
+ 	.section	.debug_str,"MS",%progbits,1
+ .LASF2:
+-	.string	"GNU C17 11.2.1 -g"
++	.asciz	"GNU C17 11.2.1 -g"
+ 	.section	.debug_line_str,"MS",%progbits,1
+ .LASF1:
+-	.string	"/example"
++	.asciz	"/example"
+ .LASF0:
+-	.string	"test.c"
++	.asciz	"test.c"
+ 	.ident	"GCC: (GNU) 11.2.1"
+ 	.section	.note.GNU-stack,"",%progbits
+diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.35.2/gas/dwarf2dbg.c
+--- binutils.orig/gas/dwarf2dbg.c	2021-11-08 14:59:19.759524743 +0000
++++ binutils-2.35.2/gas/dwarf2dbg.c	2021-11-08 15:00:55.179909708 +0000
+@@ -588,6 +588,7 @@ get_basename (const char * pathname)
+ 
+ static unsigned int
+ get_directory_table_entry (const char *  dirname,
++			   const char *  file0_dirname,
+ 			   size_t        dirlen,
+ 			   bfd_boolean   can_use_zero)
+ {
+@@ -617,7 +618,7 @@ get_directory_table_entry (const char *
+     {
+       if (dirs == NULL || dirs[0] == NULL)
+ 	{
+-	  const char * pwd = getpwd ();
++	  const char * pwd = file0_dirname ? file0_dirname : getpwd ();
+ 
+ 	  if (dwarf_level >= 5 && strcmp (dirname, pwd) != 0)
+ 	    {
+@@ -626,7 +627,7 @@ get_directory_table_entry (const char *
+ 		 directory).  Since we are about to create a directory entry that
+ 		 is not the same, allocate the current directory first.
+ 		 FIXME: Alternatively we could generate an error message here.  */
+-	      (void) get_directory_table_entry (pwd, strlen (pwd), TRUE);
++	      (void) get_directory_table_entry (pwd, NULL, strlen (pwd), TRUE);
+ 	      d = 1;
+ 	    }
+ 	  else
+@@ -722,7 +723,7 @@ allocate_filenum (const char * pathname)
+   file = get_basename (pathname);
+   dir_len = file - pathname;
+ 
+-  dir = get_directory_table_entry (pathname, dir_len, FALSE);
++  dir = get_directory_table_entry (pathname, NULL, dir_len, FALSE);
+ 
+   /* Do not use slot-0.  That is specifically reserved for use by
+      the '.file 0 "name"' directive.  */
+@@ -762,6 +763,7 @@ allocate_filename_to_slot (const char *
+   const char *file;
+   size_t dirlen;
+   unsigned int i, d;
++  const char *file0_dirname = dirname;
+ 
+   /* Short circuit the common case of adding the same pathname
+      as last time.  */
+@@ -836,7 +838,8 @@ allocate_filename_to_slot (const char *
+       file = filename;
+     }
+ 
+-  d = get_directory_table_entry (dirname, dirlen, num == 0);
++  d = get_directory_table_entry (dirname, file0_dirname, dirlen,
++				 num == 0);
+   i = num;
+ 
+   if (! assign_file_to_slot (i, file, d))
+diff -rup binutils.orig/gas/testsuite/gas/elf/elf.exp binutils-2.35.2/gas/testsuite/gas/elf/elf.exp
+--- binutils.orig/gas/testsuite/gas/elf/elf.exp	2021-11-08 14:59:19.856524118 +0000
++++ binutils-2.35.2/gas/testsuite/gas/elf/elf.exp	2021-11-08 14:59:36.225418609 +0000
+@@ -274,6 +274,7 @@ if { [is_elf_format] } then {
+     run_dump_test "dwarf2-18" $dump_opts
+     run_dump_test "dwarf2-19" $dump_opts
+     run_dump_test "dwarf-5-file0" $dump_opts
++    run_dump_test "dwarf-5-file0-2" $dump_opts
+     run_dump_test "dwarf-5-dir0" $dump_opts
+     run_dump_test "dwarf-4-cu" $dump_opts
+     run_dump_test "dwarf-5-cu" $dump_opts
+
diff --git a/SOURCES/binutils-testsuite-failures.patch b/SOURCES/binutils-testsuite-failures.patch
index d457dcf..5df3730 100644
--- a/SOURCES/binutils-testsuite-failures.patch
+++ b/SOURCES/binutils-testsuite-failures.patch
@@ -1215,3 +1215,857 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tlsexe32.r binutils-2.35.1/ld/te
  		if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
  		    setup_xfail "sparc*-*-linux*"
  		}
+--- binutils.orig/gold/Makefile.am	2022-01-17 11:55:26.343529360 +0000
++++ binutils-2.35.2/gold/Makefile.am	2022-01-17 13:36:31.517854728 +0000
+@@ -256,136 +256,3 @@ po/POTFILES.in: @MAINT@ Makefile
+ # Bootstrap test support.  We use ld-new to build ld1, then use ld1 to
+ # build ld2.  ld1 and ld2 should be identical.  ld-new need not be
+ # identical to ld1, since it was linked with the host linker.
+-
+-if GCC
+-if NATIVE_LINKER
+-
+-gcctestdir1/ld gcctestdir1/collect-ld: ld-new
+-	test -d gcctestdir1 || mkdir -p gcctestdir1
+-	rm -f $@
+-	$(LN_S) $(abs_top_builddir)/ld-new $@
+-
+-ld1_SOURCES = $(sources_var)
+-ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
+-ld1_LDADD = $(ldadd_var)
+-editcc1 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'
+-ld1_LINK = `echo $(CXXLD) | sed $(editcc1)`\
+-	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) $(LDFLAGS) -o $@
+-
+-gcctestdir2/ld gcctestdir2/collect-ld: ld1
+-	test -d gcctestdir2 || mkdir -p gcctestdir2
+-	rm -f $@
+-	$(LN_S) $(abs_top_builddir)/ld1 $@
+-
+-ld2_SOURCES = $(sources_var)
+-ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld gcctestdir2/collect-ld
+-ld2_LDADD = $(ldadd_var)
+-editcc2 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2\/\2/'
+-ld2_LINK = `echo $(CXXLD) | sed $(editcc2)`\
+-	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) $(LDFLAGS) -o $@
+-
+-bootstrap-test: ld2
+-	rm -f $@
+-	echo "#!/bin/sh" > $@
+-	echo "cmp ld1 ld2" >> $@
+-	chmod +x $@
+-
+-libgold-1-r.o: gcctestdir1/ld libgold.a
+-	gcctestdir1/ld -o $@ -r --whole-archive libgold.a
+-
+-ld1_r_SOURCES = $(sources_var)
+-ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
+-ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
+-ld1_r_LINK = `echo $(CXXLD) | sed $(editcc1)`\
+-	$(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+-
+-gcctestdir2-r/ld gcctestdir2-r/collect-ld: ld1-r
+-	test -d gcctestdir2-r || mkdir -p gcctestdir2-r
+-	rm -f $@
+-	$(LN_S) $(abs_top_builddir)/ld1-r $@
+-
+-libgold-2-r.o: gcctestdir2-r/ld libgold.a
+-	gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
+-
+-ld2_r_SOURCES = $(sources_var)
+-ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld gcctestdir2-r/collect-ld
+-ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
+-editcc2r = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2-r\/\2/'
+-ld2_r_LINK = `echo $(CXXLD) | sed $(editcc2r)`\
+-	$(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+-
+-bootstrap-test-r: ld2-r
+-	rm -f $@
+-	echo "#!/bin/sh" > $@
+-	echo "cmp ld1-r ld2-r" >> $@
+-	chmod +x $@
+-
+-check_PROGRAMS = ld1 ld2 ld1-r ld2-r
+-TESTS = bootstrap-test bootstrap-test-r
+-MOSTLYCLEANFILES = bootstrap-test bootstrap-test-r
+-
+-# Verify that changing the number of threads doesn't change the
+-# treehash computation, by building ld1 and ld3 the same way except
+-# for the number of threads.  However, the build ID should change if
+-# we change the chunk size for --build-id=tree, so ld4 should be
+-# different.  We run the latter test even if multithreading is unavailable,
+-# because the treehash can still operate in that mode.
+-check_PROGRAMS += ld4
+-TESTS += bootstrap-test-treehash-chunksize
+-MOSTLYCLEANFILES += bootstrap-test-treehash-chunksize
+-
+-gcctestdir3/ld gcctestdir3/collect-ld: ld-new
+-	test -d gcctestdir3 || mkdir -p gcctestdir3
+-	rm -f $@
+-	$(LN_S) $(abs_top_builddir)/ld-new $@
+-
+-ld3_SOURCES = $(sources_var)
+-ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld gcctestdir3/collect-ld
+-ld3_LDADD = $(ldadd_var)
+-editcc3 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir3\/\2/'
+-ld3_LINK = `echo $(CXXLD) | sed $(editcc3)`\
+-	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld3_LDFLAGS) $(LDFLAGS) -o $@
+-
+-gcctestdir4/ld gcctestdir4/collect-ld: ld-new
+-	test -d gcctestdir4 || mkdir -p gcctestdir4
+-	rm -f $@
+-	$(LN_S) $(abs_top_builddir)/ld-new $@
+-
+-ld4_SOURCES = $(sources_var)
+-ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld gcctestdir4/collect-ld
+-ld4_LDADD = $(ldadd_var)
+-editcc4 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir4\/\2/'
+-ld4_LINK = `echo $(CXXLD) | sed $(editcc4)`\
+-	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld4_LDFLAGS) $(LDFLAGS) -o $@
+-
+-ld1_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+-ld2_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+-ld3_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+-ld4_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12346 -Wl,--build-id-min-file-size-for-treehash=0
+-
+-if THREADS
+-
+-ld1_LDFLAGS += -Wl,--thread-count=3
+-ld2_LDFLAGS += -Wl,--thread-count=3
+-ld3_LDFLAGS += -Wl,--thread-count=13
+-ld4_LDFLAGS += -Wl,--thread-count=3
+-check_PROGRAMS += ld3
+-TESTS += bootstrap-test-treehash-chunksize
+-MOSTLYCLEANFILES += bootstrap-test-treehash-chunksize
+-
+-bootstrap-test-treehash: ld1 ld3
+-	rm -f $@
+-	echo "#!/bin/sh" > $@
+-	echo "cmp ld1 ld3" >> $@
+-	chmod +x $@
+-
+-endif
+-
+-bootstrap-test-treehash-chunksize: ld1 ld4
+-	rm -f $@
+-	echo "#!/bin/sh" > $@
+-	echo "cmp ld1 ld4 | grep ." >> $@
+-	chmod +x $@
+-
+-endif
+-endif
+--- binutils.orig/gold/Makefile.in	2022-01-17 11:55:26.339529386 +0000
++++ binutils-2.35.2/gold/Makefile.in	2022-01-17 13:38:37.337029726 +0000
+@@ -110,17 +110,6 @@ host_triplet = @host@
+ target_triplet = @target@
+ bin_PROGRAMS = dwp$(EXEEXT)
+ noinst_PROGRAMS = ld-new$(EXEEXT) incremental-dump$(EXEEXT)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@check_PROGRAMS = ld1$(EXEEXT) \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ld2$(EXEEXT) ld1-r$(EXEEXT) \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ld2-r$(EXEEXT) ld4$(EXEEXT) \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__EXEEXT_1)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_1 = -Wl,--thread-count=3
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_2 = -Wl,--thread-count=3
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_3 = -Wl,--thread-count=13
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_4 = -Wl,--thread-count=3
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_5 = ld3
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_6 = bootstrap-test-treehash-chunksize
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__append_7 = bootstrap-test-treehash-chunksize
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/ax_pthread.m4 \
+@@ -177,8 +166,6 @@ am_libgold_a_OBJECTS = $(am__objects_1)
+ 	$(am__objects_3) $(am__objects_2)
+ libgold_a_OBJECTS = $(am_libgold_a_OBJECTS)
+ am__installdirs = "$(DESTDIR)$(bindir)"
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@am__EXEEXT_1 =  \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@	ld3$(EXEEXT)
+ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+ am_dwp_OBJECTS = dwp.$(OBJEXT)
+ dwp_OBJECTS = $(am_dwp_OBJECTS)
+@@ -196,18 +183,6 @@ am__DEPENDENCIES_2 = $(am__DEPENDENCIES_
+ 	$(am__DEPENDENCIES_1)
+ ld_new_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld_new_LDFLAGS) \
+ 	$(LDFLAGS) -o $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld1_OBJECTS = $(am__objects_4)
+-ld1_OBJECTS = $(am_ld1_OBJECTS)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld1_r_OBJECTS = $(am__objects_4)
+-ld1_r_OBJECTS = $(am_ld1_r_OBJECTS)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld2_OBJECTS = $(am__objects_4)
+-ld2_OBJECTS = $(am_ld2_OBJECTS)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld2_r_OBJECTS = $(am__objects_4)
+-ld2_r_OBJECTS = $(am_ld2_r_OBJECTS)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld3_OBJECTS = $(am__objects_4)
+-ld3_OBJECTS = $(am_ld3_OBJECTS)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld4_OBJECTS = $(am__objects_4)
+-ld4_OBJECTS = $(am_ld4_OBJECTS)
+ AM_V_P = $(am__v_P_@AM_V@)
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+ am__v_P_0 = false
+@@ -260,8 +235,7 @@ am__v_YACC_1 =
+ YLWRAP = $(top_srcdir)/../ylwrap
+ SOURCES = $(libgold_a_SOURCES) $(dwp_SOURCES) \
+ 	$(incremental_dump_SOURCES) $(ld_new_SOURCES) \
+-	$(EXTRA_ld_new_SOURCES) $(ld1_SOURCES) $(ld1_r_SOURCES) \
+-	$(ld2_SOURCES) $(ld2_r_SOURCES) $(ld3_SOURCES) $(ld4_SOURCES)
++	$(EXTRA_ld_new_SOURCES)
+ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ 	ctags-recursive dvi-recursive html-recursive info-recursive \
+ 	install-data-recursive install-dvi-recursive \
+@@ -282,7 +256,7 @@ am__recursive_targets = \
+   $(RECURSIVE_CLEAN_TARGETS) \
+   $(am__extra_recursive_targets)
+ AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+-	cscope check recheck
++	cscope
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+ 	$(LISP)config.in
+ # Read a list of newline-separated strings from the standard input,
+@@ -304,209 +278,6 @@ am__define_uniq_tagged_files = \
+ ETAGS = etags
+ CTAGS = ctags
+ CSCOPE = cscope
+-am__tty_colors_dummy = \
+-  mgn= red= grn= lgn= blu= brg= std=; \
+-  am__color_tests=no
+-am__tty_colors = { \
+-  $(am__tty_colors_dummy); \
+-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+-    am__color_tests=no; \
+-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+-    am__color_tests=yes; \
+-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+-    am__color_tests=yes; \
+-  fi; \
+-  if test $$am__color_tests = yes; then \
+-    red=''; \
+-    grn=''; \
+-    lgn=''; \
+-    blu=''; \
+-    mgn=''; \
+-    brg=''; \
+-    std=''; \
+-  fi; \
+-}
+-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+-am__vpath_adj = case $$p in \
+-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+-    *) f=$$p;; \
+-  esac;
+-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+-am__install_max = 40
+-am__nobase_strip_setup = \
+-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+-am__nobase_strip = \
+-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+-am__nobase_list = $(am__nobase_strip_setup); \
+-  for p in $$list; do echo "$$p $$p"; done | \
+-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+-    if (++n[$$2] == $(am__install_max)) \
+-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+-    END { for (dir in files) print dir, files[dir] }'
+-am__base_list = \
+-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+-am__uninstall_files_from_dir = { \
+-  test -z "$$files" \
+-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+-         $(am__cd) "$$dir" && rm -f $$files; }; \
+-  }
+-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+-# A command that, given a newline-separated list of test names on the
+-# standard input, print the name of the tests that are to be re-run
+-# upon "make recheck".
+-am__list_recheck_tests = $(AWK) '{ \
+-  recheck = 1; \
+-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+-    { \
+-      if (rc < 0) \
+-        { \
+-          if ((getline line2 < ($$0 ".log")) < 0) \
+-	    recheck = 0; \
+-          break; \
+-        } \
+-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+-        { \
+-          recheck = 0; \
+-          break; \
+-        } \
+-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+-        { \
+-          break; \
+-        } \
+-    }; \
+-  if (recheck) \
+-    print $$0; \
+-  close ($$0 ".trs"); \
+-  close ($$0 ".log"); \
+-}'
+-# A command that, given a newline-separated list of test names on the
+-# standard input, create the global log from their .trs and .log files.
+-am__create_global_log = $(AWK) ' \
+-function fatal(msg) \
+-{ \
+-  print "fatal: making $@: " msg | "cat >&2"; \
+-  exit 1; \
+-} \
+-function rst_section(header) \
+-{ \
+-  print header; \
+-  len = length(header); \
+-  for (i = 1; i <= len; i = i + 1) \
+-    printf "="; \
+-  printf "\n\n"; \
+-} \
+-{ \
+-  copy_in_global_log = 1; \
+-  global_test_result = "RUN"; \
+-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+-    { \
+-      if (rc < 0) \
+-         fatal("failed to read from " $$0 ".trs"); \
+-      if (line ~ /$(am__global_test_result_rx)/) \
+-        { \
+-          sub("$(am__global_test_result_rx)", "", line); \
+-          sub("[ 	]*$$", "", line); \
+-          global_test_result = line; \
+-        } \
+-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+-        copy_in_global_log = 0; \
+-    }; \
+-  if (copy_in_global_log) \
+-    { \
+-      rst_section(global_test_result ": " $$0); \
+-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+-      { \
+-        if (rc < 0) \
+-          fatal("failed to read from " $$0 ".log"); \
+-        print line; \
+-      }; \
+-      printf "\n"; \
+-    }; \
+-  close ($$0 ".trs"); \
+-  close ($$0 ".log"); \
+-}'
+-# Restructured Text title.
+-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+-# Solaris 10 'make', and several other traditional 'make' implementations,
+-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+-# by disabling -e (using the XSI extension "set +e") if it's set.
+-am__sh_e_setup = case $$- in *e*) set +e;; esac
+-# Default flags passed to test drivers.
+-am__common_driver_flags = \
+-  --color-tests "$$am__color_tests" \
+-  --enable-hard-errors "$$am__enable_hard_errors" \
+-  --expect-failure "$$am__expect_failure"
+-# To be inserted before the command running the test.  Creates the
+-# directory for the log if needed.  Stores in $dir the directory
+-# containing $f, in $tst the test, in $log the log.  Executes the
+-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+-# will run the test scripts (or their associated LOG_COMPILER, if
+-# thy have one).
+-am__check_pre = \
+-$(am__sh_e_setup);					\
+-$(am__vpath_adj_setup) $(am__vpath_adj)			\
+-$(am__tty_colors);					\
+-srcdir=$(srcdir); export srcdir;			\
+-case "$@" in						\
+-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+-    *) am__odir=.;; 					\
+-esac;							\
+-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+-if test -f "./$$f"; then dir=./;			\
+-elif test -f "$$f"; then dir=;				\
+-else dir="$(srcdir)/"; fi;				\
+-tst=$$dir$$f; log='$@'; 				\
+-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+-  am__enable_hard_errors=no; 				\
+-else							\
+-  am__enable_hard_errors=yes; 				\
+-fi; 							\
+-case " $(XFAIL_TESTS) " in				\
+-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+-    am__expect_failure=yes;;				\
+-  *)							\
+-    am__expect_failure=no;;				\
+-esac; 							\
+-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+-# A shell command to get the names of the tests scripts with any registered
+-# extension removed (i.e., equivalently, the names of the test logs, with
+-# the '.log' extension removed).  The result is saved in the shell variable
+-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+-# since that might cause problem with VPATH rewrites for suffix-less tests.
+-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+-am__set_TESTS_bases = \
+-  bases='$(TEST_LOGS)'; \
+-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+-  bases=`echo $$bases`
+-RECHECK_LOGS = $(TEST_LOGS)
+-TEST_SUITE_LOG = test-suite.log
+-TEST_EXTENSIONS = @EXEEXT@ .test
+-LOG_DRIVER = $(SHELL) $(top_srcdir)/../test-driver
+-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+-am__set_b = \
+-  case '$@' in \
+-    */*) \
+-      case '$*' in \
+-        */*) b='$*';; \
+-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+-       esac;; \
+-    *) \
+-      b='$*';; \
+-  esac
+-am__test_logs1 = $(TESTS:=.log)
+-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+-TEST_LOGS = $(am__test_logs2:.test.log=.log)
+-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../test-driver
+-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+-	$(TEST_LOG_FLAGS)
+ DIST_SUBDIRS = $(SUBDIRS)
+ ACLOCAL = @ACLOCAL@
+ AMTAR = @AMTAR@
+@@ -641,6 +412,7 @@ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
++runstatedir = @runstatedir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+@@ -828,75 +600,11 @@ dwp_LDADD = libgold.a $(LIBIBERTY) $(GOL
+ dwp_LDFLAGS = $(GOLD_LDFLAGS)
+ CONFIG_STATUS_DEPENDENCIES = $(srcdir)/../bfd/development.sh
+ POTFILES = $(CCFILES) $(HFILES) $(TARGETSOURCES)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_SOURCES = $(sources_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_LDADD = $(ldadd_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@editcc1 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_LINK = `echo $(CXXLD) | sed $(editcc1)`\
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) $(LDFLAGS) -o $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_SOURCES = $(sources_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld gcctestdir2/collect-ld
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_LDADD = $(ldadd_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@editcc2 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2\/\2/'
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_LINK = `echo $(CXXLD) | sed $(editcc2)`\
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) $(LDFLAGS) -o $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_SOURCES = $(sources_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_LINK = `echo $(CXXLD) | sed $(editcc1)`\
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_SOURCES = $(sources_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld gcctestdir2-r/collect-ld
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@editcc2r = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2-r\/\2/'
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_LINK = `echo $(CXXLD) | sed $(editcc2r)`\
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@TESTS = bootstrap-test bootstrap-test-r \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	bootstrap-test-treehash-chunksize \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__append_6)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@MOSTLYCLEANFILES = bootstrap-test \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	bootstrap-test-r \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	bootstrap-test-treehash-chunksize \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__append_7)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld3_SOURCES = $(sources_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld gcctestdir3/collect-ld
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld3_LDADD = $(ldadd_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@editcc3 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir3\/\2/'
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld3_LINK = `echo $(CXXLD) | sed $(editcc3)`\
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld3_LDFLAGS) $(LDFLAGS) -o $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld4_SOURCES = $(sources_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld gcctestdir4/collect-ld
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld4_LDADD = $(ldadd_var)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@editcc4 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir4\/\2/'
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld4_LINK = `echo $(CXXLD) | sed $(editcc4)`\
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(AM_CXXFLAGS) $(CXXFLAGS) $(ld4_LDFLAGS) $(LDFLAGS) -o $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_LDFLAGS = -Wl,--build-id=tree \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-chunk-size-for-treehash=12345 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-min-file-size-for-treehash=0 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__append_1)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_LDFLAGS = -Wl,--build-id=tree \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-chunk-size-for-treehash=12345 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-min-file-size-for-treehash=0 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__append_2)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld3_LDFLAGS = -Wl,--build-id=tree \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-chunk-size-for-treehash=12345 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-min-file-size-for-treehash=0 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__append_3)
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld4_LDFLAGS = -Wl,--build-id=tree \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-chunk-size-for-treehash=12346 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--build-id-min-file-size-for-treehash=0 \
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__append_4)
+ all: config.h
+ 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+ 
+ .SUFFIXES:
+-.SUFFIXES: .c .cc .log .o .obj .test .test$(EXEEXT) .trs .y
++.SUFFIXES: .c .cc .o .obj .y
+ am--refresh: Makefile
+ 	@:
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+@@ -1001,9 +709,6 @@ uninstall-binPROGRAMS:
+ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ 
+-clean-checkPROGRAMS:
+-	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+-
+ clean-noinstPROGRAMS:
+ 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+ 
+@@ -1019,30 +724,6 @@ ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_
+ 	@rm -f ld-new$(EXEEXT)
+ 	$(AM_V_CXXLD)$(ld_new_LINK) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS)
+ 
+-ld1$(EXEEXT): $(ld1_OBJECTS) $(ld1_DEPENDENCIES) $(EXTRA_ld1_DEPENDENCIES) 
+-	@rm -f ld1$(EXEEXT)
+-	$(AM_V_GEN)$(ld1_LINK) $(ld1_OBJECTS) $(ld1_LDADD) $(LIBS)
+-
+-ld1-r$(EXEEXT): $(ld1_r_OBJECTS) $(ld1_r_DEPENDENCIES) $(EXTRA_ld1_r_DEPENDENCIES) 
+-	@rm -f ld1-r$(EXEEXT)
+-	$(AM_V_GEN)$(ld1_r_LINK) $(ld1_r_OBJECTS) $(ld1_r_LDADD) $(LIBS)
+-
+-ld2$(EXEEXT): $(ld2_OBJECTS) $(ld2_DEPENDENCIES) $(EXTRA_ld2_DEPENDENCIES) 
+-	@rm -f ld2$(EXEEXT)
+-	$(AM_V_GEN)$(ld2_LINK) $(ld2_OBJECTS) $(ld2_LDADD) $(LIBS)
+-
+-ld2-r$(EXEEXT): $(ld2_r_OBJECTS) $(ld2_r_DEPENDENCIES) $(EXTRA_ld2_r_DEPENDENCIES) 
+-	@rm -f ld2-r$(EXEEXT)
+-	$(AM_V_GEN)$(ld2_r_LINK) $(ld2_r_OBJECTS) $(ld2_r_LDADD) $(LIBS)
+-
+-ld3$(EXEEXT): $(ld3_OBJECTS) $(ld3_DEPENDENCIES) $(EXTRA_ld3_DEPENDENCIES) 
+-	@rm -f ld3$(EXEEXT)
+-	$(AM_V_GEN)$(ld3_LINK) $(ld3_OBJECTS) $(ld3_LDADD) $(LIBS)
+-
+-ld4$(EXEEXT): $(ld4_OBJECTS) $(ld4_DEPENDENCIES) $(EXTRA_ld4_DEPENDENCIES) 
+-	@rm -f ld4$(EXEEXT)
+-	$(AM_V_GEN)$(ld4_LINK) $(ld4_OBJECTS) $(ld4_LDADD) $(LIBS)
+-
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+@@ -1251,186 +932,7 @@ cscopelist-am: $(am__tagged_files)
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+-
+-# Recover from deleted '.trs' file; this should ensure that
+-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+-# to avoid problems with "make -n".
+-.log.trs:
+-	rm -f $< $@
+-	$(MAKE) $(AM_MAKEFLAGS) $<
+-
+-# Leading 'am--fnord' is there to ensure the list of targets does not
+-# expand to empty, as could happen e.g. with make check TESTS=''.
+-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+-am--force-recheck:
+-	@:
+-
+-$(TEST_SUITE_LOG): $(TEST_LOGS)
+-	@$(am__set_TESTS_bases); \
+-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+-	redo_bases=`for i in $$bases; do \
+-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+-	            done`; \
+-	if test -n "$$redo_bases"; then \
+-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+-	  if $(am__make_dryrun); then :; else \
+-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+-	  fi; \
+-	fi; \
+-	if test -n "$$am__remaking_logs"; then \
+-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+-	       "recursion detected" >&2; \
+-	elif test -n "$$redo_logs"; then \
+-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+-	fi; \
+-	if $(am__make_dryrun); then :; else \
+-	  st=0;  \
+-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+-	  for i in $$redo_bases; do \
+-	    test -f $$i.trs && test -r $$i.trs \
+-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+-	    test -f $$i.log && test -r $$i.log \
+-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+-	  done; \
+-	  test $$st -eq 0 || exit 1; \
+-	fi
+-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+-	ws='[ 	]'; \
+-	results=`for b in $$bases; do echo $$b.trs; done`; \
+-	test -n "$$results" || results=/dev/null; \
+-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+-	  success=true; \
+-	else \
+-	  success=false; \
+-	fi; \
+-	br='==================='; br=$$br$$br$$br$$br; \
+-	result_count () \
+-	{ \
+-	    if test x"$$1" = x"--maybe-color"; then \
+-	      maybe_colorize=yes; \
+-	    elif test x"$$1" = x"--no-color"; then \
+-	      maybe_colorize=no; \
+-	    else \
+-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+-	    fi; \
+-	    shift; \
+-	    desc=$$1 count=$$2; \
+-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+-	      color_start=$$3 color_end=$$std; \
+-	    else \
+-	      color_start= color_end=; \
+-	    fi; \
+-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+-	}; \
+-	create_testsuite_report () \
+-	{ \
+-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+-	}; \
+-	{								\
+-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+-	    $(am__rst_title);						\
+-	  create_testsuite_report --no-color;				\
+-	  echo;								\
+-	  echo ".. contents:: :depth: 2";				\
+-	  echo;								\
+-	  for b in $$bases; do echo $$b; done				\
+-	    | $(am__create_global_log);					\
+-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+-	if $$success; then						\
+-	  col="$$grn";							\
+-	 else								\
+-	  col="$$red";							\
+-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+-	fi;								\
+-	echo "$${col}$$br$${std}"; 					\
+-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+-	echo "$${col}$$br$${std}"; 					\
+-	create_testsuite_report --maybe-color;				\
+-	echo "$$col$$br$$std";						\
+-	if $$success; then :; else					\
+-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+-	  fi;								\
+-	  echo "$$col$$br$$std";					\
+-	fi;								\
+-	$$success || exit 1
+-
+-check-TESTS:
+-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+-	@set +e; $(am__set_TESTS_bases); \
+-	log_list=`for i in $$bases; do echo $$i.log; done`; \
+-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+-	exit $$?;
+-recheck: all $(check_PROGRAMS)
+-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+-	@set +e; $(am__set_TESTS_bases); \
+-	bases=`for i in $$bases; do echo $$i; done \
+-	         | $(am__list_recheck_tests)` || exit 1; \
+-	log_list=`for i in $$bases; do echo $$i.log; done`; \
+-	log_list=`echo $$log_list`; \
+-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+-	        am__force_recheck=am--force-recheck \
+-	        TEST_LOGS="$$log_list"; \
+-	exit $$?
+-bootstrap-test.log: bootstrap-test
+-	@p='bootstrap-test'; \
+-	b='bootstrap-test'; \
+-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+-	--log-file $$b.log --trs-file $$b.trs \
+-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+-	"$$tst" $(AM_TESTS_FD_REDIRECT)
+-bootstrap-test-r.log: bootstrap-test-r
+-	@p='bootstrap-test-r'; \
+-	b='bootstrap-test-r'; \
+-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+-	--log-file $$b.log --trs-file $$b.trs \
+-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+-	"$$tst" $(AM_TESTS_FD_REDIRECT)
+-bootstrap-test-treehash-chunksize.log: bootstrap-test-treehash-chunksize
+-	@p='bootstrap-test-treehash-chunksize'; \
+-	b='bootstrap-test-treehash-chunksize'; \
+-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+-	--log-file $$b.log --trs-file $$b.trs \
+-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+-	"$$tst" $(AM_TESTS_FD_REDIRECT)
+-.test.log:
+-	@p='$<'; \
+-	$(am__set_b); \
+-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+-	--log-file $$b.log --trs-file $$b.trs \
+-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+-	"$$tst" $(AM_TESTS_FD_REDIRECT)
+-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+-@am__EXEEXT_TRUE@	@p='$<'; \
+-@am__EXEEXT_TRUE@	$(am__set_b); \
+-@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+-@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+-@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+-@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ check-am: all-am
+-	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+ check: check-recursive
+ all-am: Makefile $(LIBRARIES) $(PROGRAMS) config.h
+ installdirs: installdirs-recursive
+@@ -1458,10 +960,6 @@ install-strip:
+ 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ 	fi
+ mostlyclean-generic:
+-	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ 
+ clean-generic:
+ 
+@@ -1476,8 +974,8 @@ maintainer-clean-generic:
+ 	-rm -f yyscript.h
+ clean: clean-recursive
+ 
+-clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+-	clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am
++clean-am: clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
++	clean-noinstPROGRAMS mostlyclean-am
+ 
+ distclean: distclean-recursive
+ 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+@@ -1547,24 +1045,24 @@ ps-am:
+ 
+ uninstall-am: uninstall-binPROGRAMS
+ 
+-.MAKE: $(am__recursive_targets) all check-am install-am install-strip
++.MAKE: $(am__recursive_targets) all install-am install-strip
+ 
+ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+-	am--refresh check check-TESTS check-am clean clean-binPROGRAMS \
+-	clean-checkPROGRAMS clean-cscope clean-generic \
+-	clean-noinstLIBRARIES clean-noinstPROGRAMS cscope \
+-	cscopelist-am ctags ctags-am distclean distclean-compile \
+-	distclean-generic distclean-hdr distclean-tags dvi dvi-am html \
+-	html-am info info-am install install-am install-binPROGRAMS \
+-	install-data install-data-am install-data-local install-dvi \
+-	install-dvi-am install-exec install-exec-am install-exec-local \
+-	install-html install-html-am install-info install-info-am \
+-	install-man install-pdf install-pdf-am install-ps \
+-	install-ps-am install-strip installcheck installcheck-am \
+-	installdirs installdirs-am maintainer-clean \
+-	maintainer-clean-generic mostlyclean mostlyclean-compile \
+-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
+-	uninstall uninstall-am uninstall-binPROGRAMS
++	am--refresh check check-am clean clean-binPROGRAMS \
++	clean-cscope clean-generic clean-noinstLIBRARIES \
++	clean-noinstPROGRAMS cscope cscopelist-am ctags ctags-am \
++	distclean distclean-compile distclean-generic distclean-hdr \
++	distclean-tags dvi dvi-am html html-am info info-am install \
++	install-am install-binPROGRAMS install-data install-data-am \
++	install-data-local install-dvi install-dvi-am install-exec \
++	install-exec-am install-exec-local install-html \
++	install-html-am install-info install-info-am install-man \
++	install-pdf install-pdf-am install-ps install-ps-am \
++	install-strip installcheck installcheck-am installdirs \
++	installdirs-am maintainer-clean maintainer-clean-generic \
++	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
++	ps ps-am tags tags-am uninstall uninstall-am \
++	uninstall-binPROGRAMS
+ 
+ .PRECIOUS: Makefile
+ 
+@@ -1615,61 +1113,6 @@ po/POTFILES.in: @MAINT@ Makefile
+ # build ld2.  ld1 and ld2 should be identical.  ld-new need not be
+ # identical to ld1, since it was linked with the host linker.
+ 
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir1/ld gcctestdir1/collect-ld: ld-new
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir1 || mkdir -p gcctestdir1
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LN_S) $(abs_top_builddir)/ld-new $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir2/ld gcctestdir2/collect-ld: ld1
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir2 || mkdir -p gcctestdir2
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LN_S) $(abs_top_builddir)/ld1 $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test: ld2
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "cmp ld1 ld2" >> $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod +x $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@libgold-1-r.o: gcctestdir1/ld libgold.a
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir1/ld -o $@ -r --whole-archive libgold.a
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir2-r/ld gcctestdir2-r/collect-ld: ld1-r
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir2-r || mkdir -p gcctestdir2-r
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LN_S) $(abs_top_builddir)/ld1-r $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@libgold-2-r.o: gcctestdir2-r/ld libgold.a
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test-r: ld2-r
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "cmp ld1-r ld2-r" >> $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod +x $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir3/ld gcctestdir3/collect-ld: ld-new
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir3 || mkdir -p gcctestdir3
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LN_S) $(abs_top_builddir)/ld-new $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir4/ld gcctestdir4/collect-ld: ld-new
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir4 || mkdir -p gcctestdir4
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LN_S) $(abs_top_builddir)/ld-new $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@bootstrap-test-treehash: ld1 ld3
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@	echo "#!/bin/sh" > $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@	echo "cmp ld1 ld3" >> $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@@THREADS_TRUE@	chmod +x $@
+-
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test-treehash-chunksize: ld1 ld4
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "cmp ld1 ld4 | grep ." >> $@
+-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod +x $@
+-
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff --git a/SPECS/binutils.spec b/SPECS/binutils.spec
index b2fea91..48b3dae 100644
--- a/SPECS/binutils.spec
+++ b/SPECS/binutils.spec
@@ -39,7 +39,7 @@
 Summary: A GNU collection of binary utilities
 Name: binutils%{?name_cross}%{?_with_debug:-debug}
 Version: 2.35.2
-Release: 14%{?dist}
+Release: 17%{?dist}
 License: GPLv3+
 URL: https://sourceware.org/binutils
 
@@ -398,6 +398,10 @@ Patch50: binutils-AArch64-EFI.patch
 # Lifetime: Fixed in 2.37
 Patch51: binutils-x86-AMX-insns.patch
 
+# Purpose:  Fix ccache test failure introduced with 2.37
+# Lifetime: Fixed in 2.38.
+Patch52: binutils-gas-Use-the-directory-name-in-.file-0.patch
+
 #----------------------------------------------------------------------------
 
 Provides: bundled(libiberty)
@@ -945,8 +949,8 @@ exit 0
 %license COPYING COPYING3 COPYING3.LIB COPYING.LIB
 %doc README
 %{_bindir}/%{?cross}[!l]*
-# %%verify(symlink) does not work for some reason, so using "owner" instead.
-%verify(owner) %{_bindir}/%{?cross}ld
+# Strictly speaking ld is a symlink not a ghost file, but %%verify does not support symlinks
+%ghost %{_bindir}/%{?cross}ld
 %{_bindir}/%{?cross}ld.bfd
 
 %if %{with docs}
@@ -986,6 +990,15 @@ exit 0
 
 #----------------------------------------------------------------------------
 %changelog
+* Mon Jan 24 2022 Nick Clifton  <nickc@redhat.com> - 2.35.2-17
+- Add upstream patch to use the directory name in .file 0, fixes ccache FTBFS (#2043970)
+
+* Fri Jan 21 2022 Nick Clifton  <nickc@redhat.com> - 2.35.2-16
+- Fix the handling of the /usr/bin/ld file.  (#2042447)
+
+* Tue Jan 18 2022 Nick Clifton  <nickc@redhat.com> - 2.35.2-15
+- Fix testsuite failures.  (#2039325)
+
 * Tue Dec 14 2021 Nick Clifton  <nickc@redhat.com> - 2.35.2-14
 - Add support for an Intel AMX instructions.  (#2030554)