diff --git a/CVE-2021-3487.patch b/CVE-2021-3487.patch deleted file mode 100644 index dee4fce94fbe0f822d537c5d2f0718f4b9550552..0000000000000000000000000000000000000000 --- a/CVE-2021-3487.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff -rupN --no-dereference binutils-2.34/bfd/dwarf2.c binutils-2.34-new/bfd/dwarf2.c ---- binutils-2.34/bfd/dwarf2.c 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/bfd/dwarf2.c 2021-04-12 11:40:29.676218279 +0200 -@@ -523,22 +523,24 @@ read_section (bfd * abfd, - bfd_byte ** section_buffer, - bfd_size_type * section_size) - { -- asection *msec; - const char *section_name = sec->uncompressed_name; - bfd_byte *contents = *section_buffer; -- bfd_size_type amt; - - /* The section may have already been read. */ - if (contents == NULL) - { -+ bfd_size_type amt; -+ asection *msec; -+ ufile_ptr filesize; -+ - msec = bfd_get_section_by_name (abfd, section_name); -- if (! msec) -+ if (msec == NULL) - { - section_name = sec->compressed_name; - if (section_name != NULL) - msec = bfd_get_section_by_name (abfd, section_name); - } -- if (! msec) -+ if (msec == NULL) - { - _bfd_error_handler (_("DWARF error: can't find %s section."), - sec->uncompressed_name); -@@ -546,12 +548,23 @@ read_section (bfd * abfd, - return FALSE; - } - -- *section_size = msec->rawsize ? msec->rawsize : msec->size; -+ amt = bfd_get_section_limit_octets (abfd, msec); -+ filesize = bfd_get_file_size (abfd); -+ if (amt >= filesize) -+ { -+ /* PR 26946 */ -+ _bfd_error_handler (_("DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)"), -+ section_name, (long) amt, (long) filesize); -+ bfd_set_error (bfd_error_bad_value); -+ return FALSE; -+ } -+ *section_size = amt; - /* Paranoia - alloc one extra so that we can make sure a string - section is NUL terminated. */ -- amt = *section_size + 1; -+ amt += 1; - if (amt == 0) - { -+ /* Paranoia - this should never happen. */ - bfd_set_error (bfd_error_no_memory); - return FALSE; - } diff --git a/binutils-2.27-aarch64-ifunc.patch b/binutils-2.27-aarch64-ifunc.patch new file mode 100644 index 0000000000000000000000000000000000000000..17eb80d6df4be8ab7cb143ab557e0f795602ef0c --- /dev/null +++ b/binutils-2.27-aarch64-ifunc.patch @@ -0,0 +1,11 @@ +diff -rupN --no-dereference binutils-2.37/bfd/elfnn-aarch64.c binutils-2.37-new/bfd/elfnn-aarch64.c +--- binutils-2.37/bfd/elfnn-aarch64.c 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/elfnn-aarch64.c 2021-07-24 21:59:12.398868364 +0200 +@@ -5473,6 +5473,7 @@ elfNN_aarch64_final_link_relocate (reloc + it here if it is defined in a non-shared object. */ + if (h != NULL + && h->type == STT_GNU_IFUNC ++ && (input_section->flags & SEC_ALLOC) + && h->def_regular) + { + asection *plt; diff --git a/binutils-2.34.tar.bz2 b/binutils-2.37.tar.xz similarity index 59% rename from binutils-2.34.tar.bz2 rename to binutils-2.37.tar.xz index 3c632a92d82158ae52b12431b08eee4bd09dc385..03742902dfa1664eed5be3d51eadac9b950002ad 100644 Binary files a/binutils-2.34.tar.bz2 and b/binutils-2.37.tar.xz differ diff --git a/binutils-CVE-2019-1010204.patch b/binutils-CVE-2019-1010204.patch index 1843bb1dc43c6097fea3cf3fdfb81c6f44505527..e3a7c80ba75fb17b1fbe180dc7ffe5a745a31044 100644 --- a/binutils-CVE-2019-1010204.patch +++ b/binutils-CVE-2019-1010204.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference binutils-2.34/gold/fileread.cc binutils-2.34-new/gold/fileread.cc ---- binutils-2.34/gold/fileread.cc 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/gold/fileread.cc 2020-12-18 02:57:23.485023881 +0100 -@@ -381,6 +381,12 @@ File_read::do_read(off_t start, section_ +diff -rupN --no-dereference binutils-2.37/gold/fileread.cc binutils-2.37-new/gold/fileread.cc +--- binutils-2.37/gold/fileread.cc 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/gold/fileread.cc 2021-07-24 21:59:22.937765719 +0200 +@@ -385,6 +385,12 @@ File_read::do_read(off_t start, section_ ssize_t bytes; if (this->whole_file_view_ != NULL) { diff --git a/binutils-config.patch b/binutils-config.patch deleted file mode 100644 index 1d7651dbb36ef4c3b1268177f7fbb1baa5dcccb9..0000000000000000000000000000000000000000 --- a/binutils-config.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -rupN --no-dereference binutils-2.34/config/intdiv0.m4 binutils-2.34-new/config/intdiv0.m4 ---- binutils-2.34/config/intdiv0.m4 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/config/intdiv0.m4 2020-12-18 02:57:26.339013830 +0100 -@@ -31,10 +31,10 @@ sigfpe_handler (sig) int sig; - exit (sig != SIGFPE); - } - --int x = 1; --int y = 0; --int z; --int nan; -+volatile int x = 1; -+volatile int y = 0; -+volatile int z; -+volatile int nan; - - int main () - { -diff -rupN --no-dereference binutils-2.34/libiberty/aclocal.m4 binutils-2.34-new/libiberty/aclocal.m4 ---- binutils-2.34/libiberty/aclocal.m4 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/libiberty/aclocal.m4 2020-12-18 02:57:26.339013830 +0100 -@@ -147,7 +147,7 @@ if test $ac_cv_os_cray = yes; then - fi - - AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, --[AC_TRY_RUN([find_stack_direction () -+[AC_TRY_RUN([__attribute__ ((noclone,noinline)) find_stack_direction () - { - static char *addr = 0; - auto char dummy; -diff -rupN --no-dereference binutils-2.34/libiberty/configure.ac binutils-2.34-new/libiberty/configure.ac ---- binutils-2.34/libiberty/configure.ac 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/libiberty/configure.ac 2020-12-18 02:57:26.339013830 +0100 -@@ -661,7 +661,7 @@ if test -z "${setobjs}"; then - for v in $vars; do - AC_MSG_CHECKING([for $v]) - AC_CACHE_VAL(libiberty_cv_var_$v, -- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v []; p = $v;]])], -+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[__attribute__ ((used)) int *p;]],[[extern int $v []; p = $v;]])], - [eval "libiberty_cv_var_$v=yes"], - [eval "libiberty_cv_var_$v=no"])]) - if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then diff --git a/binutils-do-not-link-with-static-libstdc++.patch b/binutils-do-not-link-with-static-libstdc++.patch index b910b1a785f5b646e4f2126bc347635942212beb..354992a5684b7aa9b3c14588e66a73ed0e9aef68 100644 --- a/binutils-do-not-link-with-static-libstdc++.patch +++ b/binutils-do-not-link-with-static-libstdc++.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference binutils-2.34/configure binutils-2.34-new/configure ---- binutils-2.34/configure 2020-01-18 15:01:13.000000000 +0100 -+++ binutils-2.34-new/configure 2020-12-18 02:57:17.364045443 +0100 -@@ -5103,49 +5103,6 @@ if test -z "$LD"; then +diff -rupN --no-dereference binutils-2.37/configure binutils-2.37-new/configure +--- binutils-2.37/configure 2021-07-18 18:36:27.000000000 +0200 ++++ binutils-2.37-new/configure 2021-07-24 21:59:14.582847093 +0200 +@@ -5257,49 +5257,6 @@ if test -z "$LD"; then fi fi @@ -51,10 +51,10 @@ diff -rupN --no-dereference binutils-2.34/configure binutils-2.34-new/configure if test -n "$ac_tool_prefix"; then -diff -rupN --no-dereference binutils-2.34/configure.ac binutils-2.34-new/configure.ac ---- binutils-2.34/configure.ac 2020-02-01 13:02:56.000000000 +0100 -+++ binutils-2.34-new/configure.ac 2020-12-18 02:57:17.364045443 +0100 -@@ -1284,26 +1284,6 @@ if test -z "$LD"; then +diff -rupN --no-dereference binutils-2.37/configure.ac binutils-2.37-new/configure.ac +--- binutils-2.37/configure.ac 2021-07-18 18:48:58.000000000 +0200 ++++ binutils-2.37-new/configure.ac 2021-07-24 21:59:14.583847083 +0200 +@@ -1300,26 +1300,6 @@ if test -z "$LD"; then fi fi diff --git a/binutils-export-demangle.h.patch b/binutils-export-demangle.h.patch index ed87e96b4710c0ce3e8a554f41108e358816b101..ee635cbd9e53112394d01c2039e874b5908150f9 100644 --- a/binutils-export-demangle.h.patch +++ b/binutils-export-demangle.h.patch @@ -1,33 +1,33 @@ -diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/Makefile.am ---- binutils-2.34/bfd/Makefile.am 2020-12-18 02:57:13.290059799 +0100 -+++ binutils-2.34-new/bfd/Makefile.am 2020-12-18 02:57:13.293059789 +0100 +diff -rupN --no-dereference binutils-2.37/bfd/Makefile.am binutils-2.37-new/bfd/Makefile.am +--- binutils-2.37/bfd/Makefile.am 2021-07-24 21:59:01.980969825 +0200 ++++ binutils-2.37-new/bfd/Makefile.am 2021-07-24 21:59:01.986969767 +0200 @@ -33,7 +33,7 @@ bfdlibdir = @bfdlibdir@ bfdincludedir = @bfdincludedir@ bfdlib_LTLIBRARIES = libbfd.la bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ -- bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h -+ bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h +- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h ++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h else !INSTALL_LIBBFD # Empty these so that the respective installation directories will not be created. bfdlibdir = -diff -rupN --no-dereference binutils-2.34/bfd/Makefile.in binutils-2.34-new/bfd/Makefile.in ---- binutils-2.34/bfd/Makefile.in 2020-12-18 02:57:13.290059799 +0100 -+++ binutils-2.34-new/bfd/Makefile.in 2020-12-18 02:57:13.294059785 +0100 +diff -rupN --no-dereference binutils-2.37/bfd/Makefile.in binutils-2.37-new/bfd/Makefile.in +--- binutils-2.37/bfd/Makefile.in 2021-07-24 21:59:01.980969825 +0200 ++++ binutils-2.37-new/bfd/Makefile.in 2021-07-24 21:59:01.987969757 +0200 @@ -249,7 +249,7 @@ am__can_run_installinfo = \ esac am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \ - $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bfd_stdint.h \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ - $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h + $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h HEADERS = $(bfdinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -@@ -468,7 +468,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel +@@ -469,7 +469,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ --@INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h \ -+@INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \ +-@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h \ ++@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2) @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@ @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la diff --git a/binutils-2.29-filename-in-error-messages.patch b/binutils-filename-in-error-messages.patch similarity index 53% rename from binutils-2.29-filename-in-error-messages.patch rename to binutils-filename-in-error-messages.patch index 011108d7d183ca77a37bc3c8e5510eea3f0d330c..a06480b459fb844d1337fb8e2ef4c58213039c87 100644 --- a/binutils-2.29-filename-in-error-messages.patch +++ b/binutils-filename-in-error-messages.patch @@ -1,12 +1,10 @@ -diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/binutils/readelf.c ---- binutils-2.34/binutils/readelf.c 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/binutils/readelf.c 2020-12-18 02:57:15.341052571 +0100 -@@ -20350,75 +20350,85 @@ process_file (char * file_name) - Filedata * filedata = NULL; +diff -rupN --no-dereference binutils-2.37/binutils/readelf.c binutils-2.37-new/binutils/readelf.c +--- binutils-2.37/binutils/readelf.c 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/binutils/readelf.c 2021-07-24 21:59:05.781932809 +0200 +@@ -21873,45 +21873,52 @@ process_file (char * file_name) struct stat statbuf; char armag[SARMAG]; -- bfd_boolean ret = TRUE; -+ bfd_boolean ret = FALSE; + bool ret = true; + char * name; + char * saved_program_name; + @@ -26,7 +24,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b else - error (_("Could not locate '%s'. System error message: %s\n"), - file_name, strerror (errno)); -- return FALSE; +- return false; + error (_("Could not locate file. System error message: %s\n"), + strerror (errno)); + goto done; @@ -35,7 +33,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b if (! S_ISREG (statbuf.st_mode)) { - error (_("'%s' is not an ordinary file\n"), file_name); -- return FALSE; +- return false; + error (_("Not an ordinary file\n")); + goto done; } @@ -44,7 +42,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b if (filedata == NULL) { error (_("Out of memory allocating file data structure\n")); -- return FALSE; +- return false; + goto done; } @@ -54,7 +52,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b { - error (_("Input file '%s' is not readable.\n"), file_name); - free (filedata); -- return FALSE; +- return false; + error (_("Not readable\n")); + goto done; } @@ -64,62 +62,63 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b - error (_("%s: Failed to read file's magic number\n"), file_name); - fclose (filedata->handle); - free (filedata); -- return FALSE; -- } -- -- filedata->file_size = (bfd_size_type) statbuf.st_size; -- -- if (memcmp (armag, ARMAG, SARMAG) == 0) -- { -- if (! process_archive (filedata, FALSE)) -- ret = FALSE; -- } -- else if (memcmp (armag, ARMAGT, SARMAG) == 0) -- { -- if ( ! process_archive (filedata, TRUE)) -- ret = FALSE; +- return false; + error (_("Failed to read file's magic number\n")); ++ goto done; + } + + filedata->file_size = (bfd_size_type) statbuf.st_size; +@@ -21919,33 +21926,39 @@ process_file (char * file_name) + + if (memcmp (armag, ARMAG, SARMAG) == 0) + { +- if (! process_archive (filedata, false)) +- ret = false; ++ if (process_archive (filedata, false)) ++ ret = true; + } + else if (memcmp (armag, ARMAGT, SARMAG) == 0) + { +- if ( ! process_archive (filedata, true)) +- ret = false; ++ if (process_archive (filedata, true)) ++ ret = true; } else { -- if (do_archive_index) + if (do_archive_index && !check_all) - error (_("File %s is not an archive so its index cannot be displayed.\n"), - file_name); -+ filedata->file_size = (bfd_size_type) statbuf.st_size; ++ error (_("Not an archive so its index cannot be displayed.\n")); + + rewind (filedata->handle); + filedata->archive_file_size = filedata->archive_file_offset = 0; -- rewind (filedata->handle); -- archive_file_size = archive_file_offset = 0; -- - if (! process_object (filedata)) -- ret = FALSE; -+ if (memcmp (armag, ARMAG, SARMAG) == 0) -+ { -+ if (process_archive (filedata, FALSE)) -+ ret = TRUE; -+ } -+ else if (memcmp (armag, ARMAGT, SARMAG) == 0) -+ { -+ if (process_archive (filedata, TRUE)) -+ ret = TRUE; -+ } -+ else -+ { -+ if (do_archive_index) -+ error (_("Not an archive so its index cannot be displayed.\n")); -+ -+ rewind (filedata->handle); -+ archive_file_size = archive_file_offset = 0; -+ -+ if (process_object (filedata)) -+ ret = TRUE; -+ } +- ret = false; ++ if (process_object (filedata)) ++ ret = true; } - fclose (filedata->handle); +- fclose (filedata->handle); +- free (filedata->section_headers); +- free (filedata->program_headers); +- free (filedata->string_table); +- free (filedata->dump.dump_sects); +- free (filedata); + done: - free (filedata); ++ if (filedata) ++ { ++ if (filedata->handle != NULL) ++ fclose (filedata->handle); ++ free (filedata->section_headers); ++ free (filedata->program_headers); ++ free (filedata->string_table); ++ free (filedata->dump.dump_sects); ++ free (filedata); ++ } + free (program_name); + program_name = saved_program_name; - return ret; - } + free (ba_cache.strtab); + ba_cache.strtab = NULL; diff --git a/binutils-fix-testsuite-failures.patch b/binutils-fix-testsuite-failures.patch index 6dcd3c949509141b778fd7f79927b4f5bf7a1209..af323054914f382a8bccdd3710b49e8b8b92e732 100644 --- a/binutils-fix-testsuite-failures.patch +++ b/binutils-fix-testsuite-failures.patch @@ -1,6 +1,21 @@ -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-10.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-10.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-10.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-10.d 2020-12-18 02:57:20.370034853 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elfvers/vers24.rd binutils-2.37-new/ld/testsuite/ld-elfvers/vers24.rd +--- binutils-2.37/ld/testsuite/ld-elfvers/vers24.rd 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-elfvers/vers24.rd 2021-07-24 21:59:18.647807502 +0200 +@@ -7,9 +7,9 @@ Symbol table '.dynsym' contains [0-9]+ e + # And ensure the dynamic symbol table contains at least x@VERS.0 + # and foo@@VERS.0 symbols + #... +- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0 ++ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.* + #... +- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0 ++ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.* + #... + Symbol table '.symtab' contains [0-9]+ entries: + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d 2021-07-24 21:59:18.648807492 +0200 @@ -32,7 +32,8 @@ hook called: claim_file tmpdir/func.o \[ hook called: claim_file tmpdir/libtext.a \[@.* not claimed #... @@ -11,9 +26,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-10.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-11.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-11.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-11.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-11.d 2020-12-18 02:57:20.371034849 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d 2021-07-24 21:59:18.648807492 +0200 @@ -35,8 +35,9 @@ hook called: claim_file tmpdir/func.o \[ hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED #... @@ -26,18 +41,18 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-11.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-13.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-13.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-13.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-13.d 2020-12-18 02:57:20.371034849 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-13.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-13.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-13.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-13.d 2021-07-24 21:59:18.648807492 +0200 @@ -23,5 +23,3 @@ hook called: claim_file tmpdir/main.o \[ hook called: claim_file .*/ld/testsuite/ld-plugin/func.c \[@0/.* CLAIMED hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... -.*main.c.*: undefined reference to `\.?func' -#... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-14.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-14.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-14.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-14.d 2020-12-18 02:57:20.371034849 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-14.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-14.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-14.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-14.d 2021-07-24 21:59:18.649807482 +0200 @@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -47,9 +62,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-14.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-15.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-15.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-15.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-15.d 2020-12-18 02:57:20.371034849 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-15.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-15.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-15.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-15.d 2021-07-24 21:59:18.649807482 +0200 @@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -59,9 +74,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-15.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-16.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-16.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-16.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-16.d 2020-12-18 02:57:20.372034846 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d 2021-07-24 21:59:18.649807482 +0200 @@ -30,9 +30,8 @@ hook called: claim_file .*/ld/testsuite/ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -74,9 +89,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-16.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-17.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-17.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-17.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-17.d 2020-12-18 02:57:20.372034846 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d 2021-07-24 21:59:18.649807482 +0200 @@ -31,7 +31,8 @@ hook called: claim_file .*/ld/testsuite/ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -87,9 +102,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-17.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-18.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-18.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-18.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-18.d 2020-12-18 02:57:20.372034846 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d 2021-07-24 21:59:18.650807473 +0200 @@ -32,7 +32,8 @@ hook called: claim_file .*/ld/testsuite/ hook called: claim_file tmpdir/libtext.a \[@.* not claimed #... @@ -100,9 +115,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-18.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-19.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-19.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-19.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-19.d 2020-12-18 02:57:20.372034846 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d 2021-07-24 21:59:18.650807473 +0200 @@ -35,8 +35,9 @@ hook called: claim_file .*/ld/testsuite/ hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED #... @@ -115,9 +130,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-19.d bin +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-20.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-20.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-20.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-20.d 2020-12-18 02:57:20.372034846 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-20.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-20.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-20.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-20.d 2021-07-24 21:59:18.650807473 +0200 @@ -2,6 +2,5 @@ hook called: all symbols read. Input: func.c \(tmpdir/libfunc.a\) Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* @@ -126,9 +141,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-20.d bin -.*main.c.*: undefined reference to `\.?func' +#... hook called: cleanup. -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-21.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-21.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-21.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-21.d 2020-12-18 02:57:20.372034846 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-21.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-21.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-21.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-21.d 2021-07-24 21:59:18.650807473 +0200 @@ -2,6 +2,5 @@ hook called: all symbols read. Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\) Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* @@ -137,9 +152,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-21.d bin -.*main.c.*: undefined reference to `\.?func' +#... hook called: cleanup. -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-22.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-22.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-22.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-22.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-22.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-22.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-22.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-22.d 2021-07-24 21:59:18.650807473 +0200 @@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.* hook called: all symbols read. Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* @@ -148,9 +163,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-22.d bin -.*main.c.*: undefined reference to `\.?func' +#... hook called: cleanup. -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-23.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-23.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-23.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-23.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-23.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-23.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-23.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-23.d 2021-07-24 21:59:18.651807463 +0200 @@ -2,6 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func. hook called: all symbols read. Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* @@ -159,47 +174,47 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-23.d bin -.*main.c.*: undefined reference to `\.?func' +#... hook called: cleanup. -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-24.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-24.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-24.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-24.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-24.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-24.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-24.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-24.d 2021-07-24 21:59:18.651807463 +0200 @@ -2,4 +2,5 @@ hook called: all symbols read. Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\) Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* +#... hook called: cleanup. -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-25.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-25.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-25.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-25.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-25.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-25.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-25.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-25.d 2021-07-24 21:59:18.651807463 +0200 @@ -2,4 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func. hook called: all symbols read. Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* +#... hook called: cleanup. -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-28.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-28.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-28.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-28.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-28.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-28.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-28.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-28.d 2021-07-24 21:59:18.651807463 +0200 @@ -1 +1,2 @@ .*: error: Error +#... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-29.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-29.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-29.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-29.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-29.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-29.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-29.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-29.d 2021-07-24 21:59:18.652807453 +0200 @@ -1 +1,2 @@ .*: warning: Warning +#... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-30.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-30.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-30.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-30.d 2020-12-18 02:57:20.373034842 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-30.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-30.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-30.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-30.d 2021-07-24 21:59:18.652807453 +0200 @@ -24,3 +24,4 @@ hook called: claim_file tmpdir/main.o \[ hook called: claim_file tmpdir/func.o \[@0/.* not claimed hook called: claim_file tmpdir/text.o \[@0/.* not claimed hook called: claim_file tmpdir/libempty.a \[@.* not claimed +#pass -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-6.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-6.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-6.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-6.d 2020-12-18 02:57:20.374034839 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-6.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-6.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-6.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-6.d 2021-07-24 21:59:18.652807453 +0200 @@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -209,9 +224,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-6.d binu +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-7.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-7.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-7.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-7.d 2020-12-18 02:57:20.374034839 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-7.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-7.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-7.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-7.d 2021-07-24 21:59:18.652807453 +0200 @@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -221,9 +236,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-7.d binu +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-8.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-8.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-8.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-8.d 2020-12-18 02:57:20.374034839 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d 2021-07-24 21:59:18.653807444 +0200 @@ -30,9 +30,8 @@ hook called: claim_file tmpdir/func.o \[ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -236,9 +251,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-8.d binu +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-9.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-9.d ---- binutils-2.34/ld/testsuite/ld-plugin/plugin-9.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-9.d 2020-12-18 02:57:20.374034839 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d 2021-07-24 21:59:18.653807444 +0200 @@ -31,7 +31,8 @@ hook called: claim_file tmpdir/func.o \[ hook called: claim_file tmpdir/text.o \[@0/.* not claimed #... @@ -249,9 +264,25 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-9.d binu +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/pr20070.d binutils-2.34-new/ld/testsuite/ld-plugin/pr20070.d ---- binutils-2.34/ld/testsuite/ld-plugin/pr20070.d 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-plugin/pr20070.d 2020-12-18 02:57:20.374034839 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin.exp binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp +--- binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp 2021-07-24 21:59:18.653807444 +0200 +@@ -117,6 +117,12 @@ if { $can_compile && !$failed_compile } + } + } + ++# I do not know why, but the underscore prefix test is going ++# wrong on ppc64le targets. So override it here. ++if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] } { ++ set _ "" ++} ++ + set testobjfiles "tmpdir/main.o tmpdir/func.o tmpdir/text.o" + set testobjfiles_notext "tmpdir/main.o tmpdir/func.o" + set testsrcfiles "tmpdir/main.o $srcdir/$subdir/func.c tmpdir/text.o" +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/pr20070.d binutils-2.37-new/ld/testsuite/ld-plugin/pr20070.d +--- binutils-2.37/ld/testsuite/ld-plugin/pr20070.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/pr20070.d 2021-07-24 21:59:18.653807444 +0200 @@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI Sym: 'undef' Resolution: LDPR_UNDEF Sym: 'weakundef' Resolution: LDPR_UNDEF @@ -259,9 +290,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/pr20070.d binut +#... hook called: cleanup. #... -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-srec/srec.exp binutils-2.34-new/ld/testsuite/ld-srec/srec.exp ---- binutils-2.34/ld/testsuite/ld-srec/srec.exp 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-srec/srec.exp 2020-12-18 02:57:20.374034839 +0100 +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-srec/srec.exp binutils-2.37-new/ld/testsuite/ld-srec/srec.exp +--- binutils-2.37/ld/testsuite/ld-srec/srec.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-srec/srec.exp 2021-07-24 21:59:18.654807434 +0200 @@ -21,6 +21,8 @@ # Get the offset from an S-record line to the start of the data. @@ -271,32 +302,3 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-srec/srec.exp binutils proc srec_off { l } { if [string match "S1*" $l] { return 8 -diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.34-new/ld/testsuite/ld-x86-64/x86-64.exp ---- binutils-2.34/ld/testsuite/ld-x86-64/x86-64.exp 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/ld/testsuite/ld-x86-64/x86-64.exp 2020-12-18 02:57:20.374034839 +0100 -@@ -1322,25 +1322,6 @@ if { [isnative] && [check_compiler_avail - "$NOPIE_CFLAGS" \ - ] \ - ] -- } else { -- run_cc_link_tests [list \ -- [list \ -- "Build pr22001-1b" \ -- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \ -- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ -- { pr22001-1c.c } \ -- {{error_output "pr22001-1b.err"}} \ -- "pr22001-1b" \ -- ] \ -- [list \ -- "Build pr21997-1b" \ -- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \ -- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ -- { pr21997-1c.c } \ -- {{error_output "pr21997-1b.err"}} \ -- "pr21997-1b" \ -- ] \ -- ] - } - - run_ld_link_exec_tests [list \ diff --git a/binutils-gdb.git-014cc7f849e8209623fc99264814bce7b3b6faf2.patch b/binutils-gdb.git-014cc7f849e8209623fc99264814bce7b3b6faf2.patch deleted file mode 100644 index 5f59a7d1e0ec3bf919a7f6a90ee537380835d523..0000000000000000000000000000000000000000 --- a/binutils-gdb.git-014cc7f849e8209623fc99264814bce7b3b6faf2.patch +++ /dev/null @@ -1,368 +0,0 @@ -From 014cc7f849e8209623fc99264814bce7b3b6faf2 Mon Sep 17 00:00:00 2001 -From: Siddhesh Poyarekar -Date: Mon, 7 Dec 2020 20:48:33 +0530 -Subject: [PATCH] binutils: Make smart_rename safe too - -smart_rename is capable of handling symlinks by copying and it also -tries to preserve ownership and permissions of files when they're -overwritten during the rename. This is useful in objcopy where the -file properties need to be preserved. - -However because smart_rename does this using file names, it leaves a -race window between renames and permission fixes. This change removes -this race window by using file descriptors from the original BFDs that -were used to manipulate these files wherever possible. - -The file that is to be renamed is also passed as a file descriptor so -that we use fchown/fchmod on the file descriptor, thus making sure -that we only modify the file we have opened to write. Further, in -case the file is to be overwritten (as is the case in ar or objcopy), -the permissions that need to be restored are taken from the file -descriptor that was opened for input so that integrity of the file -status is maintained all the way through to the rename. - -binutils/ - - * rename.c - * ar.c - (write_archive) [!defined (_WIN32) || defined (__CYGWIN32__)]: - Initialize TARGET_STAT and OFD to pass to SMART_RENAME. - * arsup.c - (ar_save) [defined (_WIN32) || defined (__CYGWIN32__)]: - Likewise. - * bucomm.h (smart_rename): Add new arguments to declaration. - * objcopy.c - (strip_main)[defined (_WIN32) || defined (__CYGWIN32__)]: - Initialize COPYFD and pass to SMART_RENAME. - (copy_main) [defined (_WIN32) || defined (__CYGWIN32__)]: - Likewise. - * rename.c (try_preserve_permissions): New function. - (smart_rename): Use it and add new arguments. ---- - binutils/ChangeLog | 18 ++++++++ - binutils/ar.c | 12 +++++- - binutils/arsup.c | 14 ++++++- - binutils/bucomm.h | 3 +- - binutils/objcopy.c | 42 +++++++++++++++---- - binutils/rename.c | 101 +++++++++++++++++++++++++++++++-------------- - 6 files changed, 148 insertions(+), 42 deletions(-) - -diff --git a/binutils/ar.c b/binutils/ar.c -index 225324208bd..6598dd9012c 100644 ---- a/binutils/ar.c -+++ b/binutils/ar.c -@@ -1254,6 +1254,8 @@ write_archive (bfd *iarch) - char *old_name, *new_name; - bfd *contents_head = iarch->archive_next; - int ofd = -1; -+ struct stat target_stat; -+ bfd_boolean skip_stat = FALSE; - - old_name = (char *) xmalloc (strlen (bfd_get_filename (iarch)) + 1); - strcpy (old_name, bfd_get_filename (iarch)); -@@ -1299,6 +1301,14 @@ write_archive (bfd *iarch) - if (!bfd_set_archive_head (obfd, contents_head)) - bfd_fatal (old_name); - -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+ ofd = dup (ofd); -+ if (iarch == NULL || iarch->iostream == NULL) -+ skip_stat = TRUE; -+ else if (ofd == -1 || fstat (fileno (iarch->iostream), &target_stat) != 0) -+ bfd_fatal (old_name); -+#endif -+ - if (!bfd_close (obfd)) - bfd_fatal (old_name); - -@@ -1308,7 +1318,7 @@ write_archive (bfd *iarch) - /* We don't care if this fails; we might be creating the archive. */ - bfd_close (iarch); - -- if (smart_rename (new_name, old_name, 0) != 0) -+ if (smart_rename (new_name, old_name, ofd, skip_stat ? NULL : &target_stat, 0) != 0) - xexit (1); - free (old_name); - free (new_name); -diff --git a/binutils/arsup.c b/binutils/arsup.c -index a668f270f1a..8b4437ff417 100644 ---- a/binutils/arsup.c -+++ b/binutils/arsup.c -@@ -345,13 +345,25 @@ ar_save (void) - else - { - char *ofilename = xstrdup (bfd_get_filename (obfd)); -+ bfd_boolean skip_stat = FALSE; -+ struct stat target_stat; -+ int ofd = -1; - - if (deterministic > 0) - obfd->flags |= BFD_DETERMINISTIC_OUTPUT; - -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+ /* It's OK to fail; at worst it will result in SMART_RENAME using a slow -+ copy fallback to write the output. */ -+ ofd = dup (fileno (obfd->iostream)); -+ if (lstat (real_name, &target_stat) != 0) -+ skip_stat = TRUE; -+#endif -+ - bfd_close (obfd); - -- smart_rename (ofilename, real_name, 0); -+ smart_rename (ofilename, real_name, ofd, -+ skip_stat ? NULL : &target_stat, 0); - obfd = 0; - free (ofilename); - } -diff --git a/binutils/bucomm.h b/binutils/bucomm.h -index afb8e09c2fd..9613b922d5d 100644 ---- a/binutils/bucomm.h -+++ b/binutils/bucomm.h -@@ -71,7 +71,8 @@ extern void print_version (const char *); - /* In rename.c. */ - extern void set_times (const char *, const struct stat *); - --extern int smart_rename (const char *, const char *, int); -+extern int smart_rename (const char *, const char *, int, struct stat *, int); -+ - - /* In libiberty. */ - void *xmalloc (size_t); -diff --git a/binutils/objcopy.c b/binutils/objcopy.c -index b6cf6ea4baa..04ba95ec140 100644 ---- a/binutils/objcopy.c -+++ b/binutils/objcopy.c -@@ -4815,6 +4815,7 @@ strip_main (int argc, char *argv[]) - struct stat statbuf; - char *tmpname; - int tmpfd = -1; -+ int copyfd = -1; - - if (get_file_size (argv[i]) < 1) - { -@@ -4828,7 +4829,12 @@ strip_main (int argc, char *argv[]) - else - tmpname = output_file; - -- if (tmpname == NULL) -+ if (tmpname == NULL -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+ /* Retain a copy of TMPFD since we will need it for SMART_RENAME. */ -+ || (tmpfd >= 0 && (copyfd = dup (tmpfd)) == -1) -+#endif -+ ) - { - bfd_nonfatal_message (argv[i], NULL, NULL, - _("could not create temporary file to hold stripped copy")); -@@ -4846,12 +4852,18 @@ strip_main (int argc, char *argv[]) - if (output_file != tmpname) - status = (smart_rename (tmpname, - output_file ? output_file : argv[i], -- preserve_dates) != 0); -+ copyfd, &statbuf, preserve_dates) != 0); - if (status == 0) - status = hold_status; - } - else -- unlink_if_ordinary (tmpname); -+ { -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+ if (copyfd >= 0) -+ close (copyfd); -+#endif -+ unlink_if_ordinary (tmpname); -+ } - if (output_file != tmpname) - free (tmpname); - } -@@ -5059,6 +5071,7 @@ copy_main (int argc, char *argv[]) - bfd_boolean use_globalize = FALSE; - bfd_boolean use_keep_global = FALSE; - int c, tmpfd = -1; -+ int copyfd = -1; - struct stat statbuf; - const bfd_arch_info_type *input_arch = NULL; - -@@ -5903,9 +5916,16 @@ copy_main (int argc, char *argv[]) - else - tmpname = output_filename; - -- if (tmpname == NULL) -- fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), -- input_filename, strerror (errno)); -+ if (tmpname == NULL -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+ /* Retain a copy of TMPFD since we will need it for SMART_RENAME. */ -+ || (tmpfd >= 0 && (copyfd = dup (tmpfd)) == -1) -+#endif -+ ) -+ { -+ fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), -+ input_filename, strerror (errno)); -+ } - - copy_file (input_filename, tmpname, tmpfd, &statbuf, input_target, - output_target, input_arch); -@@ -5914,11 +5934,17 @@ copy_main (int argc, char *argv[]) - if (preserve_dates) - set_times (tmpname, &statbuf); - if (tmpname != output_filename) -- status = (smart_rename (tmpname, input_filename, -+ status = (smart_rename (tmpname, input_filename, copyfd, &statbuf, - preserve_dates) != 0); - } - else -- unlink_if_ordinary (tmpname); -+ { -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+ if (copyfd >= 0) -+ close (copyfd); -+#endif -+ unlink_if_ordinary (tmpname); -+ } - - if (tmpname != output_filename) - free (tmpname); -diff --git a/binutils/rename.c b/binutils/rename.c -index bf3b68d0462..6b9165ea1c9 100644 ---- a/binutils/rename.c -+++ b/binutils/rename.c -@@ -131,17 +131,55 @@ set_times (const char *destination, const struct stat *statbuf) - #endif - #endif - --/* Rename FROM to TO, copying if TO is a link. -- Return 0 if ok, -1 if error. */ -+#if !defined (_WIN32) || defined (__CYGWIN32__) -+/* Try to preserve the permission bits and ownership of an existing file when -+ rename overwrites it. FD is the file being renamed and TARGET_STAT has the -+ status of the file that was overwritten. */ -+static void -+try_preserve_permissions (int fd, struct stat *target_stat) -+{ -+ struct stat from_stat; -+ int ret = 0; -+ -+ if (fstat (fd, &from_stat) != 0) -+ return; -+ -+ int from_mode = from_stat.st_mode & 0777; -+ int to_mode = target_stat->st_mode & 0777; -+ -+ /* Fix up permissions before we potentially lose ownership with fchown. -+ Clear the setxid bits because in case the fchown below fails then we don't -+ want to end up with a sxid file owned by the invoking user. If the user -+ hasn't changed or if fchown succeeded, we add back the sxid bits at the -+ end. */ -+ if (from_mode != to_mode) -+ fchmod (fd, to_mode); -+ -+ /* Fix up ownership, this will clear the setxid bits. */ -+ if (from_stat.st_uid != target_stat->st_uid -+ || from_stat.st_gid != target_stat->st_gid) -+ ret = fchown (fd, target_stat->st_uid, target_stat->st_gid); -+ -+ /* Fix up the sxid bits if either the fchown wasn't needed or it -+ succeeded. */ -+ if (ret == 0) -+ fchmod (fd, target_stat->st_mode & 07777); -+} -+#endif -+ -+/* Rename FROM to TO, copying if TO is either a link or is not a regular file. -+ FD is an open file descriptor pointing to FROM that we can use to safely fix -+ up permissions of the file after renaming. TARGET_STAT has the file status -+ that is used to fix up permissions and timestamps after rename. Return 0 if -+ ok, -1 if error and FD is closed before returning. */ - - int --smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNUSED) -+smart_rename (const char *from, const char *to, int fd ATTRIBUTE_UNUSED, -+ struct stat *target_stat ATTRIBUTE_UNUSED, -+ int preserve_dates ATTRIBUTE_UNUSED) - { -- bfd_boolean exists; -- struct stat s; - int ret = 0; -- -- exists = lstat (to, &s) == 0; -+ bfd_boolean exists = target_stat != NULL; - - #if defined (_WIN32) && !defined (__CYGWIN32__) - /* Win32, unlike unix, will not erase `to' in `rename(from, to)' but -@@ -158,36 +196,35 @@ smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNU - unlink (from); - } - #else -- /* Use rename only if TO is not a symbolic link and has -- only one hard link, and we have permission to write to it. */ -+ /* Avoid a full copy and use rename if we can fix up permissions of the -+ file after renaming, i.e.: -+ -+ - TO is not a symbolic link -+ - TO is a regular file with only one hard link -+ - We have permission to write to TO -+ - FD is available to safely fix up permissions to be the same as the file -+ we overwrote with the rename. -+ -+ Note though that the actual file on disk that TARGET_STAT describes may -+ have changed and we're only trying to preserve the status we know about. -+ At no point do we try to interact with the new file changes, so there can -+ only be two outcomes, i.e. either the external file change survives -+ without knowledge of our change (if it happens after the rename syscall) -+ or our rename and permissions fixup survive without any knowledge of the -+ external change. */ - if (! exists -- || (!S_ISLNK (s.st_mode) -- && S_ISREG (s.st_mode) -- && (s.st_mode & S_IWUSR) -- && s.st_nlink == 1) -+ || (fd >= 0 -+ && !S_ISLNK (target_stat->st_mode) -+ && S_ISREG (target_stat->st_mode) -+ && (target_stat->st_mode & S_IWUSR) -+ && target_stat->st_nlink == 1) - ) - { - ret = rename (from, to); - if (ret == 0) - { - if (exists) -- { -- /* Try to preserve the permission bits and ownership of -- TO. First get the mode right except for the setuid -- bit. Then change the ownership. Then fix the setuid -- bit. We do the chmod before the chown because if the -- chown succeeds, and we are a normal user, we won't be -- able to do the chmod afterward. We don't bother to -- fix the setuid bit first because that might introduce -- a fleeting security problem, and because the chown -- will clear the setuid bit anyhow. We only fix the -- setuid bit if the chown succeeds, because we don't -- want to introduce an unexpected setuid file owned by -- the user running objcopy. */ -- chmod (to, s.st_mode & 0777); -- if (chown (to, s.st_uid, s.st_gid) >= 0) -- chmod (to, s.st_mode & 07777); -- } -+ try_preserve_permissions (fd, target_stat); - } - else - { -@@ -203,9 +240,11 @@ smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNU - non_fatal (_("unable to copy file '%s'; reason: %s"), to, strerror (errno)); - - if (preserve_dates) -- set_times (to, &s); -+ set_times (to, target_stat); - unlink (from); - } -+ if (fd >= 0) -+ close (fd); - #endif /* _WIN32 && !__CYGWIN32__ */ - - return ret; --- -2.27.0 - diff --git a/binutils-gdb.git-1a1c3b4cc17687091cff5a368bd6f13742bcfdf8.patch b/binutils-gdb.git-1a1c3b4cc17687091cff5a368bd6f13742bcfdf8.patch deleted file mode 100644 index 2b86ca94ed953815377298bbe5c59fb417473b20..0000000000000000000000000000000000000000 --- a/binutils-gdb.git-1a1c3b4cc17687091cff5a368bd6f13742bcfdf8.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 1a1c3b4cc17687091cff5a368bd6f13742bcfdf8 Mon Sep 17 00:00:00 2001 -From: Siddhesh Poyarekar -Date: Mon, 7 Dec 2020 20:48:28 +0530 -Subject: [PATCH] objcopy: Get input file stat after BFD open - -Get file state from the descriptor opened by copy_file for the input -BFD. This ensures continuity in the view of the input file through -the descriptor. At the moment it is only to preserve timestamps -recorded at the point that we opened the file for input but in the -next patch this state will also be used to preserve ownership and -permissions wherever applicable. - -binutils/ - - * objcopy.c (copy_file): New argument IN_STAT. Return stat of - ibfd through it. - (strip_main): Remove redundant stat calls. adjust copy_file - calls. - (copy_main): Likewise. ---- - binutils/ChangeLog | 9 +++++++++ - binutils/objcopy.c | 23 +++++++---------------- - 2 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/binutils/objcopy.c b/binutils/objcopy.c -index 2eb083c3769..b6cf6ea4baa 100644 ---- a/binutils/objcopy.c -+++ b/binutils/objcopy.c -@@ -3729,8 +3729,8 @@ set_long_section_mode (bfd *output_bfd, bfd *input_bfd, enum long_section_name_h - - static void - copy_file (const char *input_filename, const char *output_filename, int ofd, -- const char *input_target, const char *output_target, -- const bfd_arch_info_type *input_arch) -+ struct stat *in_stat, const char *input_target, -+ const char *output_target, const bfd_arch_info_type *input_arch) - { - bfd *ibfd; - char **obj_matching; -@@ -3749,7 +3749,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd, - /* To allow us to do "strip *" without dying on the first - non-object file, failures are nonfatal. */ - ibfd = bfd_openr (input_filename, input_target); -- if (ibfd == NULL) -+ if (ibfd == NULL || fstat (fileno (ibfd->iostream), in_stat) != 0) - { - bfd_nonfatal_message (input_filename, NULL, NULL, NULL); - status = 1; -@@ -4822,11 +4822,6 @@ strip_main (int argc, char *argv[]) - continue; - } - -- if (preserve_dates) -- /* No need to check the return value of stat(). -- It has already been checked in get_file_size(). */ -- stat (argv[i], &statbuf); -- - if (output_file == NULL - || filename_cmp (argv[i], output_file) == 0) - tmpname = make_tempname (argv[i], &tmpfd); -@@ -4842,7 +4837,8 @@ strip_main (int argc, char *argv[]) - } - - status = 0; -- copy_file (argv[i], tmpname, tmpfd, input_target, output_target, NULL); -+ copy_file (argv[i], tmpname, tmpfd, &statbuf, input_target, -+ output_target, NULL); - if (status == 0) - { - if (preserve_dates) -@@ -5899,11 +5895,6 @@ copy_main (int argc, char *argv[]) - convert_efi_target (efi); - } - -- if (preserve_dates) -- if (stat (input_filename, & statbuf) < 0) -- fatal (_("warning: could not locate '%s'. System error message: %s"), -- input_filename, strerror (errno)); -- - /* If there is no destination file, or the source and destination files - are the same, then create a temp and rename the result into the input. */ - if (output_filename == NULL -@@ -5916,8 +5907,8 @@ copy_main (int argc, char *argv[]) - fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), - input_filename, strerror (errno)); - -- copy_file (input_filename, tmpname, tmpfd, input_target, output_target, -- input_arch); -+ copy_file (input_filename, tmpname, tmpfd, &statbuf, input_target, -+ output_target, input_arch); - if (status == 0) - { - if (preserve_dates) --- -2.27.0 - diff --git a/binutils-gdb.git-365f5fb6d0f0da83817431a275e99e6f6babbe04.patch b/binutils-gdb.git-365f5fb6d0f0da83817431a275e99e6f6babbe04.patch deleted file mode 100644 index 40e4b3981e937a9181f3c634c6828383fbec3ece..0000000000000000000000000000000000000000 --- a/binutils-gdb.git-365f5fb6d0f0da83817431a275e99e6f6babbe04.patch +++ /dev/null @@ -1,287 +0,0 @@ -From 365f5fb6d0f0da83817431a275e99e6f6babbe04 Mon Sep 17 00:00:00 2001 -From: Siddhesh Poyarekar -Date: Mon, 7 Dec 2020 20:48:23 +0530 -Subject: [PATCH] binutils: Use file descriptors from make_tempname - -The purpose of creating a temporary file securely using mkstemp is -defeated if it is closed in make_tempname and reopened later for use; -it is as good as using mktemp. Get the file descriptor instead and -then use it to create the BFD object. - -bfd/ - - * opncls.c (bfd_fdopenw): New function. - * bfd-in2.h: Regenerate. - -binutils/ - - * bucomm.c (make_tempname): Add argument to return file - descriptor. - * bucomm.h (make_tempname): Likewise. - * ar.c: Include libbfd.h. - (write_archive): Adjust for change in make_tempname. Call - bfd_fdopenw instead of bfd_openw. - * objcopy.c: Include libbfd.h. - (copy_file): New argument OFD. Use bfd_fdopenw instead of - bfd_openw. - (strip_main): Adjust for change in make_tempname and - copy_file. - (copy_main): Likewise. ---- - bfd/ChangeLog | 6 ++++++ - bfd/bfd-in2.h | 2 ++ - bfd/opncls.c | 33 +++++++++++++++++++++++++++++++++ - binutils/ChangeLog | 17 +++++++++++++++++ - binutils/ar.c | 11 ++++++++--- - binutils/bucomm.c | 4 ++-- - binutils/bucomm.h | 2 +- - binutils/objcopy.c | 30 ++++++++++++++++++++++-------- - 8 files changed, 91 insertions(+), 14 deletions(-) - -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 935ba535b54..48e3d9b6647 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -588,6 +588,8 @@ bfd *bfd_openr (const char *filename, const char *target); - - bfd *bfd_fdopenr (const char *filename, const char *target, int fd); - -+bfd *bfd_fdopenw (const char *filename, const char *target, int fd); -+ - bfd *bfd_openstreamr (const char * filename, const char * target, - void * stream); - -diff --git a/bfd/opncls.c b/bfd/opncls.c -index c2a1d2fa4df..f7696b658ca 100644 ---- a/bfd/opncls.c -+++ b/bfd/opncls.c -@@ -393,6 +393,39 @@ bfd_fdopenr (const char *filename, const char *target, int fd) - return bfd_fopen (filename, target, mode, fd); - } - -+/* -+FUNCTION -+ bfd_fdopenw -+ -+SYNOPSIS -+ bfd *bfd_fdopenw (const char *filename, const char *target, int fd); -+ -+DESCRIPTION -+ <> is exactly like <> with the exception that -+ the resulting BFD is suitable for output. -+*/ -+ -+bfd * -+bfd_fdopenw (const char *filename, const char *target, int fd) -+{ -+ bfd *out = bfd_fdopenr (filename, target, fd); -+ -+ if (out != NULL) -+ { -+ if (!bfd_write_p (out)) -+ { -+ close (fd); -+ _bfd_delete_bfd (out); -+ out = NULL; -+ bfd_set_error (bfd_error_invalid_operation); -+ } -+ else -+ out->direction = write_direction; -+ } -+ -+ return out; -+} -+ - /* - FUNCTION - bfd_openstreamr -diff --git a/binutils/ar.c b/binutils/ar.c -index 7d279d6722a..225324208bd 100644 ---- a/binutils/ar.c -+++ b/binutils/ar.c -@@ -25,6 +25,7 @@ - - #include "sysdep.h" - #include "bfd.h" -+#include "libbfd.h" - #include "libiberty.h" - #include "progress.h" - #include "getopt.h" -@@ -1252,20 +1253,24 @@ write_archive (bfd *iarch) - bfd *obfd; - char *old_name, *new_name; - bfd *contents_head = iarch->archive_next; -+ int ofd = -1; - - old_name = (char *) xmalloc (strlen (bfd_get_filename (iarch)) + 1); - strcpy (old_name, bfd_get_filename (iarch)); -- new_name = make_tempname (old_name); -+ new_name = make_tempname (old_name, &ofd); - - if (new_name == NULL) - bfd_fatal (_("could not create temporary file whilst writing archive")); - - output_filename = new_name; - -- obfd = bfd_openw (new_name, bfd_get_target (iarch)); -+ obfd = bfd_fdopenw (new_name, bfd_get_target (iarch), ofd); - - if (obfd == NULL) -- bfd_fatal (old_name); -+ { -+ close (ofd); -+ bfd_fatal (old_name); -+ } - - output_bfd = obfd; - -diff --git a/binutils/bucomm.c b/binutils/bucomm.c -index 9e6a02843e6..53244201f89 100644 ---- a/binutils/bucomm.c -+++ b/binutils/bucomm.c -@@ -532,7 +532,7 @@ template_in_dir (const char *path) - as FILENAME. */ - - char * --make_tempname (const char *filename) -+make_tempname (const char *filename, int *ofd) - { - char *tmpname = template_in_dir (filename); - int fd; -@@ -550,7 +550,7 @@ make_tempname (const char *filename) - free (tmpname); - return NULL; - } -- close (fd); -+ *ofd = fd; - return tmpname; - } - -diff --git a/binutils/bucomm.h b/binutils/bucomm.h -index d8318343f78..afb8e09c2fd 100644 ---- a/binutils/bucomm.h -+++ b/binutils/bucomm.h -@@ -51,7 +51,7 @@ int display_info (void); - - void print_arelt_descr (FILE *, bfd *, bfd_boolean, bfd_boolean); - --char *make_tempname (const char *); -+char *make_tempname (const char *, int *); - char *make_tempdir (const char *); - - bfd_vma parse_vma (const char *, const char *); -diff --git a/binutils/objcopy.c b/binutils/objcopy.c -index ca35df03b66..2eb083c3769 100644 ---- a/binutils/objcopy.c -+++ b/binutils/objcopy.c -@@ -20,6 +20,7 @@ - - #include "sysdep.h" - #include "bfd.h" -+#include "libbfd.h" - #include "progress.h" - #include "getopt.h" - #include "libiberty.h" -@@ -3727,7 +3728,7 @@ set_long_section_mode (bfd *output_bfd, bfd *input_bfd, enum long_section_name_h - /* The top-level control. */ - - static void --copy_file (const char *input_filename, const char *output_filename, -+copy_file (const char *input_filename, const char *output_filename, int ofd, - const char *input_target, const char *output_target, - const bfd_arch_info_type *input_arch) - { -@@ -3802,9 +3803,14 @@ copy_file (const char *input_filename, const char *output_filename, - else - force_output_target = TRUE; - -- obfd = bfd_openw (output_filename, output_target); -+ if (ofd >= 0) -+ obfd = bfd_fdopenw (output_filename, output_target, ofd); -+ else -+ obfd = bfd_openw (output_filename, output_target); -+ - if (obfd == NULL) - { -+ close (ofd); - bfd_nonfatal_message (output_filename, NULL, NULL, NULL); - status = 1; - return; -@@ -3832,13 +3838,19 @@ copy_file (const char *input_filename, const char *output_filename, - if (output_target == NULL) - output_target = bfd_get_target (ibfd); - -- obfd = bfd_openw (output_filename, output_target); -+ if (ofd >= 0) -+ obfd = bfd_fdopenw (output_filename, output_target, ofd); -+ else -+ obfd = bfd_openw (output_filename, output_target); -+ - if (obfd == NULL) - { -+ close (ofd); - bfd_nonfatal_message (output_filename, NULL, NULL, NULL); - status = 1; - return; - } -+ - /* This is a no-op on non-Coff targets. */ - set_long_section_mode (obfd, ibfd, long_section_names); - -@@ -4802,6 +4814,7 @@ strip_main (int argc, char *argv[]) - int hold_status = status; - struct stat statbuf; - char *tmpname; -+ int tmpfd = -1; - - if (get_file_size (argv[i]) < 1) - { -@@ -4816,7 +4829,7 @@ strip_main (int argc, char *argv[]) - - if (output_file == NULL - || filename_cmp (argv[i], output_file) == 0) -- tmpname = make_tempname (argv[i]); -+ tmpname = make_tempname (argv[i], &tmpfd); - else - tmpname = output_file; - -@@ -4829,7 +4842,7 @@ strip_main (int argc, char *argv[]) - } - - status = 0; -- copy_file (argv[i], tmpname, input_target, output_target, NULL); -+ copy_file (argv[i], tmpname, tmpfd, input_target, output_target, NULL); - if (status == 0) - { - if (preserve_dates) -@@ -5049,7 +5062,7 @@ copy_main (int argc, char *argv[]) - bfd_boolean formats_info = FALSE; - bfd_boolean use_globalize = FALSE; - bfd_boolean use_keep_global = FALSE; -- int c; -+ int c, tmpfd = -1; - struct stat statbuf; - const bfd_arch_info_type *input_arch = NULL; - -@@ -5895,7 +5908,7 @@ copy_main (int argc, char *argv[]) - are the same, then create a temp and rename the result into the input. */ - if (output_filename == NULL - || filename_cmp (input_filename, output_filename) == 0) -- tmpname = make_tempname (input_filename); -+ tmpname = make_tempname (input_filename, &tmpfd); - else - tmpname = output_filename; - -@@ -5903,7 +5916,8 @@ copy_main (int argc, char *argv[]) - fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), - input_filename, strerror (errno)); - -- copy_file (input_filename, tmpname, input_target, output_target, input_arch); -+ copy_file (input_filename, tmpname, tmpfd, input_target, output_target, -+ input_arch); - if (status == 0) - { - if (preserve_dates) --- -2.27.0 - diff --git a/binutils-gold-i386-gnu-property-notes.patch b/binutils-gold-i386-gnu-property-notes.patch new file mode 100644 index 0000000000000000000000000000000000000000..88955b4946d66483a56eaa47c260a7d962b724c0 --- /dev/null +++ b/binutils-gold-i386-gnu-property-notes.patch @@ -0,0 +1,192 @@ +diff -rupN --no-dereference binutils-2.37/gold/i386.cc binutils-2.37-new/gold/i386.cc +--- binutils-2.37/gold/i386.cc 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/gold/i386.cc 2021-07-24 21:59:31.051686692 +0200 +@@ -360,7 +360,11 @@ class Target_i386 : public Sized_target< + got_(NULL), plt_(NULL), got_plt_(NULL), got_irelative_(NULL), + got_tlsdesc_(NULL), global_offset_table_(NULL), rel_dyn_(NULL), + rel_irelative_(NULL), copy_relocs_(elfcpp::R_386_COPY), +- got_mod_index_offset_(-1U), tls_base_symbol_defined_(false) ++ got_mod_index_offset_(-1U), tls_base_symbol_defined_(false), ++ isa_1_used_(0), isa_1_needed_(0), ++ feature_1_(0), feature_2_used_(0), feature_2_needed_(0), ++ object_isa_1_used_(0), object_feature_1_(0), ++ object_feature_2_used_(0), seen_first_object_(false) + { } + + // Process the relocations to determine unreferenced sections for +@@ -859,6 +863,21 @@ class Target_i386 : public Sized_target< + this->rel_dyn_section(layout)); + } + ++ // Record a target-specific program property in the .note.gnu.property ++ // section. ++ void ++ record_gnu_property(unsigned int, unsigned int, size_t, ++ const unsigned char*, const Object*); ++ ++ // Merge the target-specific program properties from the current object. ++ void ++ merge_gnu_properties(const Object*); ++ ++ // Finalize the target-specific program properties and add them back to ++ // the layout. ++ void ++ do_finalize_gnu_properties(Layout*) const; ++ + // Information about this specific target which we pass to the + // general Target structure. + static const Target::Target_info i386_info; +@@ -898,6 +917,26 @@ class Target_i386 : public Sized_target< + unsigned int got_mod_index_offset_; + // True if the _TLS_MODULE_BASE_ symbol has been defined. + bool tls_base_symbol_defined_; ++ ++ // Target-specific program properties, from .note.gnu.property section. ++ // Each bit represents a specific feature. ++ uint32_t isa_1_used_; ++ uint32_t isa_1_needed_; ++ uint32_t feature_1_; ++ uint32_t feature_2_used_; ++ uint32_t feature_2_needed_; ++ // Target-specific properties from the current object. ++ // These bits get ORed into ISA_1_USED_ after all properties for the object ++ // have been processed. But if either is all zeroes (as when the property ++ // is absent from an object), the result should be all zeroes. ++ // (See PR ld/23486.) ++ uint32_t object_isa_1_used_; ++ // These bits get ANDed into FEATURE_1_ after all properties for the object ++ // have been processed. ++ uint32_t object_feature_1_; ++ uint32_t object_feature_2_used_; ++ // Whether we have seen our first object, for use in initializing FEATURE_1_. ++ bool seen_first_object_; + }; + + const Target::Target_info Target_i386::i386_info = +@@ -1042,6 +1081,126 @@ Target_i386::rel_irelative_section(Layou + return this->rel_irelative_; + } + ++// Record a target-specific program property from the .note.gnu.property ++// section. ++void ++Target_i386::record_gnu_property( ++ unsigned int, unsigned int pr_type, ++ size_t pr_datasz, const unsigned char* pr_data, ++ const Object* object) ++{ ++ uint32_t val = 0; ++ ++ switch (pr_type) ++ { ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED: ++ if (pr_datasz != 4) ++ { ++ gold_warning(_("%s: corrupt .note.gnu.property section " ++ "(pr_datasz for property %d is not 4)"), ++ object->name().c_str(), pr_type); ++ return; ++ } ++ val = elfcpp::Swap<32, false>::readval(pr_data); ++ break; ++ default: ++ gold_warning(_("%s: unknown program property type 0x%x " ++ "in .note.gnu.property section"), ++ object->name().c_str(), pr_type); ++ break; ++ } ++ ++ switch (pr_type) ++ { ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: ++ this->object_isa_1_used_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: ++ this->isa_1_needed_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND: ++ // If we see multiple feature props in one object, OR them together. ++ this->object_feature_1_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED: ++ this->object_feature_2_used_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED: ++ this->feature_2_needed_ |= val; ++ break; ++ } ++} ++ ++// Merge the target-specific program properties from the current object. ++void ++Target_i386::merge_gnu_properties(const Object*) ++{ ++ if (this->seen_first_object_) ++ { ++ // If any object is missing the ISA_1_USED property, we must omit ++ // it from the output file. ++ if (this->object_isa_1_used_ == 0) ++ this->isa_1_used_ = 0; ++ else if (this->isa_1_used_ != 0) ++ this->isa_1_used_ |= this->object_isa_1_used_; ++ this->feature_1_ &= this->object_feature_1_; ++ // If any object is missing the FEATURE_2_USED property, we must ++ // omit it from the output file. ++ if (this->object_feature_2_used_ == 0) ++ this->feature_2_used_ = 0; ++ else if (this->feature_2_used_ != 0) ++ this->feature_2_used_ |= this->object_feature_2_used_; ++ } ++ else ++ { ++ this->isa_1_used_ = this->object_isa_1_used_; ++ this->feature_1_ = this->object_feature_1_; ++ this->feature_2_used_ = this->object_feature_2_used_; ++ this->seen_first_object_ = true; ++ } ++ this->object_isa_1_used_ = 0; ++ this->object_feature_1_ = 0; ++ this->object_feature_2_used_ = 0; ++} ++ ++static inline void ++add_property(Layout* layout, unsigned int pr_type, uint32_t val) ++{ ++ unsigned char buf[4]; ++ elfcpp::Swap<32, false>::writeval(buf, val); ++ layout->add_gnu_property(elfcpp::NT_GNU_PROPERTY_TYPE_0, pr_type, 4, buf); ++} ++ ++// Finalize the target-specific program properties and add them back to ++// the layout. ++void ++Target_i386::do_finalize_gnu_properties(Layout* layout) const ++{ ++ if (this->isa_1_used_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_USED, ++ this->isa_1_used_); ++ if (this->isa_1_needed_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED, ++ this->isa_1_needed_); ++ if (this->feature_1_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND, ++ this->feature_1_); ++ if (this->feature_2_used_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED, ++ this->feature_2_used_); ++ if (this->feature_2_needed_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED, ++ this->feature_2_needed_); ++} ++ + // Write the first three reserved words of the .got.plt section. + // The remainder of the section is written while writing the PLT + // in Output_data_plt_i386::do_write. diff --git a/binutils-gold-ignore-discarded-note-relocs.patch b/binutils-gold-ignore-discarded-note-relocs.patch deleted file mode 100644 index ab2bc7c97962c6141c7d23bf773681cade62f47a..0000000000000000000000000000000000000000 --- a/binutils-gold-ignore-discarded-note-relocs.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -rupN --no-dereference binutils-2.34/gold/target-reloc.h binutils-2.34-new/gold/target-reloc.h ---- binutils-2.34/gold/target-reloc.h 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/gold/target-reloc.h 2020-12-18 02:57:18.369041902 +0100 -@@ -136,6 +136,7 @@ class Default_comdat_behavior - if (Layout::is_debug_info_section(name)) - return CB_PRETEND; - if (strcmp(name, ".eh_frame") == 0 -+ || strncmp(name, ".gnu.build.attributes", 21) == 0 // FIXME: We should really be checking the section type for ST_NOTE... - || strcmp(name, ".gcc_except_table") == 0) - return CB_IGNORE; - return CB_ERROR; diff --git a/binutils-gold-mismatched-section-flags.patch b/binutils-gold-mismatched-section-flags.patch index 8496561e8780f008664c94f9ec8d68a3dc63c733..b61a90d9a5df5e55aca4a0ae45418a904b60a98f 100644 --- a/binutils-gold-mismatched-section-flags.patch +++ b/binutils-gold-mismatched-section-flags.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference binutils-2.34/gold/layout.cc binutils-2.34-new/gold/layout.cc ---- binutils-2.34/gold/layout.cc 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/gold/layout.cc 2020-12-18 02:57:21.401031221 +0100 +diff -rupN --no-dereference binutils-2.37/gold/layout.cc binutils-2.37-new/gold/layout.cc +--- binutils-2.37/gold/layout.cc 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/gold/layout.cc 2021-07-24 21:59:20.710787409 +0200 @@ -869,6 +869,7 @@ Layout::get_output_section(const char* n && (same_name->flags() & elfcpp::SHF_TLS) == 0) os = same_name; @@ -17,20 +17,3 @@ diff -rupN --no-dereference binutils-2.34/gold/layout.cc binutils-2.34-new/gold/ } if (os == NULL) -diff -rupN --no-dereference binutils-2.34/gold/object.cc binutils-2.34-new/gold/object.cc ---- binutils-2.34/gold/object.cc 2020-01-18 14:55:48.000000000 +0100 -+++ binutils-2.34-new/gold/object.cc 2020-12-18 02:57:21.402031218 +0100 -@@ -1656,6 +1656,13 @@ Sized_relobj_file::do_ - omit[i] = true; - } - -+ // Skip empty sections without flags. -+ if (!(shdr.get_sh_flags() & ~elfcpp::SHF_GROUP) -+ && !shdr.get_sh_size()) -+ { -+ omit[i] = true; -+ } -+ - bool discard = omit[i]; - if (!discard) - { diff --git a/binutils-gold-warn-unsupported.patch b/binutils-gold-warn-unsupported.patch new file mode 100644 index 0000000000000000000000000000000000000000..e5e4d9e9f64dcaf6d02386e57c4b0c1056635f4c --- /dev/null +++ b/binutils-gold-warn-unsupported.patch @@ -0,0 +1,67 @@ +diff -rupN --no-dereference binutils-2.37/bfd/config.bfd binutils-2.37-new/bfd/config.bfd +--- binutils-2.37/bfd/config.bfd 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/config.bfd 2021-07-24 21:59:24.914746464 +0200 +@@ -465,7 +465,7 @@ case "${targ}" in + ;; + + #ifdef BFD64 +- bpf-*-none) ++ bpf-*-none | bpf-*) + targ_defvec=bpf_elf64_le_vec + targ_selvecs=bpf_elf64_be_vec + targ_underscore=yes +@@ -1421,7 +1421,7 @@ case "${targ}" in + ;; + + *) +- echo 1>&2 "*** BFD does not support target ${targ}." ++ echo 1>&2 "*** BFD does not support target '${targ}'. Honest." + echo 1>&2 "*** Look in bfd/config.bfd for supported targets." + exit 1 + ;; +diff -rupN --no-dereference binutils-2.37/gold/configure binutils-2.37-new/gold/configure +--- binutils-2.37/gold/configure 2021-07-18 18:40:53.000000000 +0200 ++++ binutils-2.37-new/gold/configure 2021-07-24 21:59:24.917746435 +0200 +@@ -5184,7 +5184,8 @@ for targ in $target $canon_targets; do + . ${srcdir}/configure.tgt + + if test "$targ_obj" = "UNKNOWN"; then +- as_fn_error $? "\"unsupported target $targ\"" "$LINENO" 5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"unsupported target $targ\"" >&5 ++$as_echo "$as_me: WARNING: \"unsupported target $targ\"" >&2;} + else + targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" + if test "$targ_extra_obj" != ""; then +diff -rupN --no-dereference binutils-2.37/gold/configure.ac binutils-2.37-new/gold/configure.ac +--- binutils-2.37/gold/configure.ac 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/gold/configure.ac 2021-07-24 21:59:24.918746425 +0200 +@@ -181,7 +181,7 @@ for targ in $target $canon_targets; do + . ${srcdir}/configure.tgt + + if test "$targ_obj" = "UNKNOWN"; then +- AC_MSG_ERROR("unsupported target $targ") ++ AC_MSG_WARN("unsupported target $targ") + else + targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" + if test "$targ_extra_obj" != ""; then +diff -rupN --no-dereference binutils-2.37/ld/configure.tgt binutils-2.37-new/ld/configure.tgt +--- binutils-2.37/ld/configure.tgt 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/configure.tgt 2021-07-24 21:59:24.919746416 +0200 +@@ -215,7 +215,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi + targ_extra_emuls="elf32bfin" + targ_extra_libpath=$targ_extra_emuls + ;; +-bpf-*-*) targ_emul=elf64bpf ++bpf-* | bpf-*-*) targ_emul=elf64bpf + ;; + cr16-*-elf*) targ_emul=elf32cr16 + ;; +@@ -1025,7 +1025,7 @@ z8k-*-coff) targ_emul=z8002 + targ_extra_ofiles= + ;; + *) +- echo 2>&1 "*** ld does not support target ${targ}" ++ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY" + echo 2>&1 "*** see ld/configure.tgt for supported targets" + exit 1 + diff --git a/binutils-2.22.52.0.4-no-config-h-check.patch b/binutils-no-config-h-check.patch similarity index 55% rename from binutils-2.22.52.0.4-no-config-h-check.patch rename to binutils-no-config-h-check.patch index e1d6ed445d34ced292ea3f867f4311d6a0116483..9a7bf1eb367e5e124fdd1c6cf386d77d9e2d4c50 100644 --- a/binutils-2.22.52.0.4-no-config-h-check.patch +++ b/binutils-no-config-h-check.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference binutils-2.34/bfd/bfd-in2.h binutils-2.34-new/bfd/bfd-in2.h ---- binutils-2.34/bfd/bfd-in2.h 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/bfd/bfd-in2.h 2020-12-18 02:57:14.328056141 +0100 +diff -rupN --no-dereference binutils-2.37/bfd/bfd-in2.h binutils-2.37-new/bfd/bfd-in2.h +--- binutils-2.37/bfd/bfd-in2.h 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/bfd-in2.h 2021-07-24 21:59:03.850951615 +0200 @@ -30,11 +30,6 @@ #ifndef __BFD_H_SEEN__ #define __BFD_H_SEEN__ @@ -13,9 +13,9 @@ diff -rupN --no-dereference binutils-2.34/bfd/bfd-in2.h binutils-2.34-new/bfd/bf #ifdef __cplusplus extern "C" { #endif -diff -rupN --no-dereference binutils-2.34/bfd/bfd-in.h binutils-2.34-new/bfd/bfd-in.h ---- binutils-2.34/bfd/bfd-in.h 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/bfd/bfd-in.h 2020-12-18 02:57:14.329056138 +0100 +diff -rupN --no-dereference binutils-2.37/bfd/bfd-in.h binutils-2.37-new/bfd/bfd-in.h +--- binutils-2.37/bfd/bfd-in.h 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/bfd-in.h 2021-07-24 21:59:03.851951606 +0200 @@ -23,11 +23,6 @@ #ifndef __BFD_H_SEEN__ #define __BFD_H_SEEN__ diff --git a/binutils-readelf-compression-header-size.patch b/binutils-readelf-compression-header-size.patch deleted file mode 100644 index 6ad24a10ffbb56e53dd6fafab6ea4660d020ccaa..0000000000000000000000000000000000000000 --- a/binutils-readelf-compression-header-size.patch +++ /dev/null @@ -1,126 +0,0 @@ -diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/binutils/readelf.c ---- binutils-2.34/binutils/readelf.c 2020-12-18 02:57:17.359045461 +0100 -+++ binutils-2.34-new/binutils/readelf.c 2020-12-18 02:57:22.432027590 +0100 -@@ -6714,15 +6714,18 @@ process_section_headers (Filedata * file - { - Elf_Internal_Chdr chdr; - -- (void) get_compression_header (&chdr, buf, sizeof (buf)); -- -- if (chdr.ch_type == ELFCOMPRESS_ZLIB) -- printf (" ZLIB, "); -+ if (get_compression_header (&chdr, buf, sizeof (buf)) == 0) -+ printf (_(" []\n")); - else -- printf (_(" [: 0x%x], "), -- chdr.ch_type); -- print_vma (chdr.ch_size, LONG_HEX); -- printf (", %lu\n", (unsigned long) chdr.ch_addralign); -+ { -+ if (chdr.ch_type == ELFCOMPRESS_ZLIB) -+ printf (" ZLIB, "); -+ else -+ printf (_(" [: 0x%x], "), -+ chdr.ch_type); -+ print_vma (chdr.ch_size, LONG_HEX); -+ printf (", %lu\n", (unsigned long) chdr.ch_addralign); -+ } - } - } - } -@@ -13679,11 +13682,16 @@ dump_section_as_strings (Elf_Internal_Sh - = get_compression_header (& chdr, (unsigned char *) start, - num_bytes); - -+ if (compression_header_size == 0) -+ /* An error message will have already been generated -+ by get_compression_header. */ -+ goto error_out; -+ - if (chdr.ch_type != ELFCOMPRESS_ZLIB) - { - warn (_("section '%s' has unsupported compress type: %d\n"), - printable_section_name (filedata, section), chdr.ch_type); -- return FALSE; -+ goto error_out; - } - uncompressed_size = chdr.ch_size; - start += compression_header_size; -@@ -13715,7 +13723,7 @@ dump_section_as_strings (Elf_Internal_Sh - { - error (_("Unable to decompress section %s\n"), - printable_section_name (filedata, section)); -- return FALSE; -+ goto error_out; - } - } - else -@@ -13785,6 +13793,10 @@ dump_section_as_strings (Elf_Internal_Sh - - putchar ('\n'); - return TRUE; -+ -+ error_out: -+ free (real_start); -+ return FALSE; - } - - static bfd_boolean -@@ -13797,7 +13809,7 @@ dump_section_as_bytes (Elf_Internal_Shdr - bfd_size_type section_size; - bfd_vma addr; - unsigned char * data; -- unsigned char * real_start; -+ unsigned char * real_start = NULL; - unsigned char * start; - - real_start = start = (unsigned char *) get_section_contents (section, filedata); -@@ -13820,11 +13832,16 @@ dump_section_as_bytes (Elf_Internal_Shdr - unsigned int compression_header_size - = get_compression_header (& chdr, start, section_size); - -+ if (compression_header_size == 0) -+ /* An error message will have already been generated -+ by get_compression_header. */ -+ goto error_out; -+ - if (chdr.ch_type != ELFCOMPRESS_ZLIB) - { - warn (_("section '%s' has unsupported compress type: %d\n"), - printable_section_name (filedata, section), chdr.ch_type); -- return FALSE; -+ goto error_out; - } - uncompressed_size = chdr.ch_size; - start += compression_header_size; -@@ -13859,7 +13876,7 @@ dump_section_as_bytes (Elf_Internal_Shdr - error (_("Unable to decompress section %s\n"), - printable_section_name (filedata, section)); - /* FIXME: Print the section anyway ? */ -- return FALSE; -+ goto error_out; - } - } - else -@@ -13939,6 +13956,10 @@ dump_section_as_bytes (Elf_Internal_Shdr - - putchar ('\n'); - return TRUE; -+ -+ error_out: -+ free (real_start); -+ return FALSE; - } - - static ctf_sect_t * -@@ -14149,6 +14170,10 @@ load_specific_debug_section (enum dwarf_ - } - - compression_header_size = get_compression_header (&chdr, start, size); -+ if (compression_header_size == 0) -+ /* An error message will have already been generated -+ by get_compression_header. */ -+ return FALSE; - - if (chdr.ch_type != ELFCOMPRESS_ZLIB) - { diff --git a/binutils-readelf-other-sym-info.patch b/binutils-readelf-other-sym-info.patch index ef9f6eac6d2dda0a3ddc4f3b84abf4295ac15792..df2e3241eb9a645ec408c18b35e633a57a92157c 100644 --- a/binutils-readelf-other-sym-info.patch +++ b/binutils-readelf-other-sym-info.patch @@ -1,25 +1,25 @@ -diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/binutils/readelf.c ---- binutils-2.34/binutils/readelf.c 2020-12-18 02:57:16.348049023 +0100 -+++ binutils-2.34-new/binutils/readelf.c 2020-12-18 02:57:16.353049005 +0100 -@@ -11496,12 +11496,14 @@ print_dynamic_symbol (Filedata * filedat +diff -rupN --no-dereference binutils-2.37/binutils/readelf.c binutils-2.37-new/binutils/readelf.c +--- binutils-2.37/binutils/readelf.c 2021-07-24 21:59:08.033910876 +0200 ++++ binutils-2.37-new/binutils/readelf.c 2021-07-24 21:59:10.159890170 +0200 +@@ -12616,11 +12616,13 @@ print_dynamic_symbol (Filedata *filedata unsigned int vis = ELF_ST_VISIBILITY (psym->st_other); - printf (" %-7s", get_symbol_visibility (vis)); + printf (" %-7s", get_symbol_visibility (vis)); +#if 0 /* Check to see if any other bits in the st_other field are set. Note - displaying this information disrupts the layout of the - table being generated, but for the moment this case is very - rare. */ + table being generated, but for the moment this case is very rare. */ if (psym->st_other ^ vis) printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis)); +#endif } + printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx)); - printf (" %3.3s ", get_symbol_index_type (filedata, psym->st_shndx)); -@@ -11509,6 +11511,15 @@ print_dynamic_symbol (Filedata * filedat - print_symbol (25, GET_DYNAMIC_NAME (psym->st_name)); - else - printf (_(" "), psym->st_name); +@@ -12670,7 +12672,17 @@ print_dynamic_symbol (Filedata *filedata + version_string); + } + +- putchar ('\n'); +#if 1 + { + unsigned int vis = ELF_ST_VISIBILITY (psym->st_other); @@ -29,36 +29,8 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b + printf (" \t[%s]", get_symbol_other (filedata, psym->st_other ^ vis)); + } +#endif - putchar ('\n'); - } - -@@ -12043,11 +12054,13 @@ process_symbol_table (Filedata * filedat - unsigned int vis = ELF_ST_VISIBILITY (psym->st_other); - - printf (" %-7s", get_symbol_visibility (vis)); -+#if 0 - /* Check to see if any other bits in the st_other field are set. - Note - displaying this information disrupts the layout of the - table being generated, but for the moment this case is very rare. */ - if (psym->st_other ^ vis) - printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis)); -+#endif - } - printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx)); - print_symbol (25, psym->st_name < strtab_size -@@ -12066,7 +12079,15 @@ process_symbol_table (Filedata * filedat - printf (sym_info == symbol_hidden ? "@%s" : "@@%s", - version_string); - } -+#if 1 -+ { -+ unsigned int vis = ELF_ST_VISIBILITY (psym->st_other); - -+ /* Check to see if any other bits in the st_other field are set. */ -+ if (psym->st_other ^ vis) -+ printf (" \t[%s] ", get_symbol_other (filedata, psym->st_other ^ vis)); -+ } -+#endif - putchar ('\n'); ++ ++ putchar ('\n'); - if (ELF_ST_BIND (psym->st_info) == STB_LOCAL + if (ELF_ST_BIND (psym->st_info) == STB_LOCAL + && section != NULL diff --git a/binutils-revert-PLT-elision.patch b/binutils-revert-PLT-elision.patch new file mode 100644 index 0000000000000000000000000000000000000000..b6d62e2e6195e924ccba1790a3f08a1926fb7652 --- /dev/null +++ b/binutils-revert-PLT-elision.patch @@ -0,0 +1,245 @@ +diff -rupN --no-dereference binutils-2.37/bfd/elfxx-x86.c binutils-2.37-new/bfd/elfxx-x86.c +--- binutils-2.37/bfd/elfxx-x86.c 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/elfxx-x86.c 2021-07-24 21:59:08.085910370 +0200 +@@ -107,7 +107,7 @@ elf_x86_allocate_dynrelocs (struct elf_l + plt_entry_size = htab->plt.plt_entry_size; + + resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh); +- ++#if 0 + /* We can't use the GOT PLT if pointer equality is needed since + finish_dynamic_symbol won't clear symbol value and the dynamic + linker won't update the GOT slot. We will get into an infinite +@@ -125,7 +125,7 @@ elf_x86_allocate_dynrelocs (struct elf_l + /* Use the GOT PLT. */ + eh->plt_got.refcount = 1; + } +- ++#endif + /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it + here if it is defined and referenced in a non-shared object. */ + if (h->type == STT_GNU_IFUNC +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pltgot-1.d binutils-2.37-new/ld/testsuite/ld-i386/pltgot-1.d +--- binutils-2.37/ld/testsuite/ld-i386/pltgot-1.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/pltgot-1.d 2021-07-24 21:59:08.086910360 +0200 +@@ -2,6 +2,7 @@ + #readelf: -S --wide + #as: --32 + ++#pass + #... + +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pltgot-2.d binutils-2.37-new/ld/testsuite/ld-i386/pltgot-2.d +--- binutils-2.37/ld/testsuite/ld-i386/pltgot-2.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/pltgot-2.d 2021-07-24 21:59:08.086910360 +0200 +@@ -3,7 +3,6 @@ + #readelf: -d --wide + #as: --32 + +-#failif + #... + +0x[0-9a-f]+ +\(PLTREL.* + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2d.d +--- binutils-2.37/ld/testsuite/ld-i386/pr19636-2d.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2d.d 2021-07-24 21:59:08.086910360 +0200 +@@ -8,7 +8,7 @@ Relocation section '\.rel\.dyn' at offse + [0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func +- ++#... + Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2e.d +--- binutils-2.37/ld/testsuite/ld-i386/pr19636-2e.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2e.d 2021-07-24 21:59:08.086910360 +0200 +@@ -8,7 +8,7 @@ Relocation section '\.rel\.dyn' at offse + [0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func +- ++#... + Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pr20830.d binutils-2.37-new/ld/testsuite/ld-i386/pr20830.d +--- binutils-2.37/ld/testsuite/ld-i386/pr20830.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/pr20830.d 2021-07-24 21:59:08.087910350 +0200 +@@ -19,7 +19,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r8 \(eip\) at cfa-4 + DW_CFA_nop + DW_CFA_nop +- ++#pass + 0+18 00000010 0000001c FDE cie=00000000 pc=00000128..00000133 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-1.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pltgot-1.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-1.d 2021-07-24 21:59:08.087910350 +0200 +@@ -2,8 +2,4 @@ + #readelf: -S --wide + #as: --64 + +-#... +- +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* +-#... +- +\[ *[0-9]+\] \.got\.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+18 +.* + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-2.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pltgot-2.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-2.d 2021-07-24 21:59:08.087910350 +0200 +@@ -3,7 +3,6 @@ + #readelf: -d --wide + #as: --64 + +-#failif + #... + +0x[0-9a-f]+ +\(PLTREL.* + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.37-new/ld/testsuite/ld-x86-64/plt-main.rd +--- binutils-2.37/ld/testsuite/ld-x86-64/plt-main.rd 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/plt-main.rd 2021-07-24 21:59:08.087910350 +0200 +@@ -1,4 +1,3 @@ +-#failif + #... + [0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0 + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830a.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a.d 2021-07-24 21:59:08.088910340 +0200 +@@ -20,6 +20,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a-now.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830a-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a-now.d 2021-07-24 21:59:08.088910340 +0200 +@@ -20,6 +20,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830b.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b.d 2021-07-24 21:59:08.088910340 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b-now.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830b-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b-now.d 2021-07-24 21:59:08.088910340 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038a.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038a.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a.d 2021-07-24 21:59:08.089910331 +0200 +@@ -19,7 +19,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038a-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a-now.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038a-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a-now.d 2021-07-24 21:59:08.089910331 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038b.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038b.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b.d 2021-07-24 21:59:08.089910331 +0200 +@@ -19,6 +19,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038b-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b-now.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038b-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b-now.d 2021-07-24 21:59:08.089910331 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038c.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038c.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c.d 2021-07-24 21:59:08.089910331 +0200 +@@ -19,7 +19,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038c-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c-now.d +--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038c-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c-now.d 2021-07-24 21:59:08.090910321 +0200 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231 + DW_CFA_nop + DW_CFA_nop +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.37-new/ld/testsuite/ld-x86-64/tlspic2.rd +--- binutils-2.37/ld/testsuite/ld-x86-64/tlspic2.rd 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/tlspic2.rd 2021-07-24 21:59:08.090910321 +0200 +@@ -14,6 +14,7 @@ Section Headers: + +\[[ 0-9]+\] .dynsym +.* + +\[[ 0-9]+\] .dynstr +.* + +\[[ 0-9]+\] .rela.dyn +.* ++#pass + +\[[ 0-9]+\] .plt +.* + +\[[ 0-9]+\] .plt.got +.* + +\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+31a 00 +AX +0 +0 4096 diff --git a/binutils-special-sections-in-groups.patch b/binutils-special-sections-in-groups.patch index a90203a453218bb62de7e0991f04c1b63b5eaaac..9ecb4553ffee54f8ce53831f257fb3e56c1f1512 100644 --- a/binutils-special-sections-in-groups.patch +++ b/binutils-special-sections-in-groups.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference binutils-2.34/bfd/elf.c binutils-2.34-new/bfd/elf.c ---- binutils-2.34/bfd/elf.c 2020-01-30 08:15:56.000000000 +0100 -+++ binutils-2.34-new/bfd/elf.c 2020-12-18 02:57:19.376038355 +0100 -@@ -838,7 +838,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd +diff -rupN --no-dereference binutils-2.37/bfd/elf.c binutils-2.37-new/bfd/elf.c +--- binutils-2.37/bfd/elf.c 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/elf.c 2021-07-24 21:59:16.679826669 +0200 +@@ -824,7 +824,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd } } @@ -16,7 +16,7 @@ diff -rupN --no-dereference binutils-2.34/bfd/elf.c binutils-2.34-new/bfd/elf.c { /* xgettext:c-format */ _bfd_error_handler (_("%pB: no group info for section '%pA'"), -@@ -944,7 +950,8 @@ _bfd_elf_setup_sections (bfd *abfd) +@@ -927,7 +933,8 @@ _bfd_elf_setup_sections (bfd *abfd) else if (idx->shdr->bfd_section) elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section; else if (idx->shdr->sh_type != SHT_RELA diff --git a/binutils-testsuite-fixes.patch b/binutils-testsuite-fixes.patch new file mode 100644 index 0000000000000000000000000000000000000000..15cb2c73542bbf43ee10416fb4b9f9cd9baa7702 --- /dev/null +++ b/binutils-testsuite-fixes.patch @@ -0,0 +1,865 @@ +diff -rupN --no-dereference binutils-2.37/gold/main.cc binutils-2.37-new/gold/main.cc +--- binutils-2.37/gold/main.cc 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/gold/main.cc 2021-07-24 21:59:28.964707019 +0200 +@@ -290,16 +290,6 @@ main(int argc, char** argv) + elapsed.sys / 1000, (elapsed.sys % 1000) * 1000, + elapsed.wall / 1000, (elapsed.wall % 1000) * 1000); + +-#if defined(HAVE_MALLINFO2) +- struct mallinfo2 m = mallinfo2(); +- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), +- program_name, static_cast(m.arena)); +-#elif defined(HAVE_MALLINFO) +- struct mallinfo m = mallinfo(); +- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), +- program_name, static_cast(m.arena)); +-#endif +- + File_read::print_stats(); + Archive::print_stats(); + Lib_group::print_stats(); +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d binutils-2.37-new/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d +--- binutils-2.37/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-24 21:59:28.964707019 +0200 +@@ -11,7 +11,7 @@ + 0x.+ \(PLTRELSZ\) \s+.+ \(bytes\) + 0x.+ \(PLTREL\) \s+RELA + 0x.+ \(JMPREL\) \s+0x.+ +- 0x.+ \(BIND_NOW\) \s+ ++ 0x.+ \(FLAGS\) \s+BIND_NOW + 0x.+ \(FLAGS_1\) \s+ Flags: NOW + 0x.+ \(NULL\) \s+ 0x0 + +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-now.d binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-now.d +--- binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-24 21:59:28.965707009 +0200 +@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] ++ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] + 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] + 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc + + Symbol table '\.symtab' contains 35 entries: +@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr + 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.* + 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.* + 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* ++ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x + 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .* ++ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .* + 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x + 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* + 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc + 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def + 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x + 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .* + 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .* + 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-r.d binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-r.d +--- binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-24 21:59:28.965707009 +0200 +@@ -37,24 +37,24 @@ Symbol table '\.symtab' contains 26 entr + 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3.* + 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4.* + 4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT .* ++ 6: 0000000000000000 0 IFUNC LOCAL DEFAULT .* + 7: 0000000000000000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 8: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 9: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 \$x + 10: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 12: 0000000000000038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT .* ++ 12: 0000000000000038 0 IFUNC LOCAL DEFAULT .* + 13: 0000000000000038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 14: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 15: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 \$x + 16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN .* + 19: 0000000000000000 0 IFUNC GLOBAL HIDDEN 1 f_base_global_hidden_ifunc +- 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT .* + 21: 0000000000000000 0 NOTYPE GLOBAL HIDDEN 1 f_base_global_hidden_def +- 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN .* + 23: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* + 25: 0000000000000000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-shared.d +--- binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-24 21:59:28.978706882 +0200 +@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] ++ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] + 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] + 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc + + Symbol table '\.symtab' contains 35 entries: +@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr + 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.* + 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.* + 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* ++ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x + 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .* ++ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .* + 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x + 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* + 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc + 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def + 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x + 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .* + 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .* + 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/compress.exp binutils-2.37-new/ld/testsuite/ld-elf/compress.exp +--- binutils-2.37/ld/testsuite/ld-elf/compress.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-elf/compress.exp 2021-07-24 21:59:28.978706882 +0200 +@@ -167,8 +167,8 @@ if { [regexp_diff tmpdir/$test.out $srcd + + set test_name "Link with zlib compressed debug output 1" + set test normal +-send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +@@ -176,8 +176,8 @@ if { [lindex $got 0] != 0 || ![string ma + + set test_name "Link with zlib compressed debug output 2" + set test zlibnormal +-send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +@@ -203,8 +203,8 @@ if { [regexp_diff tmpdir/$test.out $srcd + + set test_name "Link with zlib-gnu compressed debug output 1" + set test gnunormal +-send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +@@ -230,8 +230,8 @@ if { [regexp_diff tmpdir/$test.out $srcd + + set test gabinormal + set test_name "Link with zlib-gabi compressed debug output 1" +-send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/pr26580-3.out binutils-2.37-new/ld/testsuite/ld-elf/pr26580-3.out +--- binutils-2.37/ld/testsuite/ld-elf/pr26580-3.out 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-elf/pr26580-3.out 2021-07-24 21:59:28.979706873 +0200 +@@ -1,2 +1,2 @@ + library not loaded +-alignment 1 ++alignment . +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/shared.exp binutils-2.37-new/ld/testsuite/ld-elf/shared.exp +--- binutils-2.37/ld/testsuite/ld-elf/shared.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-elf/shared.exp 2021-07-24 21:59:28.979706873 +0200 +@@ -1536,18 +1536,6 @@ if { [istarget *-*-linux*] + "pr22393-2-static" \ + "pass.out" \ + ] \ +- [list \ +- "Run pr21964-4" \ +- "" \ +- "" \ +- {pr21964-4.c} \ +- "pr21964-4" \ +- "pass.out" \ +- "" \ +- "" \ +- "" \ +- "-ldl" \ +- ] \ + ] + } + +@@ -1629,6 +1617,7 @@ if [istarget "sparc*-*-*"] { + if { ([istarget "*-*-linux*"] + || [istarget "*-*-nacl*"] + || [istarget "*-*-gnu*"]) ++ && ![istarget "aarch64*-*-*"] && ![istarget "arm*-*-*"] + && ![istarget "mips*-*-*"] } { + run_ld_link_tests [list \ + [list \ +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/tls.exp binutils-2.37-new/ld/testsuite/ld-elf/tls.exp +--- binutils-2.37/ld/testsuite/ld-elf/tls.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-elf/tls.exp 2021-07-24 21:59:28.979706873 +0200 +@@ -32,6 +32,9 @@ if { !([istarget *-*-linux*] + if { ![check_compiler_available] } { + return + } ++if { [istarget s390x*-*-*] } { ++ return ++} + + # This target requires extra GAS options when building PIC/PIE code. + set AFLAGS_PIC "" +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elfvsb/elfvsb.exp binutils-2.37-new/ld/testsuite/ld-elfvsb/elfvsb.exp +--- binutils-2.37/ld/testsuite/ld-elfvsb/elfvsb.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-elfvsb/elfvsb.exp 2021-07-24 21:59:28.980706863 +0200 +@@ -94,6 +94,10 @@ if { [istarget *-*-linux*] + } + } + ++if { [istarget i686*-*-*] } { ++ set support_protected "no" ++} ++ + # The test procedure. + proc visibility_test { visibility progname testname main sh1 sh2 dat args } { + global CC +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-gc/pr13683.d binutils-2.37-new/ld/testsuite/ld-gc/pr13683.d +--- binutils-2.37/ld/testsuite/ld-gc/pr13683.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-gc/pr13683.d 2021-07-24 21:59:28.980706863 +0200 +@@ -2,7 +2,7 @@ + #source: dummy.s + #ld: --gc-sections -e main --defsym foo=foo2 tmpdir/pr13683.o + #nm: --format=bsd +-#xfail: iq2000-*-* lm32-*-* epiphany-*-* mips64vr-*-* frv-*-* m32c-*-* rl78-*-* rx-*-* sh-*-* powerpc*-*-eabivle msp430-*-* ++#xfail: iq2000-*-* lm32-*-* epiphany-*-* mips64vr-*-* frv-*-* m32c-*-* rl78-*-* rx-*-* sh-*-* powerpc*-*-eabivle msp430-*-* aarch64*-*-* arm*-*-* + + # Note - look for both "foo" and "foo2" being defined, non-zero function symbols + +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-gc/pr19161.d binutils-2.37-new/ld/testsuite/ld-gc/pr19161.d +--- binutils-2.37/ld/testsuite/ld-gc/pr19161.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-gc/pr19161.d 2021-07-24 21:59:28.980706863 +0200 +@@ -2,7 +2,7 @@ + #source: dummy.s + #ld: --gc-sections -e main tmpdir/pr19161-1.o tmpdir/pr19161-2.o + #nm: --format=bsd +-#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-* ++#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-* aarch64*-*-* arm*-*-* + #xfail: mips64vr-*-* msp430-*-* powerpc*-*-eabivle rl78-*-* rx-*-* sh*-*-* + + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/i386.exp binutils-2.37-new/ld/testsuite/ld-i386/i386.exp +--- binutils-2.37/ld/testsuite/ld-i386/i386.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/i386.exp 2021-07-24 21:59:28.981706853 +0200 +@@ -1057,15 +1057,6 @@ if { [isnative] + "pr18900.out" \ + ] \ + [list \ +- "Run pr19031" \ +- "$NOPIE_LDFLAGS tmpdir/pr19031.so" \ +- "-Wa,-mx86-used-note=yes" \ +- { pr19031b.S pr19031c.c } \ +- "pr19031" \ +- "pr19031.out" \ +- "$NOPIE_CFLAGS" \ +- ] \ +- [list \ + "Run got1" \ + "$NOPIE_LDFLAGS tmpdir/got1d.so" \ + "-Wa,-mx86-used-note=yes" \ +@@ -1117,7 +1108,9 @@ if { [isnative] + ] \ + ] + +- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ++ if { ! [istarget i686*-*-*] } { ++ undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ++ } + undefined_weak "-fPIE" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "-pie" + undefined_weak "-fPIE" "-z nodynamic-undefined-weak $NOPIE_LDFLAGS" +@@ -1181,7 +1174,7 @@ if { [isnative] + ] \ + ] + +- if { [istarget "i?86-*-linux*"] } { ++ if { [istarget "i?86-*-linux*"] && ! [istarget i686*-*-*] } { + run_cc_link_tests [list \ + [list \ + "Build pr21168.so with -z ibtplt" \ +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/plt-main.rd binutils-2.37-new/ld/testsuite/ld-i386/plt-main.rd +--- binutils-2.37/ld/testsuite/ld-i386/plt-main.rd 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/plt-main.rd 2021-07-24 21:59:28.981706853 +0200 +@@ -1,4 +1 @@ +-#failif +-#... +-[0-9a-f ]+R_386_JUMP_SLOT +0+ +bar + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/plt-pie-ibt.dd binutils-2.37-new/ld/testsuite/ld-i386/plt-pie-ibt.dd +--- binutils-2.37/ld/testsuite/ld-i386/plt-pie-ibt.dd 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-i386/plt-pie-ibt.dd 2021-07-24 21:59:28.981706853 +0200 +@@ -1,7 +1,2 @@ + #... +-Disassembly of section .plt.got: +- +-[a-f0-9]+ <[_a-z]+@plt>: +-[ ]*[a-f0-9]+: f3 0f 1e fb endbr32 +-[ ]*[a-f0-9]+: ff a3 .. .. .. .. jmp +\*\-0x[a-f0-9]+\(%ebx\) + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp binutils-2.37-new/ld/testsuite/ld-ifunc/ifunc.exp +--- binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-24 21:59:28.981706853 +0200 +@@ -39,6 +39,8 @@ if { ![is_elf_format] || ![supports_gnu_ + || [istarget nds32*-*-*] + || [istarget nios2-*-*] + || [istarget or1k-*-*] ++ || [istarget powerpc*-*-*] ++ || [istarget ppc*-*-*] + || [istarget score*-*-*] + || [istarget sh*-*-*] + || [istarget tic6x-*-*] +@@ -664,6 +666,11 @@ run_cc_link_tests [list \ + ] \ + ] + ++if { [isnative] ++ && !([istarget "powerpc-*-*"] ++ || [istarget "aarch64*-*-*"] || [istarget "arm*-*-*"] ++ || [istarget "sparc*-*-*"] ++ || [istarget "riscv*-*-*"]) } { + run_ld_link_exec_tests [list \ + [list \ + "Run pr18808" \ +@@ -714,6 +721,7 @@ run_ld_link_exec_tests [list \ + "pr18841.out" \ + ] \ + ] ++} + + # The pr23169 testcase is not valid. In general, you can't call ifunc + # resolvers in another binary unless you know what you're doing. In +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d 2021-07-24 21:59:20.653787965 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d 2021-07-24 21:59:28.982706843 +0200 +@@ -32,7 +32,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/libtext.a \[@.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d 2021-07-24 21:59:20.653787965 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d 2021-07-24 21:59:28.982706843 +0200 +@@ -35,9 +35,9 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?text' Resolution: LDPR_PREVAILING_DE.* + #... + hook called: cleanup. + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-12.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-12.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-12.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-12.d 2021-07-24 21:59:28.982706843 +0200 +@@ -1,6 +1,6 @@ + #... +-.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DEF +-.*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY +-.*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY +-.*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY ++.*: symbol `.*unc' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.* ++.*: symbol `.*unc1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY ++.*: symbol `.*unc2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY ++.*: symbol `.*unc3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d 2021-07-24 21:59:20.654787955 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d 2021-07-24 21:59:28.982706843 +0200 +@@ -30,7 +30,7 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d 2021-07-24 21:59:20.654787955 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d 2021-07-24 21:59:28.983706834 +0200 +@@ -31,7 +31,7 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d 2021-07-24 21:59:20.654787955 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d 2021-07-24 21:59:28.983706834 +0200 +@@ -32,7 +32,7 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/libtext.a \[@.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d 2021-07-24 21:59:20.654787955 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d 2021-07-24 21:59:28.983706834 +0200 +@@ -35,9 +35,9 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?text' Resolution: LDPR_PREVAILING_DE.* + #... + hook called: cleanup. + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d 2021-07-24 21:59:20.657787926 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d 2021-07-24 21:59:28.983706834 +0200 +@@ -30,7 +30,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d +--- binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d 2021-07-24 21:59:20.657787926 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d 2021-07-24 21:59:28.983706834 +0200 +@@ -31,7 +31,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin.exp binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp +--- binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-24 21:59:20.657787926 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp 2021-07-24 21:59:28.984706824 +0200 +@@ -81,6 +81,7 @@ if { [istarget m681*-*-*] || [istarget m + # otherwise get FAILS due to _.frame + set CFLAGS "$CFLAGS -fomit-frame-pointer" + } ++ + # In order to define symbols in plugin options in the list of tests below, + # we need to know if the platform prepends an underscore to C symbols, + # which we find out by compiling the test objects now. If there is any +@@ -119,7 +120,7 @@ if { $can_compile && !$failed_compile } + + # I do not know why, but the underscore prefix test is going + # wrong on ppc64le targets. So override it here. +-if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] } { ++if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] || [istarget *-*-*] } { + set _ "" + } + +@@ -137,6 +138,9 @@ if [is_pecoff_format] { + #otherwise relocs overflow to symbols defined on the command line + append libs " --image-base=0x10000000" + } ++if { [istarget aarch64*-*-*] || [istarget arm*-*-*] } { ++ append libs " --defsym __aeabi_unwind_cpp_pr0=0" ++} + + set plugin_tests [list \ + [list "load plugin" "-plugin $plugin_path \ +@@ -304,6 +308,7 @@ if { !$can_compile || $failed_compile } + run_ld_link_tests $plugin_tests + + if { [is_elf_format] \ ++ && ! [istarget ppc64*-*-*] && ! [istarget powerpc*-*-*] + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func1p.c tmpdir/func1p.o] \ + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func2i.c tmpdir/func2i.o] \ + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func3h.c tmpdir/func3h.o] } { +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/group1.sym binutils-2.37-new/ld/testsuite/ld-powerpc/group1.sym +--- binutils-2.37/ld/testsuite/ld-powerpc/group1.sym 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/group1.sym 2021-07-24 21:59:28.984706824 +0200 +@@ -1,3 +1 @@ +-#... +-.* 8 FUNC +GLOBAL DEFAULT \[: 4\] +1 foo + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/group3.sym binutils-2.37-new/ld/testsuite/ld-powerpc/group3.sym +--- binutils-2.37/ld/testsuite/ld-powerpc/group3.sym 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/group3.sym 2021-07-24 21:59:28.984706824 +0200 +@@ -1,3 +1 @@ +-#... +-.* 4 FUNC +GLOBAL DEFAULT \[: 1\] +1 foo + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/notoc3.d binutils-2.37-new/ld/testsuite/ld-powerpc/notoc3.d +--- binutils-2.37/ld/testsuite/ld-powerpc/notoc3.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/notoc3.d 2021-07-24 21:59:28.984706824 +0200 +@@ -58,7 +58,7 @@ Disassembly of section \.text: + + .* : + .*: (02 10 40 3c|3c 40 10 02) lis r2,4098 +-.*: (00 90 42 38|38 42 90 00) addi r2,r2,-28672 ++.*:.* + .*: (.. .. ff 4b|4b ff .. ..) bl .* <.*\.long_branch\.f1> + .*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\) + .*: (.. .. ff 4b|4b ff .. ..) bl .* +@@ -73,7 +73,7 @@ Disassembly of section \.text: + + .* : + .*: (02 10 40 3c|3c 40 10 02) lis r2,4098 +-.*: (00 90 42 38|38 42 90 00) addi r2,r2,-28672 ++.*:.* + .*: (.. .. ff 4b|4b ff .. ..) bl .* + .*: (00 00 00 60|60 00 00 00) nop + .*: (.. .. ff 4b|4b ff .. ..) bl .* <.*\.long_branch\.f1> +@@ -92,6 +92,6 @@ Disassembly of section \.text\.ext: + + 8000000000000000 : + 8000000000000000: (02 10 40 3c|3c 40 10 02) lis r2,4098 +-8000000000000004: (00 90 42 38|38 42 90 00) addi r2,r2,-28672 ++8000000000000004:.* + 8000000000000008: (00 00 00 60|60 00 00 00) nop + 800000000000000c: (20 00 80 4e|4e 80 00 20) blr +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d binutils-2.37-new/ld/testsuite/ld-powerpc/pr23937.d +--- binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/pr23937.d 2021-07-24 21:59:28.985706814 +0200 +@@ -5,6 +5,4 @@ + + #... + .* R_PPC64_IRELATIVE +10000180 +-#... +-.*: 0+10000180 +20 IFUNC +LOCAL +DEFAULT .* magic + #pass +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32no.r binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32no.r +--- binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32no.r 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32no.r 2021-07-24 21:59:28.985706814 +0200 +@@ -22,6 +22,7 @@ Section Headers: + +\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4 + +\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000038 04 +WA +0 +0 +4 + +\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4 ++#pass + +\[[ 0-9]+\] \.symtab +SYMTAB +.* + +\[[ 0-9]+\] \.strtab +STRTAB +.* + +\[[ 0-9]+\] \.shstrtab +STRTAB +.* +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32.r binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32.r +--- binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32.r 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32.r 2021-07-24 21:59:28.986706805 +0200 +@@ -22,7 +22,8 @@ Section Headers: + +\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4 + +\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000018 04 +WA +0 +0 +4 + +\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4 +- +\[[ 0-9]+\] \.symtab +SYMTAB +.* ++#pass +++\[[ 0-9]+\] \.symtab +SYMTAB +.* + +\[[ 0-9]+\] \.strtab +STRTAB +.* + +\[[ 0-9]+\] \.shstrtab +STRTAB +.* + #... +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/tlsso32.r binutils-2.37-new/ld/testsuite/ld-powerpc/tlsso32.r +--- binutils-2.37/ld/testsuite/ld-powerpc/tlsso32.r 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-powerpc/tlsso32.r 2021-07-24 21:59:28.986706805 +0200 +@@ -20,6 +20,7 @@ Section Headers: + +\[[ 0-9]+\] \.dynamic +DYNAMIC .* 08 +WA +3 +0 +4 + +\[[ 0-9]+\] \.got +PROGBITS .* 0+40 04 +WA +0 +0 +4 + +\[[ 0-9]+\] \.plt +PROGBITS .* 0+4 00 +WA +0 +0 +4 ++#pass + +\[[ 0-9]+\] \.symtab +.* + +\[[ 0-9]+\] \.strtab +.* + +\[[ 0-9]+\] \.shstrtab +.* +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-scripts/crossref.exp binutils-2.37-new/ld/testsuite/ld-scripts/crossref.exp +--- binutils-2.37/ld/testsuite/ld-scripts/crossref.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-scripts/crossref.exp 2021-07-24 21:59:28.986706805 +0200 +@@ -147,6 +147,8 @@ set exec_output [prune_warnings $exec_ou + + regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + ++setup_xfail i686*-*-* ++ + if [string match "" $exec_output] then { + pass $test3 + } else { +@@ -187,6 +189,8 @@ set exec_output [prune_warnings $exec_ou + + regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + ++setup_xfail i686*-*-* ++ + if [string match "" $exec_output] then { + pass $test6 + } else { +@@ -199,6 +203,8 @@ set exec_output [prune_warnings $exec_ou + + regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + ++setup_xfail i686*-*-* ++ + if [string match "" $exec_output] then { + fail $test7 + } else { +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-shared/shared.exp binutils-2.37-new/ld/testsuite/ld-shared/shared.exp +--- binutils-2.37/ld/testsuite/ld-shared/shared.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-shared/shared.exp 2021-07-24 21:59:28.987706795 +0200 +@@ -36,9 +36,6 @@ if { ![istarget hppa*64*-*-hpux*] \ + && ![istarget hppa*-*-linux*] \ + && ![istarget i?86-*-sysv4*] \ + && ![istarget i?86-*-unixware] \ +- && ![istarget i?86-*-elf*] \ +- && ![istarget i?86-*-linux*] \ +- && ![istarget i?86-*-gnu*] \ + && ![istarget *-*-nacl*] \ + && ![istarget ia64-*-elf*] \ + && ![istarget ia64-*-linux*] \ +diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.37-new/ld/testsuite/ld-x86-64/x86-64.exp +--- binutils-2.37/ld/testsuite/ld-x86-64/x86-64.exp 2021-07-08 13:37:20.000000000 +0200 ++++ binutils-2.37-new/ld/testsuite/ld-x86-64/x86-64.exp 2021-07-24 21:59:28.987706795 +0200 +@@ -1466,22 +1466,6 @@ if { [isnative] && [check_compiler_avail + } else { + run_cc_link_tests [list \ + [list \ +- "Build pr22001-1b" \ +- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \ +- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ +- { pr22001-1c.c } \ +- {{error_output "pr22001-1b.err"}} \ +- "pr22001-1b" \ +- ] \ +- [list \ +- "Build pr21997-1b" \ +- "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \ +- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ +- { pr21997-1c.c } \ +- {{error_output "pr21997-1b.err"}} \ +- "pr21997-1b" \ +- ] \ +- [list \ + "Build lam-u48.so" \ + "-shared -Wl,-z,lam-u48" \ + "" \ +@@ -1813,49 +1797,6 @@ if { [isnative] && [check_compiler_avail + if { [istarget "x86_64-*-linux*"] \ + && ![istarget "x86_64-*-linux*-gnux32"]} { + +- run_cc_link_tests [list \ +- [list \ +- "Build plt-main with -z bndplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-bnd" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z bndplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-pie-bnd" \ +- ] \ +- [list \ +- "Build plt-main with -z bndplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-bnd-now" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z bndplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-pie-bnd-now" \ +- ] \ +- ] +- + run_ld_link_exec_tests [list \ + [list \ + "Run plt-main with -z bndplt" \ +@@ -1940,66 +1881,6 @@ if { [isnative] && [check_compiler_avail + set pltdump {{objdump {-drw} plt-main-ibt.dd}} + set pltsecdump {{readelf {-SW} plt-main-ibt-now.rd} {objdump {-drw} plt-main-ibt.dd}} + } +- run_cc_link_tests [list \ +- [list \ +- "Build plt-main with -z ibtplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltdump \ +- "plt-main-ibt" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z ibtplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltdump \ +- "plt-main-pie-ibt" \ +- ] \ +- [list \ +- "Build plt-main with -z ibtplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltsecdump \ +- "plt-main-ibt-now" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z ibtplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltsecdump \ +- "plt-main-pie-ibt-now" \ +- ] \ +- [list \ +- "Build libibtplt-lib.so with -z ibtplt" \ +- "-shared -z ibtplt \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \ +- $pltdump \ +- "libibtplt-lib.so" \ +- ] \ +- [list \ +- "Build libibtplt--now-lib.so with -z ibtplt -z now" \ +- "-shared -z ibtplt -z now \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \ +- $pltdump \ +- "libibtplt-now-lib.so" \ +- ] \ +- ] + + run_ld_link_exec_tests [list \ + [list \ +@@ -2044,24 +1925,6 @@ if { [isnative] && [check_compiler_avail + "plt-main.out" \ + "-fPIC" \ + ] \ +- [list \ +- "Run plt-main with libibtplt-lib.so -z ibtplt" \ +- "-Wl,--no-as-needed,-z,ibtplt tmpdir/libibtplt-lib.so \ +- tmpdir/libplt-lib.so" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- "plt-main-ibt-lib" \ +- "plt-main.out" \ +- ] \ +- [list \ +- "Run plt-main with libibtplt-lib.so -z ibtplt -z now" \ +- "-Wl,--no-as-needed,-z,ibtplt,-z,now \ +- tmpdir/libibtplt-now-lib.so tmpdir/libplt-lib.so" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- "plt-main-ibt-now-lib" \ +- "plt-main.out" \ +- ] \ + ] + + if { [check_ifunc_attribute_available] } { +@@ -2088,7 +1951,6 @@ if { [isnative] && [check_compiler_avail + } + } + +- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "" + undefined_weak "-fPIE" "-pie" + undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak" diff --git a/binutils-update-autoconf-version-to-2.71.patch b/binutils-update-autoconf-version-to-2.71.patch deleted file mode 100644 index 34bbf584a5aebb2660fdfb2ff40f808254df6388..0000000000000000000000000000000000000000 --- a/binutils-update-autoconf-version-to-2.71.patch +++ /dev/null @@ -1,834 +0,0 @@ -From f09382330535adbc565b49ed1844cfeaeadb8b7c Mon Sep 17 00:00:00 2001 -From: yinhongchang -Date: Sun, 4 Feb 2024 15:56:46 +0800 -Subject: [PATCH] binutils update autoconf version to 2.71 - ---- - README-maintainer-mode | 2 +- - bfd/aclocal.m4 | 4 ++-- - bfd/configure | 10 +++++----- - binutils/aclocal.m4 | 4 ++-- - binutils/configure | 10 +++++----- - config/ChangeLog | 2 +- - config/override.m4 | 2 +- - configure | 10 +++++----- - etc/configure | 10 +++++----- - gas/aclocal.m4 | 4 ++-- - gas/configure | 10 +++++----- - gold/aclocal.m4 | 4 ++-- - gold/configure | 10 +++++----- - gprof/aclocal.m4 | 4 ++-- - gprof/configure | 10 +++++----- - intl/configure | 10 +++++----- - ld/aclocal.m4 | 4 ++-- - ld/configure | 10 +++++----- - libctf/aclocal.m4 | 4 ++-- - libctf/configure | 10 +++++----- - libiberty/configure | 10 +++++----- - opcodes/aclocal.m4 | 4 ++-- - opcodes/configure | 10 +++++----- - zlib/aclocal.m4 | 4 ++-- - zlib/configure | 10 +++++----- - 25 files changed, 86 insertions(+), 86 deletions(-) - -diff --git a/README-maintainer-mode b/README-maintainer-mode -index 54c370db..bc0c520d 100644 ---- a/README-maintainer-mode -+++ b/README-maintainer-mode -@@ -11,7 +11,7 @@ find the sources for these in the respective upstream directories: - ftp://ftp.gnu.org/gnu/gettext - - The required versions of the tools for this tree are -- autoconf 2.69 -+ autoconf 2.71 - automake 1.15.1 - libtool 2.2.6 - gettext 0.14.5 -diff --git a/bfd/aclocal.m4 b/bfd/aclocal.m4 -index 4a6a47ca..f55d3eb2 100644 ---- a/bfd/aclocal.m4 -+++ b/bfd/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/bfd/configure b/bfd/configure -index 9cba0719..fa362606 100755 ---- a/bfd/configure -+++ b/bfd/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for bfd 2.34. -+# Generated by GNU Autoconf 2.71 for bfd 2.34. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1590,7 +1590,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - bfd configure 2.34 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -2238,7 +2238,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by bfd $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -16954,7 +16954,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by bfd $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -17020,7 +17020,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - bfd config.status 2.34 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/binutils/aclocal.m4 b/binutils/aclocal.m4 -index 4fa32fff..837e590f 100644 ---- a/binutils/aclocal.m4 -+++ b/binutils/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/binutils/configure b/binutils/configure -index 7880de68..c352d656 100755 ---- a/binutils/configure -+++ b/binutils/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for binutils 2.34. -+# Generated by GNU Autoconf 2.71 for binutils 2.34. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1575,7 +1575,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - binutils configure 2.34 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -2223,7 +2223,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by binutils $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -15802,7 +15802,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by binutils $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -15868,7 +15868,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - binutils config.status 2.34 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/config/ChangeLog b/config/ChangeLog -index 19fc6cd5..788ede19 100644 ---- a/config/ChangeLog -+++ b/config/ChangeLog -@@ -33,7 +33,7 @@ - - 2018-06-19 Simon Marchi - -- * override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69. -+ * override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.71. - - 2018-06-18 Simon Marchi - -diff --git a/config/override.m4 b/config/override.m4 -index d3e815bb..7b4a47ba 100644 ---- a/config/override.m4 -+++ b/config/override.m4 -@@ -29,7 +29,7 @@ m4_copy_force([_AC_PREREQ], [AC_PREREQ]) - - dnl Ensure exactly this Autoconf version is used - m4_ifndef([_GCC_AUTOCONF_VERSION], -- [m4_define([_GCC_AUTOCONF_VERSION], [2.69])]) -+ [m4_define([_GCC_AUTOCONF_VERSION], [2.71])]) - - dnl Test for the exact version when AC_INIT is expanded. - dnl This allows to update the tree in steps (for testing) -diff --git a/configure b/configure -index 9f4d0b91..407ae27a 100755 ---- a/configure -+++ b/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69. -+# Generated by GNU Autoconf 2.71. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1745,7 +1745,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - configure --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1976,7 +1976,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -15370,7 +15370,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -15423,7 +15423,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - config.status --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/etc/configure b/etc/configure -index 60a8fecc..9beca587 100755 ---- a/etc/configure -+++ b/etc/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69. -+# Generated by GNU Autoconf 2.71. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1309,7 +1309,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - configure --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1326,7 +1326,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -2362,7 +2362,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -2415,7 +2415,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - config.status --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/gas/aclocal.m4 b/gas/aclocal.m4 -index a9f9f5cc..2c63a648 100644 ---- a/gas/aclocal.m4 -+++ b/gas/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/gas/configure b/gas/configure -index 148af892..e13306b0 100755 ---- a/gas/configure -+++ b/gas/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for gas 2.34. -+# Generated by GNU Autoconf 2.71 for gas 2.34. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1577,7 +1577,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - gas configure 2.34 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -2042,7 +2042,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by gas $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -15706,7 +15706,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by gas $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -15772,7 +15772,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - gas config.status 2.34 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/gold/aclocal.m4 b/gold/aclocal.m4 -index 303c4cc5..1f183026 100644 ---- a/gold/aclocal.m4 -+++ b/gold/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/gold/configure b/gold/configure -index 474c69a1..c8418e4d 100755 ---- a/gold/configure -+++ b/gold/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for gold 0.1. -+# Generated by GNU Autoconf 2.71 for gold 0.1. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1598,7 +1598,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - gold configure 0.1 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -2330,7 +2330,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by gold $as_me 0.1, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -10851,7 +10851,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by gold $as_me 0.1, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -10917,7 +10917,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - gold config.status 0.1 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/gprof/aclocal.m4 b/gprof/aclocal.m4 -index 957655a8..92a3626e 100644 ---- a/gprof/aclocal.m4 -+++ b/gprof/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/gprof/configure b/gprof/configure -index 727cd725..f09af2f1 100755 ---- a/gprof/configure -+++ b/gprof/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for gprof 2.34. -+# Generated by GNU Autoconf 2.71 for gprof 2.34. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1520,7 +1520,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - gprof configure 2.34 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1885,7 +1885,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by gprof $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -13087,7 +13087,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by gprof $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -13153,7 +13153,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - gprof config.status 2.34 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/intl/configure b/intl/configure -index 2f359931..412498b3 100755 ---- a/intl/configure -+++ b/intl/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69. -+# Generated by GNU Autoconf 2.71. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1434,7 +1434,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - configure --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1853,7 +1853,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -7266,7 +7266,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -7332,7 +7332,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - config.status --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/ld/aclocal.m4 b/ld/aclocal.m4 -index 7df8bf68..4c81116c 100644 ---- a/ld/aclocal.m4 -+++ b/ld/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/ld/configure b/ld/configure -index 27b43415..1b66413c 100755 ---- a/ld/configure -+++ b/ld/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for ld 2.34. -+# Generated by GNU Autoconf 2.71 for ld 2.34. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1602,7 +1602,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - ld configure 2.34 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -2317,7 +2317,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by ld $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -18255,7 +18255,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by ld $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -18321,7 +18321,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - ld config.status 2.34 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/libctf/aclocal.m4 b/libctf/aclocal.m4 -index 15d96cd6..9a3441a1 100644 ---- a/libctf/aclocal.m4 -+++ b/libctf/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/libctf/configure b/libctf/configure -index e5493b31..5d2f3623 100755 ---- a/libctf/configure -+++ b/libctf/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for libctf library 1.2.0-pre. -+# Generated by GNU Autoconf 2.71 for libctf library 1.2.0-pre. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1515,7 +1515,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - libctf library configure 1.2.0-pre --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1926,7 +1926,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by libctf library $as_me 1.2.0-pre, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -13772,7 +13772,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by libctf library $as_me 1.2.0-pre, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -13838,7 +13838,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - libctf library config.status 1.2.0-pre --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/libiberty/configure b/libiberty/configure -index 7a34dabe..80230b0a 100755 ---- a/libiberty/configure -+++ b/libiberty/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69. -+# Generated by GNU Autoconf 2.71. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1423,7 +1423,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - configure --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -2103,7 +2103,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -7983,7 +7983,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by $as_me, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -8049,7 +8049,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - config.status --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/opcodes/aclocal.m4 b/opcodes/aclocal.m4 -index 36b13275..9b42574b 100644 ---- a/opcodes/aclocal.m4 -+++ b/opcodes/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/opcodes/configure b/opcodes/configure -index 6bae87d2..87084d18 100755 ---- a/opcodes/configure -+++ b/opcodes/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for opcodes 2.34. -+# Generated by GNU Autoconf 2.71 for opcodes 2.34. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1540,7 +1540,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - opcodes configure 2.34 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1951,7 +1951,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by opcodes $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -13534,7 +13534,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by opcodes $as_me 2.34, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -13600,7 +13600,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - opcodes config.status 2.34 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. -diff --git a/zlib/aclocal.m4 b/zlib/aclocal.m4 -index e5eed57b..fde016f6 100644 ---- a/zlib/aclocal.m4 -+++ b/zlib/aclocal.m4 -@@ -14,8 +14,8 @@ - m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, --[m4_warning([this file was generated for autoconf 2.69. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -+[m4_warning([this file was generated for autoconf 2.71. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -diff --git a/zlib/configure b/zlib/configure -index 041cbdbf..67f6cc55 100755 ---- a/zlib/configure -+++ b/zlib/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for zlib 1.1.4. -+# Generated by GNU Autoconf 2.71 for zlib 1.1.4. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -1506,7 +1506,7 @@ test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF - zlib configure 1.1.4 --generated by GNU Autoconf 2.69 -+generated by GNU Autoconf 2.71 - - Copyright (C) 2012 Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation -@@ -1874,7 +1874,7 @@ This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - - It was created by zlib $as_me 1.1.4, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - $ $0 $@ - -@@ -12051,7 +12051,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # values after options handling. - ac_log=" - This file was extended by zlib $as_me 1.1.4, which was --generated by GNU Autoconf 2.69. Invocation command line was -+generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -12108,7 +12108,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ - zlib config.status 1.1.4 --configured by $0, generated by GNU Autoconf 2.69, -+configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - - Copyright (C) 2012 Free Software Foundation, Inc. --- -2.27.0 - diff --git a/binutils-use-long-long.patch b/binutils-use-long-long.patch new file mode 100644 index 0000000000000000000000000000000000000000..8ac8f852d0d4d58030112d3e58671cfbc040c948 --- /dev/null +++ b/binutils-use-long-long.patch @@ -0,0 +1,38 @@ +diff -rupN --no-dereference binutils-2.37/bfd/configure binutils-2.37-new/bfd/configure +--- binutils-2.37/bfd/configure 2021-07-18 18:36:53.000000000 +0200 ++++ binutils-2.37-new/bfd/configure 2021-07-24 21:59:26.907727053 +0200 +@@ -12751,11 +12751,13 @@ if test "x${ac_cv_sizeof_long}" = "x8"; + BFD_HOST_64BIT_LONG=1 + test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long" + test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long" +-elif test "x${ac_cv_sizeof_long_long}" = "x8"; then ++fi ++if test "x${ac_cv_sizeof_long_long}" = "x8"; then + BFD_HOST_64BIT_LONG_LONG=1 + test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long" + test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long" +- if test "x${ac_cv_sizeof_void_p}" = "x8"; then ++ if test "x${ac_cv_sizeof_void_p}" = "x8" \ ++ -a "x${ac_cv_sizeof_long}" != "x8"; then + BFD_HOSTPTR_T="unsigned long long" + fi + fi +diff -rupN --no-dereference binutils-2.37/bfd/configure.ac binutils-2.37-new/bfd/configure.ac +--- binutils-2.37/bfd/configure.ac 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/configure.ac 2021-07-24 21:59:26.908727043 +0200 +@@ -230,11 +230,13 @@ if test "x${ac_cv_sizeof_long}" = "x8"; + BFD_HOST_64BIT_LONG=1 + test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long" + test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long" +-elif test "x${ac_cv_sizeof_long_long}" = "x8"; then ++fi ++if test "x${ac_cv_sizeof_long_long}" = "x8"; then + BFD_HOST_64BIT_LONG_LONG=1 + test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long" + test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long" +- if test "x${ac_cv_sizeof_void_p}" = "x8"; then ++ if test "x${ac_cv_sizeof_void_p}" = "x8" \ ++ -a "x${ac_cv_sizeof_long}" != "x8"; then + BFD_HOSTPTR_T="unsigned long long" + fi + fi diff --git a/binutils-2.25-version.patch b/binutils-version.patch similarity index 72% rename from binutils-2.25-version.patch rename to binutils-version.patch index c430d1ddab178afb95cdaf417bc7c8c5e73b175c..5438e58c20432f2671029fc54fe6de83054281ac 100644 --- a/binutils-2.25-version.patch +++ b/binutils-version.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/Makefile.am ---- binutils-2.34/bfd/Makefile.am 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/bfd/Makefile.am 2020-12-18 02:57:12.205063623 +0100 -@@ -967,8 +967,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD +diff -rupN --no-dereference binutils-2.37/bfd/Makefile.am binutils-2.37-new/bfd/Makefile.am +--- binutils-2.37/bfd/Makefile.am 2021-07-08 13:37:19.000000000 +0200 ++++ binutils-2.37-new/bfd/Makefile.am 2021-07-24 21:59:00.067988456 +0200 +@@ -942,8 +942,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in @echo "creating $@" @bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ @@ -12,7 +12,7 @@ diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/ bfd_version_package="\"$(PKGVERSION)\"" ;\ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ . $(srcdir)/development.sh ;\ -@@ -979,7 +979,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/ +@@ -954,7 +954,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/ fi ;\ $(SED) -e "s,@bfd_version@,$$bfd_version," \ -e "s,@bfd_version_string@,$$bfd_version_string," \ @@ -21,10 +21,10 @@ diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/ -e "s,@report_bugs_to@,$$report_bugs_to," \ < $(srcdir)/version.h > $@; \ echo "$${bfd_soversion}" > libtool-soversion -diff -rupN --no-dereference binutils-2.34/bfd/Makefile.in binutils-2.34-new/bfd/Makefile.in ---- binutils-2.34/bfd/Makefile.in 2020-02-01 12:49:13.000000000 +0100 -+++ binutils-2.34-new/bfd/Makefile.in 2020-12-18 02:57:12.205063623 +0100 -@@ -2081,8 +2081,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) +diff -rupN --no-dereference binutils-2.37/bfd/Makefile.in binutils-2.37-new/bfd/Makefile.in +--- binutils-2.37/bfd/Makefile.in 2021-07-18 18:36:53.000000000 +0200 ++++ binutils-2.37-new/bfd/Makefile.in 2021-07-24 21:59:00.069988437 +0200 +@@ -2053,8 +2053,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in @echo "creating $@" @bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ @@ -35,7 +35,7 @@ diff -rupN --no-dereference binutils-2.34/bfd/Makefile.in binutils-2.34-new/bfd/ bfd_version_package="\"$(PKGVERSION)\"" ;\ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ . $(srcdir)/development.sh ;\ -@@ -2093,7 +2093,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/ +@@ -2065,7 +2065,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/ fi ;\ $(SED) -e "s,@bfd_version@,$$bfd_version," \ -e "s,@bfd_version_string@,$$bfd_version_string," \ diff --git a/binutils_CVE-2020-16592.patch b/binutils_CVE-2020-16592.patch deleted file mode 100644 index b8f01251cad4c06a275c361d13ecb1120851fb78..0000000000000000000000000000000000000000 --- a/binutils_CVE-2020-16592.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -rupN --no-dereference binutils-2.34/bfd/peXXigen.c binutils-2.34-new/bfd/peXXigen.c ---- binutils-2.34/bfd/peXXigen.c 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/bfd/peXXigen.c 2020-12-18 02:57:24.508020278 +0100 -@@ -177,25 +177,25 @@ _bfd_XXi_swap_sym_in (bfd * abfd, void * - int unused_section_number = 0; - asection *sec; - flagword flags; -+ size_t name_len; -+ char *sec_name; - - for (sec = abfd->sections; sec; sec = sec->next) - if (unused_section_number <= sec->target_index) - unused_section_number = sec->target_index + 1; - -- if (name == namebuf) -+ name_len = strlen (name) + 1; -+ sec_name = bfd_alloc (abfd, name_len); -+ if (sec_name == NULL) - { -- name = (const char *) bfd_alloc (abfd, strlen (namebuf) + 1); -- if (name == NULL) -- { -- _bfd_error_handler (_("%pB: out of memory creating name for empty section"), -- abfd); -- return; -- } -- strcpy ((char *) name, namebuf); -+ _bfd_error_handler (_("%pB: out of memory creating name " -+ "for empty section"), abfd); -+ return; - } -+ memcpy (sec_name, name, name_len); - - flags = SEC_HAS_CONTENTS | SEC_ALLOC | SEC_DATA | SEC_LOAD; -- sec = bfd_make_section_anyway_with_flags (abfd, name, flags); -+ sec = bfd_make_section_anyway_with_flags (abfd, sec_name, flags); - if (sec == NULL) - { - _bfd_error_handler (_("%pB: unable to create fake empty section"), diff --git a/binutils_CVE-2020-16598.patch b/binutils_CVE-2020-16598.patch deleted file mode 100644 index 3291b52563ed63d0fef9002dd41ae92ccc0f6b51..0000000000000000000000000000000000000000 --- a/binutils_CVE-2020-16598.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rupN --no-dereference binutils-2.34/binutils/debug.c binutils-2.34-new/binutils/debug.c ---- binutils-2.34/binutils/debug.c 2020-01-18 14:55:47.000000000 +0100 -+++ binutils-2.34-new/binutils/debug.c 2020-12-18 02:57:25.423017056 +0100 -@@ -3277,6 +3277,8 @@ debug_class_type_samep (struct debug_han - names, since that sometimes fails in the presence of - typedefs and we really don't care. */ - if (strcmp (f1->name, f2->name) != 0 -+ || f1->type == NULL -+ || f2->type == NULL - || ! debug_type_samep (info, - debug_get_real_type ((void *) info, - f1->type, NULL), diff --git a/mingw-binutils.spec b/mingw-binutils.spec index fa018b1ddde9f7bf6ec2b3de4017919644ca3b77..f551eb5a018f0e37a3d2638622bdc89055b64b02 100644 --- a/mingw-binutils.spec +++ b/mingw-binutils.spec @@ -1,24 +1,30 @@ %global run_testsuite 1 Name: mingw-binutils -Version: 2.34 -Release: 10 +Version: 2.37 +Release: 2 Summary: Cross-compiled version of binutils for Win32 and Win64 environments License: GPLv2+ and LGPLv2+ and GPLv3+ and LGPLv3+ URL: http://www.gnu.org/software/binutils/ -Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2 +Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz ### Patches from native package - -# Unneeded, mingw does not have lib64 -# Patch01: binutils-2.20.51.0.2-libtool-lib64.patch +# Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the +# default library search path of 64-bit targets. +# Lifetime: Permanent, but it should not be. This is a bug in the libtool +# sources used in both binutils and gcc, (specifically the +# libtool.m4 file). These are based on a version released in 2009 +# (2.2.6?) rather than the latest version. (Definitely fixed in +# libtool version 2.4.6). +# Not needed, mingw does not have lib64 +# Patch01: binutils-libtool-lib64.patch # Purpose: Appends a RHEL or Fedora release string to the generic binutils # version string. # Lifetime: Permanent. This is a RHEL/Fedora specific patch. -Patch02: binutils-2.25-version.patch +Patch02: binutils-version.patch # Purpose: Exports the demangle.h header file (associated with the libiberty # sources) with the binutils-devel rpm. @@ -34,7 +40,7 @@ Patch03: binutils-export-demangle.h.patch # FIXME: It would be better if the packages using the bfd.h header were # fixed so that they do include the header files in the correct # order. -Patch04: binutils-2.22.52.0.4-no-config-h-check.patch +Patch04: binutils-no-config-h-check.patch # Purpose: Include the filename concerned in readelf error messages. This # makes readelf's output more helpful when it is run on multiple @@ -43,10 +49,15 @@ Patch04: binutils-2.22.52.0.4-no-config-h-check.patch # making it better (IMHO) but also potentially breaking tools that # depend upon readelf's current format. Hence it remains a local # patch. -Patch05: binutils-2.29-filename-in-error-messages.patch +Patch05: binutils-filename-in-error-messages.patch -# Unneeded, affects ELF only -# Patch06: binutils-2.29-revert-PLT-elision.patch +# Purpose: Disable an x86/x86_64 optimization that moves functions from the +# PLT into the GOTPLT for faster access. This optimization is +# problematic for tools that want to intercept PLT entries, such +# as ltrace and LD_AUDIT. See BZs 1452111 and 1333481. +# Lifetime: Permanent. But it should not be. +# FIXME: Replace with a configure time option. +Patch06: binutils-revert-PLT-elision.patch # Purpose: Changes readelf so that when it displays extra information about # a symbol, this information is placed at the end of the line. @@ -56,65 +67,60 @@ Patch05: binutils-2.29-filename-in-error-messages.patch # no longer being maintained. Patch07: binutils-readelf-other-sym-info.patch -# Unneeded, affects ELF only -# Patch08: binutils-2.27-aarch64-ifunc.patch +# Purpose: Do not create PLT entries for AARCH64 IFUNC symbols referenced in +# debug sections. +# Lifetime: Permanent. +# FIXME: Find related bug. Decide on permanency. +Patch08: binutils-2.27-aarch64-ifunc.patch # Purpose: Stop the binutils from statically linking with libstdc++. # Lifetime: Permanent. Patch09: binutils-do-not-link-with-static-libstdc++.patch -# Unneeded, affects ELF only -# Patch10: binutils-attach-to-group.patch - -# Purpose: Stop gold from complaining about relocs in the .gnu.build.attribute -# section that reference symbols in discarded sections. -# Lifetime: Fixed in 2.33 (maybe) -Patch11: binutils-gold-ignore-discarded-note-relocs.patch - # Purpose: Allow OS specific sections in section groups. -# Lifetime: Might be fixed in 2.33 -Patch12: binutils-special-sections-in-groups.patch +# Lifetime: Fixed in 2.38 (maybe) +Patch10: binutils-special-sections-in-groups.patch # Purpose: Fix linker testsuite failures. -# Lifetime: Fixed in 2.33 (possibly) -Patch13: binutils-fix-testsuite-failures.patch +# Lifetime: Fixed in 2.37 (maybe) +Patch11: binutils-fix-testsuite-failures.patch # Purpose: Stop gold from aborting when input sections with the same name # have different flags. -# Lifetime: Fixed in 2.35 (maybe) -Patch14: binutils-gold-mismatched-section-flags.patch - -# Purpose: Fix a potential use of an initialised field by readelf. -# Lifetime: Fixed in 2.35 -Patch15: binutils-readelf-compression-header-size.patch +# Lifetime: Fixed in 2.38 (maybe) +Patch12: binutils-gold-mismatched-section-flags.patch # Purpose: Add a check to the GOLD linker for a corrupt input file # with a fuzzed section offset. -# Lifetime: Fixed in 2.35 (maybe) -Patch16: binutils-CVE-2019-1010204.patch -# Backport fix for CVE-2020-16592 -# https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7ecb51549ab1ec22aba5aaf34b70323cf0b8509a -Patch17: binutils_CVE-2020-16592.patch -# Backport fix for CVE-2020-16598 -# https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ca3f923f82a079dcf441419f4a50a50f8b4b33c2 -Patch18: binutils_CVE-2020-16598.patch - -# Backport fixes for CVE-2021-20197 -Patch19: binutils-gdb.git-365f5fb6d0f0da83817431a275e99e6f6babbe04.patch -Patch20: binutils-gdb.git-1a1c3b4cc17687091cff5a368bd6f13742bcfdf8.patch -Patch21: binutils-gdb.git-014cc7f849e8209623fc99264814bce7b3b6faf2.patch - -# Backport fix for CVE-2021-3487 -# https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=647cebce12a6b0a26960220caff96ff38978cf24 -Patch22: CVE-2021-3487.patch -# update Autoconf version to 2.71 -Patch23: binutils-update-autoconf-version-to-2.71.patch - -### MINGW specific patches - -Patch102: binutils-config.patch - -BuildRequires: make +# Lifetime: Fixed in 2.38 (maybe) +Patch13: binutils-CVE-2019-1010204.patch + +# Purpose: Change the gold configuration script to only warn about +# unsupported targets. This allows the binutils to be built with +# BPF support enabled. +# Lifetime: Permanent. +Patch14: binutils-gold-warn-unsupported.patch + +# Purpose: Use the "unsigned long long" type for pointers on hosts where +# long is a 32-bit type but pointers are a 64-bit type. Necessary +# because users expect to be able to install both the i686- and +# x86_64 versions of binutils-devel on the same machine, so they +# need to identical versions of the bfd.h header file. +# Lifetime: Permanent. +Patch15: binutils-use-long-long.patch + + +# Purpose: Fix testsuite failures due to the patches applied here. +# Lifetime: Permanent, but varying with each new rebase. +Patch16: binutils-testsuite-fixes.patch + +# Purpose: Enable the creation of .note.gnu.property sections by the GOLD +# linker for x86 binaries. +# Lifetime: Fixed in 2.38 maybe +Patch17: binutils-gold-i386-gnu-property-notes.patch + + +BuildRequires: make BuildRequires: gcc BuildRequires: flex BuildRequires: bison @@ -127,7 +133,6 @@ BuildRequires: dejagnu BuildRequires: sharutils %endif Provides: bundled(libiberty) -BuildRequires: autoconf, automake %description @@ -172,16 +177,6 @@ sed -i -e 's/%''{release}/%{release}/g' bfd/Makefile{.am,.in} %build -# Dependencies are not set up to rebuild the configure files -# in the subdirectories. So we just rebuild the ones we care -# about -pushd libiberty -autoconf -popd -pushd intl -autoconf -popd - # We call configure directly rather than via macros, thus if # we are using LTO, we have to manually fix the broken configure # scripts @@ -280,26 +275,29 @@ popd %install -%mingw_make_install DESTDIR=$RPM_BUILD_ROOT -make -C build_multilib DESTDIR=$RPM_BUILD_ROOT/multilib install +%mingw_make_install DESTDIR=%{buildroot} +make -C build_multilib DESTDIR=%{buildroot}/multilib install # These files conflict with ordinary binutils. -rm -rf $RPM_BUILD_ROOT%{_infodir} -rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty* +rm -rf %{buildroot}%{_infodir} +rm -f %{buildroot}%{_libdir}/libiberty* +rm -f %{buildroot}%{_libdir}/bfd-plugins/libdep.so # Keep the multilib versions of the strip, objdump and objcopy commands # We need these for the RPM integration as these tools must be able to # both process win32 and win64 binaries -mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_strip} $RPM_BUILD_ROOT%{_bindir}/%{mingw_strip} -mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_objdump} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objdump} -mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_objcopy} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objcopy} -mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_nm} $RPM_BUILD_ROOT%{_bindir}/%{mingw_nm} -rm -rf $RPM_BUILD_ROOT/multilib +mv %{buildroot}/multilib%{_bindir}/%{mingw64_strip} %{buildroot}%{_bindir}/%{mingw_strip} +mv %{buildroot}/multilib%{_bindir}/%{mingw64_objdump} %{buildroot}%{_bindir}/%{mingw_objdump} +mv %{buildroot}/multilib%{_bindir}/%{mingw64_objcopy} %{buildroot}%{_bindir}/%{mingw_objcopy} +mv %{buildroot}/multilib%{_bindir}/%{mingw64_nm} %{buildroot}%{_bindir}/%{mingw_nm} +rm -rf %{buildroot}/multilib + +# Drop man pages, they are a duplicate of those of the native tools +rm -rf %{buildroot}%{_mandir}/man1/* %files -n mingw-binutils-generic %license COPYING -%{_mandir}/man1/* %{_bindir}/%{mingw_strip} %{_bindir}/%{mingw_objdump} %{_bindir}/%{mingw_objcopy} @@ -375,6 +373,9 @@ rm -rf $RPM_BUILD_ROOT/multilib %changelog +* Mon Feb 5 2024 yinhongchang - 2.37-2 +- update version to 2.37-2 + * Mon Feb 5 2024 yinhongchang - 2.34-10 - update changelog info