parent
							
								
									8333ae893f
								
							
						
					
					
						commit
						d4cbdd6bff
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -0,0 +1,2 @@ | ||||
| /binutils-2.40.tar.xz | ||||
| /binutils-2.19.50.0.1-output-format.sed | ||||
							
								
								
									
										11
									
								
								binutils-2.27-aarch64-ifunc.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								binutils-2.27-aarch64-ifunc.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| diff -rup binutils.orig/bfd/elfnn-aarch64.c binutils-2.27/bfd/elfnn-aarch64.c
 | ||||
| --- binutils.orig/bfd/elfnn-aarch64.c	2017-02-21 10:45:19.311956006 +0000
 | ||||
| +++ binutils-2.27/bfd/elfnn-aarch64.c	2017-02-21 11:55:07.517922655 +0000
 | ||||
| @@ -4947,6 +4947,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; | ||||
							
								
								
									
										20
									
								
								binutils-CVE-2023-1972.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								binutils-CVE-2023-1972.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| --- binutils.orig/bfd/elf.c	2023-04-17 16:26:08.720347439 +0100
 | ||||
| +++ binutils-2.40/bfd/elf.c	2023-04-17 16:28:03.286317601 +0100
 | ||||
| @@ -9050,6 +9050,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
 | ||||
|  	  bfd_set_error (bfd_error_file_too_big); | ||||
|  	  goto error_return_verdef; | ||||
|  	} | ||||
| +      if (amt == 0)
 | ||||
| +	goto error_return_verdef;
 | ||||
|        elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); | ||||
|        if (elf_tdata (abfd)->verdef == NULL) | ||||
|  	goto error_return_verdef; | ||||
| @@ -9153,6 +9155,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
 | ||||
|  	  bfd_set_error (bfd_error_file_too_big); | ||||
|  	  goto error_return; | ||||
|  	} | ||||
| +      if (amt == 0)
 | ||||
| +	goto error_return;
 | ||||
|        elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt); | ||||
|        if (elf_tdata (abfd)->verdef == NULL) | ||||
|  	goto error_return; | ||||
							
								
								
									
										11
									
								
								binutils-autoconf-version.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								binutils-autoconf-version.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| --- binutils.orig/config/override.m4	2021-08-31 14:20:17.275574804 +0100
 | ||||
| +++ binutils-2.37/config/override.m4	2021-08-31 14:36:37.793954247 +0100
 | ||||
| @@ -41,7 +41,7 @@ dnl Or for updating the whole tree at on
 | ||||
|  AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK], | ||||
|  [m4_if(m4_defn([_GCC_AUTOCONF_VERSION]), | ||||
|    m4_defn([m4_PACKAGE_VERSION]), [], | ||||
| -  [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])])
 | ||||
| +  [])
 | ||||
|  ]) | ||||
|  m4_define([AC_INIT], m4_defn([AC_INIT])[ | ||||
|  _GCC_AUTOCONF_VERSION_CHECK | ||||
							
								
								
									
										85
									
								
								binutils-do-not-link-with-static-libstdc++.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								binutils-do-not-link-with-static-libstdc++.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,85 @@ | ||||
| diff -rup binutils.orig/configure binutils-2.40/configure
 | ||||
| --- binutils.orig/configure	2023-02-13 14:43:00.728877170 +0000
 | ||||
| +++ binutils-2.40/configure	2023-02-13 14:43:13.671864892 +0000
 | ||||
| @@ -5442,49 +5442,6 @@ if test -z "$LD"; then
 | ||||
|    fi | ||||
|  fi | ||||
|   | ||||
| -# Check whether -static-libstdc++ -static-libgcc is supported.
 | ||||
| -have_static_libs=no
 | ||||
| -if test "$GCC" = yes; then
 | ||||
| -  saved_LDFLAGS="$LDFLAGS"
 | ||||
| -
 | ||||
| -  LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
 | ||||
| -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether g++ accepts -static-libstdc++ -static-libgcc" >&5
 | ||||
| -$as_echo_n "checking whether g++ accepts -static-libstdc++ -static-libgcc... " >&6; }
 | ||||
| -  ac_ext=cpp
 | ||||
| -ac_cpp='$CXXCPP $CPPFLAGS'
 | ||||
| -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 | ||||
| -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 | ||||
| -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 | ||||
| -
 | ||||
| -
 | ||||
| -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 | ||||
| -/* end confdefs.h.  */
 | ||||
| -
 | ||||
| -#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
 | ||||
| -#error -static-libstdc++ not implemented
 | ||||
| -#endif
 | ||||
| -int main() {}
 | ||||
| -_ACEOF
 | ||||
| -if ac_fn_cxx_try_link "$LINENO"; then :
 | ||||
| -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 | ||||
| -$as_echo "yes" >&6; }; have_static_libs=yes
 | ||||
| -else
 | ||||
| -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 | ||||
| -$as_echo "no" >&6; }
 | ||||
| -fi
 | ||||
| -rm -f core conftest.err conftest.$ac_objext \
 | ||||
| -    conftest$ac_exeext conftest.$ac_ext
 | ||||
| -  ac_ext=c
 | ||||
| -ac_cpp='$CPP $CPPFLAGS'
 | ||||
| -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 | ||||
| -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 | ||||
| -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 | ||||
| -
 | ||||
| -
 | ||||
| -  LDFLAGS="$saved_LDFLAGS"
 | ||||
| -fi
 | ||||
| -
 | ||||
| -
 | ||||
|   | ||||
|   | ||||
|  if test -n "$ac_tool_prefix"; then | ||||
| diff -rup binutils.orig/configure.ac binutils-2.40/configure.ac
 | ||||
| --- binutils.orig/configure.ac	2023-02-13 14:43:00.728877170 +0000
 | ||||
| +++ binutils-2.40/configure.ac	2023-02-13 14:43:13.671864892 +0000
 | ||||
| @@ -1435,26 +1435,6 @@ if test -z "$LD"; then
 | ||||
|    fi | ||||
|  fi | ||||
|   | ||||
| -# Check whether -static-libstdc++ -static-libgcc is supported.
 | ||||
| -have_static_libs=no
 | ||||
| -if test "$GCC" = yes; then
 | ||||
| -  saved_LDFLAGS="$LDFLAGS"
 | ||||
| -
 | ||||
| -  LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
 | ||||
| -  AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
 | ||||
| -  AC_LANG_PUSH(C++)
 | ||||
| -  AC_LINK_IFELSE([AC_LANG_SOURCE([
 | ||||
| -#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
 | ||||
| -#error -static-libstdc++ not implemented
 | ||||
| -#endif
 | ||||
| -int main() {}])],
 | ||||
| -    [AC_MSG_RESULT([yes]); have_static_libs=yes],
 | ||||
| -    [AC_MSG_RESULT([no])])
 | ||||
| -  AC_LANG_POP(C++)
 | ||||
| -
 | ||||
| -  LDFLAGS="$saved_LDFLAGS"
 | ||||
| -fi
 | ||||
| -
 | ||||
|  ACX_PROG_GNAT | ||||
|  ACX_PROG_GDC | ||||
|  ACX_PROG_CMP_IGNORE_INITIAL | ||||
| Only in binutils-2.40: configure.ac.orig | ||||
| Only in binutils-2.40: configure.orig | ||||
							
								
								
									
										33
									
								
								binutils-export-demangle.h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								binutils-export-demangle.h.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| diff -rup binutils.orig/bfd/Makefile.am binutils-2.32/bfd/Makefile.am
 | ||||
| --- binutils.orig/bfd/Makefile.am	2019-02-08 12:22:51.395684251 +0000
 | ||||
| +++ binutils-2.32/bfd/Makefile.am	2019-02-08 12:22:53.970664973 +0000
 | ||||
| @@ -33,7 +33,7 @@ bfdlibdir = @bfdlibdir@
 | ||||
|  bfdincludedir = @bfdincludedir@ | ||||
|  bfdlib_LTLIBRARIES = libbfd.la | ||||
|  bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.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 -rup binutils.orig/bfd/Makefile.in binutils-2.32/bfd/Makefile.in
 | ||||
| --- binutils.orig/bfd/Makefile.in	2019-02-08 12:21:35.291254044 +0000
 | ||||
| +++ binutils-2.32/bfd/Makefile.in	2019-02-08 12:22:10.163992947 +0000
 | ||||
| @@ -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 \ | ||||
| -	$(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
 | ||||
|  @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@	$(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 | ||||
							
								
								
									
										127
									
								
								binutils-filename-in-readelf-messages.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								binutils-filename-in-readelf-messages.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,127 @@ | ||||
| diff -rup binutils.orig/binutils/readelf.c binutils-2.40/binutils/readelf.c
 | ||||
| --- binutils.orig/binutils/readelf.c	2023-02-13 14:38:44.081029276 +0000
 | ||||
| +++ binutils-2.40/binutils/readelf.c	2023-02-13 14:38:56.201022315 +0000
 | ||||
| @@ -22858,46 +22858,53 @@ process_file (char * file_name)
 | ||||
|    Filedata * filedata = NULL; | ||||
|    struct stat statbuf; | ||||
|    char armag[SARMAG]; | ||||
| -  bool ret = true;
 | ||||
| +  bool ret = false;
 | ||||
| +  char * name;
 | ||||
| +  char * saved_program_name;
 | ||||
| +
 | ||||
| +  /* Overload program_name to include file_name.  Doing this means
 | ||||
| +     that warning/error messages will positively identify the file
 | ||||
| +     concerned even when multiple instances of readelf are running.  */
 | ||||
| +  name = xmalloc (strlen (program_name) + strlen (file_name) + 3);
 | ||||
| +  sprintf (name, "%s: %s", program_name, file_name);
 | ||||
| +  saved_program_name = program_name;
 | ||||
| +  program_name = name;
 | ||||
|   | ||||
|    if (stat (file_name, &statbuf) < 0) | ||||
|      { | ||||
|        if (errno == ENOENT) | ||||
| -	error (_("'%s': No such file\n"), file_name);
 | ||||
| +	error (_("No such file\n"));
 | ||||
|        else | ||||
| -	error (_("Could not locate '%s'.  System error message: %s\n"),
 | ||||
| -	       file_name, strerror (errno));
 | ||||
| -      return false;
 | ||||
| +	error (_("Could not locate file.  System error message: %s\n"),
 | ||||
| +	       strerror (errno));
 | ||||
| +      goto done;
 | ||||
|      } | ||||
|   | ||||
|    if (! S_ISREG (statbuf.st_mode)) | ||||
|      { | ||||
| -      error (_("'%s' is not an ordinary file\n"), file_name);
 | ||||
| -      return false;
 | ||||
| +      error (_("Not an ordinary file\n"));
 | ||||
| +      goto done;
 | ||||
|      } | ||||
|   | ||||
|    filedata = calloc (1, sizeof * filedata); | ||||
|    if (filedata == NULL) | ||||
|      { | ||||
|        error (_("Out of memory allocating file data structure\n")); | ||||
| -      return false;
 | ||||
| +      goto done;
 | ||||
|      } | ||||
|   | ||||
|    filedata->file_name = file_name; | ||||
|    filedata->handle = fopen (file_name, "rb"); | ||||
|    if (filedata->handle == NULL) | ||||
|      { | ||||
| -      error (_("Input file '%s' is not readable.\n"), file_name);
 | ||||
| -      free (filedata);
 | ||||
| -      return false;
 | ||||
| +      error (_("Not readable\n"));
 | ||||
| +      goto done;
 | ||||
|      } | ||||
|   | ||||
|    if (fread (armag, SARMAG, 1, filedata->handle) != 1) | ||||
|      { | ||||
| -      error (_("%s: Failed to read file's magic number\n"), file_name);
 | ||||
| -      fclose (filedata->handle);
 | ||||
| -      free (filedata);
 | ||||
| -      return false;
 | ||||
| +      error (_("Failed to read file's magic number\n"));
 | ||||
| +      goto done;
 | ||||
|      } | ||||
|   | ||||
|    filedata->file_size = statbuf.st_size; | ||||
| @@ -22905,33 +22912,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 && !check_all) | ||||
| -	error (_("File %s is not an archive so its index cannot be displayed.\n"),
 | ||||
| -	       file_name);
 | ||||
| +	error (_("Not an archive so its index cannot be displayed.\n"));
 | ||||
|   | ||||
|        rewind (filedata->handle); | ||||
|        filedata->archive_file_size = filedata->archive_file_offset = 0; | ||||
|   | ||||
| -      if (! process_object (filedata))
 | ||||
| -	ret = false;
 | ||||
| +      if (process_object (filedata))
 | ||||
| +	ret = true;
 | ||||
|      } | ||||
|   | ||||
| -  fclose (filedata->handle);
 | ||||
| -  free (filedata->section_headers);
 | ||||
| -  free (filedata->program_headers);
 | ||||
| -  free (filedata->string_table);
 | ||||
| -  free (filedata->dump.dump_sects);
 | ||||
| -  free (filedata);
 | ||||
| + done:
 | ||||
| +  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;
 | ||||
|   | ||||
|    free (ba_cache.strtab); | ||||
|    ba_cache.strtab = NULL; | ||||
| Only in binutils-2.40/binutils: readelf.c.orig | ||||
							
								
								
									
										330
									
								
								binutils-fix-testsuite-failures.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										330
									
								
								binutils-fix-testsuite-failures.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,330 @@ | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d	2019-02-15 13:33:21.979627285 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d	2019-02-15 13:40:26.911199033 +0000
 | ||||
| @@ -34,5 +34,6 @@ hook called: claim_file tmpdir/libtext.a
 | ||||
|  hook called: all symbols read. | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-13.d binutils-2.32/ld/testsuite/ld-plugin/plugin-13.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-13.d	2019-02-15 13:33:21.980627277 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-13.d	2019-02-15 13:41:30.189692800 +0000
 | ||||
| @@ -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 -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-14.d binutils-2.32/ld/testsuite/ld-plugin/plugin-14.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-14.d	2019-02-15 13:33:21.977627301 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-14.d	2019-02-15 13:42:03.598430960 +0000
 | ||||
| @@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/
 | ||||
|  hook called: claim_file tmpdir/text.o \[@0/.* not claimed | ||||
|  #... | ||||
|  hook called: all symbols read. | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-15.d binutils-2.32/ld/testsuite/ld-plugin/plugin-15.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-15.d	2019-02-15 13:33:21.980627277 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-15.d	2019-02-15 13:42:28.014239600 +0000
 | ||||
| @@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/
 | ||||
|  hook called: claim_file tmpdir/text.o \[@0/.* not claimed | ||||
|  #... | ||||
|  hook called: all symbols read. | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-16.d binutils-2.32/ld/testsuite/ld-plugin/plugin-16.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-16.d	2019-02-15 13:33:21.977627301 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-16.d	2019-02-15 13:43:21.309821910 +0000
 | ||||
| @@ -30,9 +30,8 @@ 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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-17.d binutils-2.32/ld/testsuite/ld-plugin/plugin-17.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-17.d	2019-02-15 13:33:21.977627301 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-17.d	2019-02-15 13:43:54.925558451 +0000
 | ||||
| @@ -31,7 +31,8 @@ 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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-20.d binutils-2.32/ld/testsuite/ld-plugin/plugin-20.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-20.d	2019-02-15 13:33:21.980627277 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-20.d	2019-02-15 13:49:20.091010016 +0000
 | ||||
| @@ -2,6 +2,5 @@ hook called: all symbols read.
 | ||||
|  Input: func.c \(tmpdir/libfunc.a\) | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-21.d binutils-2.32/ld/testsuite/ld-plugin/plugin-21.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-21.d	2019-02-15 13:33:21.978627293 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-21.d	2019-02-15 13:49:34.506897033 +0000
 | ||||
| @@ -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.* | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-22.d binutils-2.32/ld/testsuite/ld-plugin/plugin-22.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-22.d	2019-02-15 13:33:21.980627277 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-22.d	2019-02-15 13:50:00.409694022 +0000
 | ||||
| @@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.*
 | ||||
|  hook called: all symbols read. | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-23.d binutils-2.32/ld/testsuite/ld-plugin/plugin-23.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-23.d	2019-02-15 13:33:21.979627285 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-23.d	2019-02-15 13:50:14.938580156 +0000
 | ||||
| @@ -2,6 +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.* | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-24.d binutils-2.32/ld/testsuite/ld-plugin/plugin-24.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-24.d	2019-02-15 13:33:21.980627277 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-24.d	2019-02-15 13:49:46.346804240 +0000
 | ||||
| @@ -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 -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-25.d binutils-2.32/ld/testsuite/ld-plugin/plugin-25.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-25.d	2019-02-15 13:33:21.978627293 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-25.d	2019-02-15 13:50:29.322467422 +0000
 | ||||
| @@ -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 -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d	2019-02-15 13:33:21.977627301 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d	2019-02-15 13:45:05.343006557 +0000
 | ||||
| @@ -1 +1,3 @@
 | ||||
|  .*: error: Error | ||||
| +#...
 | ||||
| +
 | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-29.d binutils-2.32/ld/testsuite/ld-plugin/plugin-29.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-29.d	2019-02-15 13:33:21.978627293 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-29.d	2019-02-15 13:45:22.764870016 +0000
 | ||||
| @@ -1 +1,2 @@
 | ||||
|  .*: warning: Warning | ||||
| +#...
 | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-30.d binutils-2.32/ld/testsuite/ld-plugin/plugin-30.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-30.d	2019-02-15 13:33:21.976627309 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-30.d	2019-02-15 13:48:57.067190464 +0000
 | ||||
| @@ -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 -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-6.d binutils-2.32/ld/testsuite/ld-plugin/plugin-6.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-6.d	2019-02-15 13:33:21.979627285 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-6.d	2019-02-15 13:37:14.672749977 +0000
 | ||||
| @@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[
 | ||||
|  hook called: claim_file tmpdir/text.o \[@0/.* not claimed | ||||
|  #... | ||||
|  hook called: all symbols read. | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-7.d binutils-2.32/ld/testsuite/ld-plugin/plugin-7.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-7.d	2019-02-15 13:33:21.977627301 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-7.d	2019-02-15 13:37:58.000400421 +0000
 | ||||
| @@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[
 | ||||
|  hook called: claim_file tmpdir/text.o \[@0/.* not claimed | ||||
|  #... | ||||
|  hook called: all symbols read. | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d	2019-02-15 13:33:21.980627277 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d	2019-02-15 13:38:34.096109209 +0000
 | ||||
| @@ -32,7 +32,6 @@ hook called: claim_file tmpdir/text.o \[
 | ||||
|  hook called: all symbols read. | ||||
|  Sym: '_?func' Resolution: LDPR_PREVAILING_DEF | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| -.*: tmpdir/main.o: in function `main':
 | ||||
| -.*main.c.*: undefined reference to `\.?func'
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-9.d binutils-2.32/ld/testsuite/ld-plugin/plugin-9.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-9.d	2019-02-15 13:33:21.977627301 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-9.d	2019-02-15 13:39:52.655475403 +0000
 | ||||
| @@ -31,7 +31,8 @@ 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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/pr20070.d binutils-2.32/ld/testsuite/ld-plugin/pr20070.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/pr20070.d	2019-02-15 13:33:21.976627309 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/pr20070.d	2019-02-15 13:50:56.874251486 +0000
 | ||||
| @@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI
 | ||||
|  Sym: 'undef' Resolution: LDPR_UNDEF | ||||
|  Sym: 'weakundef' Resolution: LDPR_UNDEF | ||||
|  Sym: 'common' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-srec/srec.exp binutils-2.32/ld/testsuite/ld-srec/srec.exp
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-srec/srec.exp	2019-02-15 13:33:21.938627615 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-srec/srec.exp	2019-02-15 13:53:58.744814006 +0000
 | ||||
| @@ -21,6 +21,8 @@
 | ||||
|   | ||||
|  # Get the offset from an S-record line to the start of the data. | ||||
|   | ||||
| +return
 | ||||
| +
 | ||||
|  proc srec_off { l } { | ||||
|      if [string match "S1*" $l] { | ||||
|  	return 8 | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d	2019-02-15 14:10:59.038709514 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d	2019-02-15 14:13:53.532300721 +0000
 | ||||
| @@ -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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
|  #... | ||||
|  hook called: cleanup. | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-11.d binutils-2.32/ld/testsuite/ld-plugin/plugin-11.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-11.d	2019-02-15 14:10:59.041709490 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-11.d	2019-02-15 14:14:50.061844322 +0000
 | ||||
| @@ -35,8 +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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| -Sym: '_?text' Resolution: LDPR_PREVAILING_DEF
 | ||||
| +Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-18.d binutils-2.32/ld/testsuite/ld-plugin/plugin-18.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-18.d	2019-02-15 14:10:58.942710289 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-18.d	2019-02-15 14:15:20.030602369 +0000
 | ||||
| @@ -32,7 +32,8 @@ 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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-19.d binutils-2.32/ld/testsuite/ld-plugin/plugin-19.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-19.d	2019-02-15 14:10:59.024709627 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-19.d	2019-02-15 14:15:54.926320633 +0000
 | ||||
| @@ -35,8 +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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
| -Sym: '_?text' Resolution: LDPR_PREVAILING_DEF
 | ||||
| +Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
| +#...
 | ||||
|  hook called: cleanup. | ||||
|  #... | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d	2019-02-15 14:10:58.998709837 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d	2019-02-15 14:12:19.856057024 +0000
 | ||||
| @@ -1,3 +1,2 @@
 | ||||
|  .*: error: Error | ||||
|  #... | ||||
| -
 | ||||
| diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d
 | ||||
| --- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d	2019-02-15 14:10:59.074709224 +0000
 | ||||
| +++ binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d	2019-02-15 14:11:48.144313048 +0000
 | ||||
| @@ -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
 | ||||
| +Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
 | ||||
|  Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY | ||||
|  #... | ||||
|  hook called: cleanup. | ||||
| diff -rup binutils.orig/ld/testsuite/ld-elfvers/vers24.rd binutils-2.30/ld/testsuite/ld-elfvers/vers24.rd
 | ||||
| --- binutils.orig/ld/testsuite/ld-elfvers/vers24.rd	2018-09-05 09:45:44.013108697 +0100
 | ||||
| +++ binutils-2.30/ld/testsuite/ld-elfvers/vers24.rd	2018-09-05 12:06:17.287425232 +0100
 | ||||
| @@ -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 -rup binutils.orig/ld/testsuite/ld-plugin/plugin.exp binutils-2.30/ld/testsuite/ld-plugin/plugin.exp
 | ||||
| --- binutils.orig/ld/testsuite/ld-plugin/plugin.exp	2018-09-05 09:45:44.023108605 +0100
 | ||||
| +++ binutils-2.30/ld/testsuite/ld-plugin/plugin.exp	2018-09-05 11:18:53.997202105 +0100
 | ||||
| @@ -118,6 +118,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" | ||||
							
								
								
									
										180
									
								
								binutils-gcc-10-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								binutils-gcc-10-fixes.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,180 @@ | ||||
| diff -rup binutils.orig/gold/gdb-index.cc binutils-2.34.0/gold/gdb-index.cc
 | ||||
| --- binutils.orig/gold/gdb-index.cc	2020-07-24 09:12:29.241306445 +0100
 | ||||
| +++ binutils-2.34.0/gold/gdb-index.cc	2020-07-24 09:15:48.332095898 +0100
 | ||||
| @@ -817,7 +817,7 @@ Gdb_index_info_reader::get_qualified_nam
 | ||||
|  void | ||||
|  Gdb_index_info_reader::record_cu_ranges(Dwarf_die* die) | ||||
|  { | ||||
| -  unsigned int shndx;
 | ||||
| +  unsigned int shndx = 0;
 | ||||
|    unsigned int shndx2; | ||||
|   | ||||
|    off_t ranges_offset = die->ref_attribute(elfcpp::DW_AT_ranges, &shndx); | ||||
| diff -rup binutils.orig/gold/layout.cc binutils-2.34.0/gold/layout.cc
 | ||||
| --- binutils.orig/gold/layout.cc	2020-07-24 09:12:29.243306433 +0100
 | ||||
| +++ binutils-2.34.0/gold/layout.cc	2020-07-24 09:15:11.464320064 +0100
 | ||||
| @@ -1986,7 +1986,7 @@ Layout::attach_allocated_section_to_segm
 | ||||
|    seg_flags |= os->extra_segment_flags(); | ||||
|   | ||||
|    // Check for --section-start. | ||||
| -  uint64_t addr;
 | ||||
| +  uint64_t addr = 0;
 | ||||
|    bool is_address_set = parameters->options().section_start(os->name(), &addr); | ||||
|   | ||||
|    // In general the only thing we really care about for PT_LOAD | ||||
| diff -rup binutils.orig/binutils/dlltool.c binutils-2.34.0/binutils/dlltool.c
 | ||||
| --- binutils.orig/binutils/dlltool.c	2020-07-24 09:12:28.974308069 +0100
 | ||||
| +++ binutils-2.34.0/binutils/dlltool.c	2020-07-24 12:09:37.527121295 +0100
 | ||||
| @@ -1305,7 +1305,7 @@ run (const char *what, char *args)
 | ||||
|    int pid, wait_status; | ||||
|    int i; | ||||
|    const char **argv; | ||||
| -  char *errmsg_fmt, *errmsg_arg;
 | ||||
| +  char *errmsg_fmt = "", *errmsg_arg = "";
 | ||||
|    char *temp_base = choose_temp_base (); | ||||
|   | ||||
|    inform (_("run: %s %s"), what, args); | ||||
| diff -rup binutils.orig/gas/config/tc-arm.c binutils-2.34.0/gas/config/tc-arm.c
 | ||||
| --- binutils.orig/gas/config/tc-arm.c	2020-07-24 09:12:32.368287432 +0100
 | ||||
| +++ binutils-2.34.0/gas/config/tc-arm.c	2020-07-24 12:14:19.842360634 +0100
 | ||||
| @@ -28416,9 +28416,12 @@ md_apply_fix (fixS *	fixP,
 | ||||
|  	 perform relaxation.  */ | ||||
|        if (value == -2) | ||||
|  	{ | ||||
| -	  newval = md_chars_to_number (buf, THUMB_SIZE);
 | ||||
| -	  newval = 0xbf00; /* NOP encoding T1 */
 | ||||
| -	  md_number_to_chars (buf, newval, THUMB_SIZE);
 | ||||
| +	  if (fixP->fx_done || !seg->use_rela_p)
 | ||||
| +	    {
 | ||||
| +	      newval = md_chars_to_number (buf, THUMB_SIZE);
 | ||||
| +	      newval = 0xbf00; /* NOP encoding T1 */
 | ||||
| +	      md_number_to_chars (buf, newval, THUMB_SIZE);
 | ||||
| +	    }
 | ||||
|  	} | ||||
|        else | ||||
|  	{ | ||||
| @@ -28631,17 +28634,14 @@ md_apply_fix (fixS *	fixP,
 | ||||
|      case BFD_RELOC_ARM_GOTFUNCDESC: | ||||
|      case BFD_RELOC_ARM_GOTOFFFUNCDESC: | ||||
|      case BFD_RELOC_ARM_FUNCDESC: | ||||
| -      if (arm_fdpic)
 | ||||
| -	{
 | ||||
| -	  if (fixP->fx_done || !seg->use_rela_p)
 | ||||
| -	    md_number_to_chars (buf, 0, 4);
 | ||||
| -	}
 | ||||
| -      else
 | ||||
| +      if (!arm_fdpic)
 | ||||
|  	{ | ||||
|  	  as_bad_where (fixP->fx_file, fixP->fx_line, | ||||
|  			_("Relocation supported only in FDPIC mode")); | ||||
| -      }
 | ||||
| -      break;
 | ||||
| +	  break;
 | ||||
| +	}
 | ||||
| +      value = 0;
 | ||||
| +      /* Fall through.  */
 | ||||
|  #endif | ||||
|   | ||||
|      case BFD_RELOC_RVA: | ||||
| diff -rup binutils.orig/gas/config/tc-arm.c binutils-2.34.0/gas/config/tc-arm.c
 | ||||
| --- binutils.orig/gas/config/tc-arm.c	2020-07-24 12:16:02.099719884 +0100
 | ||||
| +++ binutils-2.34.0/gas/config/tc-arm.c	2020-07-24 12:34:17.690858328 +0100
 | ||||
| @@ -28641,7 +28641,7 @@ md_apply_fix (fixS *	fixP,
 | ||||
|  	  break; | ||||
|  	} | ||||
|        value = 0; | ||||
| -      /* Fall through.  */
 | ||||
| +      goto fred;
 | ||||
|  #endif | ||||
|   | ||||
|      case BFD_RELOC_RVA: | ||||
| @@ -28653,6 +28653,7 @@ md_apply_fix (fixS *	fixP,
 | ||||
|  #ifdef TE_PE | ||||
|      case BFD_RELOC_32_SECREL: | ||||
|  #endif | ||||
| +    fred:
 | ||||
|        if (fixP->fx_done || !seg->use_rela_p) | ||||
|  #ifdef TE_WINCE | ||||
|  	/* For WinCE we only do this for pcrel fixups.  */ | ||||
| diff -rup binutils.orig/gas/config/tc-arm.c binutils-2.34.0/gas/config/tc-arm.c
 | ||||
| --- binutils.orig/gas/config/tc-arm.c	2020-07-24 13:28:26.926553452 +0100
 | ||||
| +++ binutils-2.34.0/gas/config/tc-arm.c	2020-07-24 13:31:57.835215763 +0100
 | ||||
| @@ -28416,12 +28416,8 @@ md_apply_fix (fixS *	fixP,
 | ||||
|  	 perform relaxation.  */ | ||||
|        if (value == -2) | ||||
|  	{ | ||||
| -	  if (fixP->fx_done || !seg->use_rela_p)
 | ||||
| -	    {
 | ||||
| -	      newval = md_chars_to_number (buf, THUMB_SIZE);
 | ||||
| -	      newval = 0xbf00; /* NOP encoding T1 */
 | ||||
| -	      md_number_to_chars (buf, newval, THUMB_SIZE);
 | ||||
| -	    }
 | ||||
| +	  newval = 0xbf00; /* NOP encoding T1 */
 | ||||
| +	  goto jim;
 | ||||
|  	} | ||||
|        else | ||||
|  	{ | ||||
| @@ -28432,6 +28428,7 @@ md_apply_fix (fixS *	fixP,
 | ||||
|  	    { | ||||
|  	      newval = md_chars_to_number (buf, THUMB_SIZE); | ||||
|  	      newval |= ((value & 0x3e) << 2) | ((value & 0x40) << 3); | ||||
| +	    jim:
 | ||||
|  	      md_number_to_chars (buf, newval, THUMB_SIZE); | ||||
|  	    } | ||||
|  	} | ||||
| diff -rup binutils.orig/binutils/mclex.c binutils-2.34.0/binutils/mclex.c
 | ||||
| --- binutils.orig/binutils/mclex.c	2020-07-24 13:28:26.297557441 +0100
 | ||||
| +++ binutils-2.34.0/binutils/mclex.c	2020-07-24 14:46:53.587940149 +0100
 | ||||
| @@ -207,7 +207,7 @@ enum_severity (int e)
 | ||||
|  static void | ||||
|  mc_add_keyword_ascii (const char *sz, int rid, const char *grp, rc_uint_type nv, const char *sv) | ||||
|  { | ||||
| -  unichar *usz, *usv = NULL;
 | ||||
| +  unichar *usz = NULL, *usv = NULL;
 | ||||
|    rc_uint_type usz_len; | ||||
|   | ||||
|    unicode_from_codepage (&usz_len, &usz, sz, CP_ACP); | ||||
| diff -rup binutils.orig/binutils/windmc.c binutils-2.34.0/binutils/windmc.c
 | ||||
| --- binutils.orig/binutils/windmc.c	2020-07-24 13:28:26.279557556 +0100
 | ||||
| +++ binutils-2.34.0/binutils/windmc.c	2020-07-24 14:48:05.460477478 +0100
 | ||||
| @@ -338,7 +338,7 @@ mc_add_node_lang (mc_node *root, const m
 | ||||
|  static char * | ||||
|  convert_unicode_to_ACP (const unichar *usz) | ||||
|  { | ||||
| -  char *s;
 | ||||
| +  char *s = NULL;
 | ||||
|    rc_uint_type l; | ||||
|   | ||||
|    if (! usz) | ||||
| @@ -607,10 +607,10 @@ mc_generate_bin_item (mc_node_lang *n, r
 | ||||
|    else | ||||
|      { | ||||
|        rc_uint_type txt_len, l; | ||||
| -      char *cvt_txt;
 | ||||
| +      char *cvt_txt = NULL;
 | ||||
|   | ||||
|        codepage_from_unicode( &l, n->message, &cvt_txt, n->lang->lang_info.wincp); | ||||
| -      if (! cvt_txt)
 | ||||
| +      if (cvt_txt == NULL)
 | ||||
|  	fatal ("Failed to convert message to language codepage.\n"); | ||||
|        txt_len = strlen (cvt_txt); | ||||
|        if (mcset_automatic_null_termination && txt_len > 0) | ||||
| @@ -1107,7 +1107,7 @@ main (int argc, char **argv)
 | ||||
|   | ||||
|    /* Load the input file and do code page transformations to UTF16.  */ | ||||
|    { | ||||
| -    unichar *u;
 | ||||
| +    unichar *u = NULL;
 | ||||
|      rc_uint_type ul; | ||||
|      char *buff; | ||||
|      bfd_size_type flen; | ||||
| --- binutils.orig/binutils/srconv.c	2020-07-24 15:37:25.847459208 +0100
 | ||||
| +++ binutils-2.34.0/binutils/srconv.c	2020-07-24 15:39:12.853773423 +0100
 | ||||
| @@ -316,6 +316,7 @@ wr_hd (struct coff_ofile *p)
 | ||||
|    struct IT_hd hd; | ||||
|   | ||||
|    hd.spare1 = 0; | ||||
| +  hd.spare2 = 0;
 | ||||
|    if (bfd_get_file_flags (abfd) & EXEC_P) | ||||
|      hd.mt = MTYPE_ABS_LM; | ||||
|    else | ||||
							
								
								
									
										193
									
								
								binutils-gold-i386-gnu-property-notes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								binutils-gold-i386-gnu-property-notes.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,193 @@ | ||||
| diff --git a/gold/i386.cc b/gold/i386.cc
 | ||||
| index bf209fe9a86..31161ff091c 100644
 | ||||
| --- a/gold/i386.cc
 | ||||
| +++ b/gold/i386.cc
 | ||||
| @@ -360,7 +360,11 @@ class Target_i386 : public Sized_target<32, false>
 | ||||
|        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<32, false>
 | ||||
|  				  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<32, false>
 | ||||
|    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(Layout* layout)
 | ||||
|    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. | ||||
							
								
								
									
										19
									
								
								binutils-gold-mismatched-section-flags.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								binutils-gold-mismatched-section-flags.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | ||||
| diff -rup binutils.orig/gold/layout.cc binutils-2.32/gold/layout.cc
 | ||||
| --- binutils.orig/gold/layout.cc	2019-06-24 14:37:36.013086899 +0100
 | ||||
| +++ binutils-2.32/gold/layout.cc	2019-06-24 14:41:40.054517479 +0100
 | ||||
| @@ -868,6 +868,7 @@ Layout::get_output_section(const char* n
 | ||||
|  		  && (same_name->flags() & elfcpp::SHF_TLS) == 0) | ||||
|  		os = same_name; | ||||
|  	    } | ||||
| +#if 0 /* BZ 1722715, PR 17556.  */
 | ||||
|  	  else if ((flags & elfcpp::SHF_TLS) == 0) | ||||
|  	    { | ||||
|  	      elfcpp::Elf_Xword zero_flags = 0; | ||||
| @@ -878,6 +879,7 @@ Layout::get_output_section(const char* n
 | ||||
|  	      if (p != this->section_name_map_.end()) | ||||
|  		os = p->second; | ||||
|  	    } | ||||
| +#endif
 | ||||
|  	} | ||||
|   | ||||
|        if (os == NULL) | ||||
							
								
								
									
										66
									
								
								binutils-gold-warn-unsupported.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								binutils-gold-warn-unsupported.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | ||||
| Only in binutils-2.34/gold: autom4te.cache | ||||
| diff -rup binutils.orig/gold/configure binutils-2.34/gold/configure
 | ||||
| --- binutils.orig/gold/configure	2020-04-20 12:35:13.048297305 +0100
 | ||||
| +++ binutils-2.34/gold/configure	2020-04-20 14:02:06.743725696 +0100
 | ||||
| @@ -5180,7 +5180,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 -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
 | ||||
| --- binutils.orig/gold/configure.ac	2020-04-20 12:35:13.050297291 +0100
 | ||||
| +++ binutils-2.34/gold/configure.ac	2020-04-20 14:01:46.435868770 +0100
 | ||||
| @@ -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 | ||||
| --- binutils.orig/ld/configure.tgt	2020-04-20 12:35:12.465301359 +0100
 | ||||
| +++ binutils-2.34/ld/configure.tgt	2020-04-20 14:17:52.123066333 +0100
 | ||||
| @@ -220,7 +220,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 | ||||
|  			;; | ||||
| @@ -1026,7 +1026,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 | ||||
|   | ||||
| --- binutils.orig/bfd/config.bfd	2020-04-20 12:35:13.038297375 +0100
 | ||||
| +++ binutils-2.34/bfd/config.bfd	2020-04-20 14:25:26.452869193 +0100
 | ||||
| @@ -473,7 +473,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 | ||||
| @@ -1427,7 +1427,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 | ||||
|      ;; | ||||
							
								
								
									
										158
									
								
								binutils-ld-read-only-script.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								binutils-ld-read-only-script.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,158 @@ | ||||
| From a0b911576eb49e06a457ebf757b42543d2c7e548 Mon Sep 17 00:00:00 2001 | ||||
| From: Luca Boccassi <luca.boccassi@microsoft.com> | ||||
| Date: Wed, 21 Jul 2021 14:32:03 +0100 | ||||
| Subject: [PATCH] Allows linker scripts to set the SEC_READONLY flag. | ||||
| 
 | ||||
| * ld.texi: Document new output section type. | ||||
| * ldgram.y: Add new token. | ||||
| * ldlang.c: Handle the new flag. | ||||
| * ldlang.h: Add readonly_section to list of section types. | ||||
| * ldlex.l: Add a new identifier. | ||||
| * testsuite/ld-scripts/output-section-types.t: New example linker script. | ||||
| * testsuite/ld-scripts/output-section-types.d: Test driver. | ||||
| * testsyute/ld-scripts/script.exp: Run the new test. | ||||
| 
 | ||||
| (cherry picked from commit 6b86da53d5ee2022b9065f445d23356190380746) | ||||
| ---
 | ||||
|  ld/ld.texi                                     |  2 ++ | ||||
|  ld/ldgram.y                                    |  2 ++ | ||||
|  ld/ldlang.c                                    |  6 ++++++ | ||||
|  ld/ldlang.h                                    |  3 ++- | ||||
|  ld/ldlex.l                                     |  1 + | ||||
|  ld/testsuite/ld-scripts/output-section-types.d | 13 +++++++++++++ | ||||
|  ld/testsuite/ld-scripts/output-section-types.t |  7 +++++++ | ||||
|  ld/testsuite/ld-scripts/script.exp             |  1 + | ||||
|  8 files changed, 34 insertions(+), 1 deletion(-) | ||||
|  create mode 100644 ld/testsuite/ld-scripts/output-section-types.d | ||||
|  create mode 100644 ld/testsuite/ld-scripts/output-section-types.t | ||||
| 
 | ||||
| diff --git a/ld/ld.texi b/ld/ld.texi
 | ||||
| index dd8f571d4e4..cf1e637adbf 100644
 | ||||
| --- a/ld/ld.texi
 | ||||
| +++ b/ld/ld.texi
 | ||||
| @@ -5456,6 +5456,8 @@ parentheses.  The following types are defined:
 | ||||
|  @item NOLOAD | ||||
|  The section should be marked as not loadable, so that it will not be | ||||
|  loaded into memory when the program is run. | ||||
| +@item READONLY
 | ||||
| +The section should be marked as read-only.
 | ||||
|  @item DSECT | ||||
|  @itemx COPY | ||||
|  @itemx INFO | ||||
| diff --git a/ld/ldgram.y b/ld/ldgram.y
 | ||||
| index dd911f46169..31e0071c6fc 100644
 | ||||
| --- a/ld/ldgram.y
 | ||||
| +++ b/ld/ldgram.y
 | ||||
| @@ -139,6 +139,7 @@ static int error_index;
 | ||||
|  %token REGION_ALIAS | ||||
|  %token LD_FEATURE | ||||
|  %token NOLOAD DSECT COPY INFO OVERLAY | ||||
| +%token READONLY
 | ||||
|  %token DEFINED TARGET_K SEARCH_DIR MAP ENTRY | ||||
|  %token <integer> NEXT | ||||
|  %token SIZEOF ALIGNOF ADDR LOADADDR MAX_K MIN_K | ||||
| @@ -1123,6 +1124,7 @@ type:
 | ||||
|  	|  COPY    { sectype = noalloc_section; } | ||||
|  	|  INFO    { sectype = noalloc_section; } | ||||
|  	|  OVERLAY { sectype = noalloc_section; } | ||||
| +	|  READONLY { sectype = readonly_section; }
 | ||||
|  	; | ||||
|   | ||||
|  atype: | ||||
| diff --git a/ld/ldlang.c b/ld/ldlang.c
 | ||||
| index 37b64c89ee1..2610be995ca 100644
 | ||||
| --- a/ld/ldlang.c
 | ||||
| +++ b/ld/ldlang.c
 | ||||
| @@ -2639,6 +2639,9 @@ lang_add_section (lang_statement_list_type *ptr,
 | ||||
|      case noalloc_section: | ||||
|        flags &= ~SEC_ALLOC; | ||||
|        break; | ||||
| +    case readonly_section:
 | ||||
| +      flags |= SEC_READONLY;
 | ||||
| +      break;
 | ||||
|      case noload_section: | ||||
|        flags &= ~SEC_LOAD; | ||||
|        flags |= SEC_NEVER_LOAD; | ||||
| @@ -4232,6 +4235,9 @@ map_input_to_output_sections
 | ||||
|  	    case noalloc_section: | ||||
|  	      flags = SEC_HAS_CONTENTS; | ||||
|  	      break; | ||||
| +	    case readonly_section:
 | ||||
| +	      flags |= SEC_READONLY;
 | ||||
| +	      break;
 | ||||
|  	    case noload_section: | ||||
|  	      if (bfd_get_flavour (link_info.output_bfd) | ||||
|  		  == bfd_target_elf_flavour) | ||||
| diff --git a/ld/ldlang.h b/ld/ldlang.h
 | ||||
| index 6fbe16d97d9..f68ae27b409 100644
 | ||||
| --- a/ld/ldlang.h
 | ||||
| +++ b/ld/ldlang.h
 | ||||
| @@ -121,7 +121,8 @@ enum section_type
 | ||||
|    first_overlay_section, | ||||
|    overlay_section, | ||||
|    noload_section, | ||||
| -  noalloc_section
 | ||||
| +  noalloc_section,
 | ||||
| +  readonly_section
 | ||||
|  }; | ||||
|   | ||||
|  /* This structure holds a list of program headers describing | ||||
| diff --git a/ld/ldlex.l b/ld/ldlex.l
 | ||||
| index c1b15263587..25b4bcaae01 100644
 | ||||
| --- a/ld/ldlex.l
 | ||||
| +++ b/ld/ldlex.l
 | ||||
| @@ -294,6 +294,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
 | ||||
|  <BOTH,SCRIPT>"SORT_BY_INIT_PRIORITY"	{ RTOKEN(SORT_BY_INIT_PRIORITY); } | ||||
|  <BOTH,SCRIPT>"SORT_NONE"		{ RTOKEN(SORT_NONE); } | ||||
|  <EXPRESSION,BOTH,SCRIPT>"NOLOAD"	{ RTOKEN(NOLOAD);} | ||||
| +<EXPRESSION,BOTH,SCRIPT>"READONLY"	{ RTOKEN(READONLY);}
 | ||||
|  <EXPRESSION,BOTH,SCRIPT>"DSECT"		{ RTOKEN(DSECT);} | ||||
|  <EXPRESSION,BOTH,SCRIPT>"COPY"		{ RTOKEN(COPY);} | ||||
|  <EXPRESSION,BOTH,SCRIPT>"INFO"		{ RTOKEN(INFO);} | ||||
| diff --git a/ld/testsuite/ld-scripts/output-section-types.d b/ld/testsuite/ld-scripts/output-section-types.d
 | ||||
| new file mode 100644 | ||||
| index 00000000000..ab124fa4dd7
 | ||||
| --- /dev/null
 | ||||
| +++ b/ld/testsuite/ld-scripts/output-section-types.d
 | ||||
| @@ -0,0 +1,13 @@
 | ||||
| +#ld: -Toutput-section-types.t
 | ||||
| +#source: align2a.s
 | ||||
| +#objdump: -h
 | ||||
| +#target: [is_elf_format]
 | ||||
| +
 | ||||
| +#...
 | ||||
| +  . \.rom.*
 | ||||
| +[ 	]+ALLOC, READONLY
 | ||||
| +  . \.ro.*
 | ||||
| +[ 	]+CONTENTS, ALLOC, LOAD, READONLY, DATA
 | ||||
| +  . \.over.*
 | ||||
| +[ 	]+CONTENTS, READONLY
 | ||||
| +#pass
 | ||||
| diff --git a/ld/testsuite/ld-scripts/output-section-types.t b/ld/testsuite/ld-scripts/output-section-types.t
 | ||||
| new file mode 100644 | ||||
| index 00000000000..d8fdfda1a03
 | ||||
| --- /dev/null
 | ||||
| +++ b/ld/testsuite/ld-scripts/output-section-types.t
 | ||||
| @@ -0,0 +1,7 @@
 | ||||
| +SECTIONS {
 | ||||
| +  .rom  (NOLOAD)   : { LONG(1234); }
 | ||||
| +  .ro   (READONLY) : { LONG(5678); }
 | ||||
| +  .over (OVERLAY)  : { LONG(0123); }
 | ||||
| +  /DISCARD/        : { *(*) }
 | ||||
| +
 | ||||
| +}
 | ||||
| diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp
 | ||||
| index 961cd08c4b1..ff50199b3ae 100644
 | ||||
| --- a/ld/testsuite/ld-scripts/script.exp
 | ||||
| +++ b/ld/testsuite/ld-scripts/script.exp
 | ||||
| @@ -229,6 +229,7 @@ foreach test_script $test_script_list {
 | ||||
|   | ||||
|  run_dump_test "align-with-input" | ||||
|  run_dump_test "pr20302" | ||||
| +run_dump_test "output-section-types"
 | ||||
|   | ||||
|  run_dump_test "segment-start" {{name (default)}} | ||||
|  run_dump_test "segment-start" {{name (overridden)} \ | ||||
| -- 
 | ||||
| 2.30.2 | ||||
| 
 | ||||
							
								
								
									
										236
									
								
								binutils-libtool-lib64.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								binutils-libtool-lib64.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,236 @@ | ||||
| diff -rcp ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
 | ||||
| --- a/bfd/configure	2010-04-08 14:53:48.000000000 +0100
 | ||||
| +++ b/bfd/configure	2010-04-08 14:56:50.000000000 +0100
 | ||||
| @@ -10762,10 +10762,34 @@
 | ||||
|    # before this can be enabled. | ||||
|    hardcode_into_libs=yes | ||||
|   | ||||
| +  # find out which ABI we are using
 | ||||
| +  libsuff=
 | ||||
| +  case "$host_cpu" in
 | ||||
| +  x86_64*|s390*|powerpc*|ppc*|sparc*)
 | ||||
| +    echo 'int i;' > conftest.$ac_ext
 | ||||
| +    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 | ||||
| +  (eval $ac_compile) 2>&5
 | ||||
| +  ac_status=$?
 | ||||
| +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 | ||||
| +  (exit $ac_status); }; then
 | ||||
| +      case `/usr/bin/file conftest.$ac_objext` in
 | ||||
| +      *64-bit*)
 | ||||
| +        libsuff=64
 | ||||
| +        if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
 | ||||
| +          sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
 | ||||
| +        fi
 | ||||
| +        sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
 | ||||
| +        ;;
 | ||||
| +      esac
 | ||||
| +    fi
 | ||||
| +    rm -rf conftest*
 | ||||
| +    ;;
 | ||||
| +  esac
 | ||||
| +
 | ||||
|    # Append ld.so.conf contents to the search path | ||||
|    if test -f /etc/ld.so.conf; then | ||||
|      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` | ||||
| -    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
 | ||||
| +    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
 | ||||
|    fi | ||||
|   | ||||
|    # We used to test for /lib/ld.so.1 and disable shared libraries on | ||||
| diff -rcp ../binutils-2.20.51.0.7.original/binutils/configure ./binutils/configure
 | ||||
| --- a/binutils/configure	2010-04-08 14:53:45.000000000 +0100
 | ||||
| +++ b/binutils/configure	2010-04-08 14:56:21.000000000 +0100
 | ||||
| @@ -10560,10 +10560,34 @@
 | ||||
|    # before this can be enabled. | ||||
|    hardcode_into_libs=yes | ||||
|   | ||||
| +  # find out which ABI we are using
 | ||||
| +  libsuff=
 | ||||
| +  case "$host_cpu" in
 | ||||
| +  x86_64*|s390*|powerpc*|ppc*|sparc*)
 | ||||
| +    echo 'int i;' > conftest.$ac_ext
 | ||||
| +    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 | ||||
| +  (eval $ac_compile) 2>&5
 | ||||
| +  ac_status=$?
 | ||||
| +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 | ||||
| +  (exit $ac_status); }; then
 | ||||
| +      case `/usr/bin/file conftest.$ac_objext` in
 | ||||
| +      *64-bit*)
 | ||||
| +        libsuff=64
 | ||||
| +        if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
 | ||||
| +          sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
 | ||||
| +        fi
 | ||||
| +        sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
 | ||||
| +        ;;
 | ||||
| +      esac
 | ||||
| +    fi
 | ||||
| +    rm -rf conftest*
 | ||||
| +    ;;
 | ||||
| +  esac
 | ||||
| +
 | ||||
|    # Append ld.so.conf contents to the search path | ||||
|    if test -f /etc/ld.so.conf; then | ||||
|      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` | ||||
| -    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
 | ||||
| +    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
 | ||||
|    fi | ||||
|   | ||||
|    # We used to test for /lib/ld.so.1 and disable shared libraries on | ||||
| diff -rcp ../binutils-2.20.51.0.7.original/gas/configure ./gas/configure
 | ||||
| --- a/gas/configure	2010-04-08 14:53:47.000000000 +0100
 | ||||
| +++ b/gas/configure	2010-04-08 14:57:24.000000000 +0100
 | ||||
| @@ -10547,10 +10547,34 @@
 | ||||
|    # before this can be enabled. | ||||
|    hardcode_into_libs=yes | ||||
|   | ||||
| +  # find out which ABI we are using
 | ||||
| +  libsuff=
 | ||||
| +  case "$host_cpu" in
 | ||||
| +  x86_64*|s390*|powerpc*|ppc*|sparc*)
 | ||||
| +    echo 'int i;' > conftest.$ac_ext
 | ||||
| +    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 | ||||
| +  (eval $ac_compile) 2>&5
 | ||||
| +  ac_status=$?
 | ||||
| +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 | ||||
| +  (exit $ac_status); }; then
 | ||||
| +      case `/usr/bin/file conftest.$ac_objext` in
 | ||||
| +      *64-bit*)
 | ||||
| +        libsuff=64
 | ||||
| +        if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
 | ||||
| +          sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
 | ||||
| +        fi
 | ||||
| +        sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
 | ||||
| +        ;;
 | ||||
| +      esac
 | ||||
| +    fi
 | ||||
| +    rm -rf conftest*
 | ||||
| +    ;;
 | ||||
| +  esac
 | ||||
| +
 | ||||
|    # Append ld.so.conf contents to the search path | ||||
|    if test -f /etc/ld.so.conf; then | ||||
|      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` | ||||
| -    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
 | ||||
| +    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
 | ||||
|    fi | ||||
|   | ||||
|    # We used to test for /lib/ld.so.1 and disable shared libraries on | ||||
| diff -rcp ../binutils-2.20.51.0.7.original/gprof/configure ./gprof/configure
 | ||||
| --- a/gprof/configure	2010-04-08 14:53:45.000000000 +0100
 | ||||
| +++ b/gprof/configure	2010-04-08 14:57:50.000000000 +0100
 | ||||
| @@ -10485,10 +10485,34 @@
 | ||||
|    # before this can be enabled. | ||||
|    hardcode_into_libs=yes | ||||
|   | ||||
| +  # find out which ABI we are using
 | ||||
| +  libsuff=
 | ||||
| +  case "$host_cpu" in
 | ||||
| +  x86_64*|s390*|powerpc*|ppc*|sparc*)
 | ||||
| +    echo 'int i;' > conftest.$ac_ext
 | ||||
| +    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 | ||||
| +  (eval $ac_compile) 2>&5
 | ||||
| +  ac_status=$?
 | ||||
| +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 | ||||
| +  (exit $ac_status); }; then
 | ||||
| +      case `/usr/bin/file conftest.$ac_objext` in
 | ||||
| +      *64-bit*)
 | ||||
| +        libsuff=64
 | ||||
| +        if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
 | ||||
| +          sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
 | ||||
| +        fi
 | ||||
| +        sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
 | ||||
| +        ;;
 | ||||
| +      esac
 | ||||
| +    fi
 | ||||
| +    rm -rf conftest*
 | ||||
| +    ;;
 | ||||
| +  esac
 | ||||
| +
 | ||||
|    # Append ld.so.conf contents to the search path | ||||
|    if test -f /etc/ld.so.conf; then | ||||
|      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` | ||||
| -    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
 | ||||
| +    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
 | ||||
|    fi | ||||
|   | ||||
|    # We used to test for /lib/ld.so.1 and disable shared libraries on | ||||
| diff -rcp ../binutils-2.20.51.0.7.original/ld/configure ./ld/configure
 | ||||
| --- a/ld/configure	2010-04-08 14:53:44.000000000 +0100
 | ||||
| +++ b/ld/configure	2010-04-08 14:58:21.000000000 +0100
 | ||||
| @@ -10966,10 +10966,34 @@
 | ||||
|    # before this can be enabled. | ||||
|    hardcode_into_libs=yes | ||||
|   | ||||
| +  # find out which ABI we are using
 | ||||
| +  libsuff=
 | ||||
| +  case "$host_cpu" in
 | ||||
| +  x86_64*|s390*|powerpc*|ppc*|sparc*)
 | ||||
| +    echo 'int i;' > conftest.$ac_ext
 | ||||
| +    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 | ||||
| +  (eval $ac_compile) 2>&5
 | ||||
| +  ac_status=$?
 | ||||
| +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 | ||||
| +  (exit $ac_status); }; then
 | ||||
| +      case `/usr/bin/file conftest.$ac_objext` in
 | ||||
| +      *64-bit*)
 | ||||
| +        libsuff=64
 | ||||
| +        if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
 | ||||
| +          sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
 | ||||
| +        fi
 | ||||
| +        sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
 | ||||
| +        ;;
 | ||||
| +      esac
 | ||||
| +    fi
 | ||||
| +    rm -rf conftest*
 | ||||
| +    ;;
 | ||||
| +  esac
 | ||||
| +
 | ||||
|    # Append ld.so.conf contents to the search path | ||||
|    if test -f /etc/ld.so.conf; then | ||||
|      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` | ||||
| -    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
 | ||||
| +    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
 | ||||
|    fi | ||||
|   | ||||
|    # We used to test for /lib/ld.so.1 and disable shared libraries on | ||||
| Only in .: .#libtool.m4 | ||||
| Only in .: #libtool.m4# | ||||
| diff -rcp ../binutils-2.20.51.0.7.original/opcodes/configure ./opcodes/configure
 | ||||
| --- a/opcodes/configure	2010-04-08 14:53:45.000000000 +0100
 | ||||
| +++ b/opcodes/configure	2010-04-08 14:59:10.000000000 +0100
 | ||||
| @@ -10496,10 +10496,34 @@
 | ||||
|    # before this can be enabled. | ||||
|    hardcode_into_libs=yes | ||||
|   | ||||
| +  # find out which ABI we are using
 | ||||
| +  libsuff=
 | ||||
| +  case "$host_cpu" in
 | ||||
| +  x86_64*|s390*|powerpc*|ppc*|sparc*)
 | ||||
| +    echo 'int i;' > conftest.$ac_ext
 | ||||
| +    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 | ||||
| +  (eval $ac_compile) 2>&5
 | ||||
| +  ac_status=$?
 | ||||
| +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 | ||||
| +  (exit $ac_status); }; then
 | ||||
| +      case `/usr/bin/file conftest.$ac_objext` in
 | ||||
| +      *64-bit*)
 | ||||
| +        libsuff=64
 | ||||
| +        if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
 | ||||
| +          sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
 | ||||
| +        fi
 | ||||
| +        sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
 | ||||
| +        ;;
 | ||||
| +      esac
 | ||||
| +    fi
 | ||||
| +    rm -rf conftest*
 | ||||
| +    ;;
 | ||||
| +  esac
 | ||||
| +
 | ||||
|    # Append ld.so.conf contents to the search path | ||||
|    if test -f /etc/ld.so.conf; then | ||||
|      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` | ||||
| -    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
 | ||||
| +    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
 | ||||
|    fi | ||||
|   | ||||
|    # We used to test for /lib/ld.so.1 and disable shared libraries on | ||||
							
								
								
									
										28
									
								
								binutils-libtool-no-rpath.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								binutils-libtool-no-rpath.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| diff -rup binutils.orig/ltmain.sh binutils-2.37/ltmain.sh
 | ||||
| --- binutils.orig/ltmain.sh	2022-01-27 16:23:09.304207432 +0000
 | ||||
| +++ binutils-2.37/ltmain.sh	2022-01-27 16:23:18.380143759 +0000
 | ||||
| @@ -7103,6 +7103,7 @@ EOF
 | ||||
|  	  rpath="$finalize_rpath" | ||||
|  	  test "$mode" != relink && rpath="$compile_rpath$rpath" | ||||
|  	  for libdir in $rpath; do | ||||
| +	    case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
 | ||||
|  	    if test -n "$hardcode_libdir_flag_spec"; then | ||||
|  	      if test -n "$hardcode_libdir_separator"; then | ||||
|  		if test -z "$hardcode_libdirs"; then | ||||
| @@ -7798,6 +7799,7 @@ EOF
 | ||||
|        rpath= | ||||
|        hardcode_libdirs= | ||||
|        for libdir in $compile_rpath $finalize_rpath; do | ||||
| +	case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
 | ||||
|  	if test -n "$hardcode_libdir_flag_spec"; then | ||||
|  	  if test -n "$hardcode_libdir_separator"; then | ||||
|  	    if test -z "$hardcode_libdirs"; then | ||||
| @@ -7849,6 +7851,7 @@ EOF
 | ||||
|        rpath= | ||||
|        hardcode_libdirs= | ||||
|        for libdir in $finalize_rpath; do | ||||
| +	case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
 | ||||
|  	if test -n "$hardcode_libdir_flag_spec"; then | ||||
|  	  if test -n "$hardcode_libdir_separator"; then | ||||
|  	    if test -z "$hardcode_libdirs"; then | ||||
| Only in binutils-2.37: ltmain.sh.orig | ||||
							
								
								
									
										28
									
								
								binutils-no-config-h-check.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								binutils-no-config-h-check.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| --- a/bfd/bfd-in.h	2012-08-02 10:56:34.561769686 +0100
 | ||||
| +++ b/bfd/bfd-in.h	2012-08-02 11:13:27.134797755 +0100
 | ||||
| @@ -25,11 +25,6 @@
 | ||||
|  #ifndef __BFD_H_SEEN__ | ||||
|  #define __BFD_H_SEEN__ | ||||
|   | ||||
| -/* PR 14072: Ensure that config.h is included first.  */
 | ||||
| -#if !defined PACKAGE && !defined PACKAGE_VERSION
 | ||||
| -#error config.h must be included before this header
 | ||||
| -#endif
 | ||||
| -
 | ||||
|  #ifdef __cplusplus | ||||
|  extern "C" { | ||||
|  #endif | ||||
| --- a/bfd/bfd-in2.h	2012-08-02 10:56:34.349769680 +0100
 | ||||
| +++ b/bfd/bfd-in2.h	2012-08-02 11:13:40.015798113 +0100
 | ||||
| @@ -32,11 +32,6 @@
 | ||||
|  #ifndef __BFD_H_SEEN__ | ||||
|  #define __BFD_H_SEEN__ | ||||
|   | ||||
| -/* PR 14072: Ensure that config.h is included first.  */
 | ||||
| -#if !defined PACKAGE && !defined PACKAGE_VERSION
 | ||||
| -#error config.h must be included before this header
 | ||||
| -#endif
 | ||||
| -
 | ||||
|  #ifdef __cplusplus | ||||
|  extern "C" { | ||||
|  #endif | ||||
							
								
								
									
										44
									
								
								binutils-objcopy-note-merge-speedup.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								binutils-objcopy-note-merge-speedup.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | ||||
| --- binutils.orig/binutils/objcopy.c	2023-01-16 12:15:46.405649346 +0000
 | ||||
| +++ binutils-2.39/binutils/objcopy.c	2023-01-16 12:16:48.892667868 +0000
 | ||||
| @@ -2383,6 +2383,8 @@ merge_gnu_build_notes (bfd *          ab
 | ||||
|  	    other note then if they are both of the same type (open | ||||
|  	    or func) then they can be merged and one deleted.  If | ||||
|  	    they are of different types then they cannot be merged.  */ | ||||
| +  objcopy_internal_note * prev_note = NULL;
 | ||||
| +
 | ||||
|    for (pnote = pnotes; pnote < pnotes_end; pnote ++) | ||||
|      { | ||||
|        /* Skip already deleted notes. | ||||
| @@ -2404,7 +2406,9 @@ merge_gnu_build_notes (bfd *          ab
 | ||||
|        objcopy_internal_note * back; | ||||
|   | ||||
|        /* Rule 2: Check to see if there is an identical previous note.  */ | ||||
| -      for (iter = 0, back = pnote - 1; back >= pnotes; back --)
 | ||||
| +      for (iter = 0, back = prev_note ? prev_note : pnote - 1;
 | ||||
| +	   back >= pnotes;
 | ||||
| +	   back --)
 | ||||
|  	{ | ||||
|  	  if (is_deleted_note (back)) | ||||
|  	    continue; | ||||
| @@ -2466,11 +2470,18 @@ merge_gnu_build_notes (bfd *          ab
 | ||||
|  	      break; | ||||
|  	    } | ||||
|  	} | ||||
| -#if DEBUG_MERGE
 | ||||
| +
 | ||||
| +
 | ||||
|        if (! is_deleted_note (pnote)) | ||||
| -	merge_debug ("Unable to do anything with note at %#08lx\n",
 | ||||
| -		     (pnote->note.namedata - (char *) contents) - 12);
 | ||||
| +	{
 | ||||
| +	  /* Keep a pointer to this note, so that we can
 | ||||
| +	     start the next search for rule 2 matches here.  */
 | ||||
| +	  prev_note = pnote;
 | ||||
| +#if DEBUG_MERGE
 | ||||
| +	  merge_debug ("Unable to do anything with note at %#08lx\n",
 | ||||
| +		       (pnote->note.namedata - (char *) contents) - 12);
 | ||||
|  #endif | ||||
| +	}
 | ||||
|      } | ||||
|   | ||||
|    /* Resort the notes.  */ | ||||
							
								
								
									
										35
									
								
								binutils-readelf-other-sym-info.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								binutils-readelf-other-sym-info.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| --- binutils.orig/binutils/readelf.c	2020-07-24 15:08:30.317597020 +0100
 | ||||
| +++ binutils-2.35/binutils/readelf.c	2020-07-24 15:09:39.029155552 +0100
 | ||||
| @@ -12069,11 +12069,13 @@ print_dynamic_symbol (Filedata *filedata
 | ||||
|        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)); | ||||
|   | ||||
| @@ -12112,7 +12114,17 @@ print_dynamic_symbol (Filedata *filedata
 | ||||
|  		version_string); | ||||
|      } | ||||
|   | ||||
| -  putchar ('\n');
 | ||||
| +#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');
 | ||||
|   | ||||
|    if (ELF_ST_BIND (psym->st_info) == STB_LOCAL | ||||
|        && section != NULL | ||||
							
								
								
									
										50
									
								
								binutils-reloc-symtab.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								binutils-reloc-symtab.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | ||||
| --- binutils.orig/bfd/elf.c	2023-03-30 10:01:40.824181703 +0100
 | ||||
| +++ binutils-2.40/bfd/elf.c	2023-03-30 10:02:23.103135337 +0100
 | ||||
| @@ -3877,21 +3877,23 @@ assign_section_numbers (bfd *abfd, struc
 | ||||
|  	{ | ||||
|  	case SHT_REL: | ||||
|  	case SHT_RELA: | ||||
| -	  /* A reloc section which we are treating as a normal BFD
 | ||||
| -	     section.  sh_link is the section index of the symbol
 | ||||
| -	     table.  sh_info is the section index of the section to
 | ||||
| -	     which the relocation entries apply.  We assume that an
 | ||||
| -	     allocated reloc section uses the dynamic symbol table
 | ||||
| -	     if there is one.  Otherwise we guess the normal symbol
 | ||||
| -	     table.  FIXME: How can we be sure?  */
 | ||||
| -	  if (d->this_hdr.sh_link == 0 && (sec->flags & SEC_ALLOC) != 0)
 | ||||
| +	  /* sh_link is the section index of the symbol table.
 | ||||
| +	     sh_info is the section index of the section to which the
 | ||||
| +	     relocation entries apply.  */
 | ||||
| +	  if (d->this_hdr.sh_link == 0)
 | ||||
|  	    { | ||||
| -	      s = bfd_get_section_by_name (abfd, ".dynsym");
 | ||||
| -	      if (s != NULL)
 | ||||
| -		d->this_hdr.sh_link = elf_section_data (s)->this_idx;
 | ||||
| +	      /* FIXME maybe: If this is a reloc section which we are
 | ||||
| +		 treating as a normal section then we likely should
 | ||||
| +		 not be assuming its sh_link is .dynsym or .symtab.  */
 | ||||
| +	      if ((sec->flags & SEC_ALLOC) != 0)
 | ||||
| +		{
 | ||||
| +		  s = bfd_get_section_by_name (abfd, ".dynsym");
 | ||||
| +		  if (s != NULL)
 | ||||
| +		    d->this_hdr.sh_link = elf_section_data (s)->this_idx;
 | ||||
| +		}
 | ||||
| +	      else
 | ||||
| +		d->this_hdr.sh_link = elf_onesymtab (abfd);
 | ||||
|  	    } | ||||
| -	  if (d->this_hdr.sh_link == 0)
 | ||||
| -	    d->this_hdr.sh_link = elf_onesymtab (abfd);
 | ||||
|   | ||||
|  	  s = elf_get_reloc_section (sec); | ||||
|  	  if (s != NULL) | ||||
| --- binutils.orig/binutils/objcopy.c	2023-03-30 10:01:41.063181441 +0100
 | ||||
| +++ binutils-2.40/binutils/objcopy.c	2023-03-30 12:25:41.439108276 +0100
 | ||||
| @@ -2256,7 +2256,7 @@ merge_gnu_build_notes (bfd *          ab
 | ||||
|  	{ | ||||
|  	  if (pnote->note.namedata[4] == '2') | ||||
|  	    ++ version_2_seen; | ||||
| -	  else if (pnote->note.namedata[4] == '3')
 | ||||
| +	  else if (pnote->note.namedata[4] == '3' || pnote->note.namedata[4] == '4')
 | ||||
|  	    ++ version_3_seen; | ||||
|  	  else | ||||
|  	    { | ||||
							
								
								
									
										167
									
								
								binutils-revert-PLT-elision.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								binutils-revert-PLT-elision.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,167 @@ | ||||
| diff -rup binutils.orig/ld/testsuite/ld-i386/pltgot-1.d binutils-2.29.1/ld/testsuite/ld-i386/pltgot-1.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-i386/pltgot-1.d	2017-11-15 13:32:39.335065263 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-i386/pltgot-1.d	2017-11-15 15:03:55.649727195 +0000
 | ||||
| @@ -2,6 +2,7 @@
 | ||||
|  #readelf: -S --wide | ||||
|  #as: --32 | ||||
|   | ||||
| +#pass
 | ||||
|  #... | ||||
|   +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* | ||||
|  #... | ||||
| diff -rup binutils.orig/ld/testsuite/ld-i386/pltgot-2.d binutils-2.29.1/ld/testsuite/ld-i386/pltgot-2.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-i386/pltgot-2.d	2017-11-15 13:32:39.329065335 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-i386/pltgot-2.d	2017-11-15 15:04:20.803430034 +0000
 | ||||
| @@ -3,7 +3,6 @@
 | ||||
|  #readelf: -d --wide | ||||
|  #as: --32 | ||||
|   | ||||
| -#failif
 | ||||
|  #... | ||||
|   +0x[0-9a-f]+ +\(PLTREL.* | ||||
|  #... | ||||
| diff -rup binutils.orig/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2d.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-i386/pr19636-2d.d	2017-11-15 13:32:39.336065251 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2d.d	2017-11-15 15:03:00.413379749 +0000
 | ||||
| @@ -9,7 +9,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 -rup binutils.orig/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2e.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-i386/pr19636-2e.d	2017-11-15 13:32:39.330065323 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2e.d	2017-11-15 15:03:28.928042882 +0000
 | ||||
| @@ -9,7 +9,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 -rup binutils.orig/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-1.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/pltgot-1.d	2017-11-15 13:32:39.415064300 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-1.d	2017-11-15 15:08:39.333375801 +0000
 | ||||
| @@ -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 -rup binutils.orig/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-2.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/pltgot-2.d	2017-11-15 13:32:39.404064432 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-2.d	2017-11-15 15:08:59.031143095 +0000
 | ||||
| @@ -3,7 +3,6 @@
 | ||||
|  #readelf: -d --wide | ||||
|  #as: --64 | ||||
|   | ||||
| -#failif
 | ||||
|  #... | ||||
|   +0x[0-9a-f]+ +\(PLTREL.* | ||||
|  #... | ||||
| diff -rup binutils.orig/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.29.1/ld/testsuite/ld-x86-64/plt-main.rd
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/plt-main.rd	2017-11-15 13:32:39.407064397 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/plt-main.rd	2017-11-15 15:06:17.244054423 +0000
 | ||||
| @@ -1,4 +1,3 @@
 | ||||
| -#failif
 | ||||
|  #... | ||||
|  [0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0 | ||||
|  #... | ||||
| diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/pr20830a.d	2017-11-15 13:32:39.412064336 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a.d	2017-11-15 15:15:09.918750288 +0000
 | ||||
| @@ -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 -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a-now.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/pr20830a-now.d	2017-11-15 13:32:39.413064324 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a-now.d	2017-11-15 15:16:08.227055104 +0000
 | ||||
| @@ -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 -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/pr20830b.d	2017-11-15 13:32:39.413064324 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b.d	2017-11-15 15:16:20.115913358 +0000
 | ||||
| @@ -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 -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b-now.d
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/pr20830b-now.d	2017-11-15 13:32:39.411064348 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b-now.d	2017-11-15 15:16:29.012807282 +0000
 | ||||
| @@ -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 -rup binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd
 | ||||
| --- binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd	2017-11-15 13:32:39.417064276 +0000
 | ||||
| +++ binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd	2017-11-15 15:05:02.950932110 +0000
 | ||||
| @@ -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 | ||||
| --- binutils.orig/bfd/elfxx-x86.c	2018-01-22 15:59:25.875788033 +0000
 | ||||
| +++ binutils-2.30.0/bfd/elfxx-x86.c	2018-01-22 16:00:20.789146597 +0000
 | ||||
| @@ -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 | ||||
| --- binutils.orig/ld/testsuite/ld-i386/pr20830.d	2018-07-09 09:49:51.277239857 +0100
 | ||||
| +++ binutils-2.30.90/ld/testsuite/ld-i386/pr20830.d	2018-07-09 10:32:41.113356733 +0100
 | ||||
| @@ -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 | ||||
							
								
								
									
										27
									
								
								binutils-special-sections-in-groups.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								binutils-special-sections-in-groups.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| --- binutils.orig/bfd/elf.c	2018-10-19 11:42:10.107277490 +0100
 | ||||
| +++ binutils-2.31.1/bfd/elf.c	2018-10-19 11:44:33.607105801 +0100
 | ||||
| @@ -830,7 +830,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
 | ||||
|  	} | ||||
|      } | ||||
|   | ||||
| -  if (elf_group_name (newsect) == NULL)
 | ||||
| +  if (elf_group_name (newsect) == NULL
 | ||||
| +      /* OS specific sections might be in a group (eg ARM's ARM_EXIDX section)
 | ||||
| +	 but they will not have been added to the group because they do not
 | ||||
| +	 have contents that the ELF code in the BFD library knows how to
 | ||||
| +	 process.  This is OK though - we rely upon the target backends to
 | ||||
| +	 handle these sections for us.  */
 | ||||
| +      && hdr->sh_type < SHT_LOOS)
 | ||||
|      { | ||||
|        /* xgettext:c-format */ | ||||
|        _bfd_error_handler (_("%pB: no group info for section '%pA'"), | ||||
| @@ -936,7 +942,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 | ||||
| -		   && idx->shdr->sh_type != SHT_REL)
 | ||||
| +		   && idx->shdr->sh_type != SHT_REL
 | ||||
| +		   && idx->shdr->sh_type < SHT_LOOS)
 | ||||
|  	    { | ||||
|  	      /* There are some unknown sections in the group.  */ | ||||
|  	      _bfd_error_handler | ||||
							
								
								
									
										1127
									
								
								binutils-testsuite-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1127
									
								
								binutils-testsuite-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										36
									
								
								binutils-update-linker-manual.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								binutils-update-linker-manual.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| diff -rup binutils.orig/ld/ld.1 binutils-2.38/ld/ld.1
 | ||||
| --- binutils.orig/ld/ld.1	2022-05-27 10:56:44.937044892 +0100
 | ||||
| +++ binutils-2.38/ld/ld.1	2022-05-27 11:10:50.311802310 +0100
 | ||||
| @@ -2595,7 +2595,7 @@ systems may not understand them. If you
 | ||||
|  \&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed | ||||
|  and older dynamic tags will be omitted. | ||||
|  If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be | ||||
| -created. By default, the new dynamic tags are not created. Note that
 | ||||
| +created. By default, the new dynamic tags are created. Note that
 | ||||
|  those options are only available for \s-1ELF\s0 systems. | ||||
|  .IP "\fB\-\-hash\-size=\fR\fInumber\fR" 4 | ||||
|  .IX Item "--hash-size=number" | ||||
| diff -rup binutils.orig/ld/ld.info binutils-2.38/ld/ld.info
 | ||||
| --- binutils.orig/ld/ld.info	2022-05-27 11:01:12.286346357 +0100
 | ||||
| +++ binutils-2.38/ld/ld.info	2022-05-27 11:11:24.585709176 +0100
 | ||||
| @@ -2236,7 +2236,7 @@ GNU linker:
 | ||||
|       '--enable-new-dtags', the new dynamic tags will be created as | ||||
|       needed and older dynamic tags will be omitted.  If you specify | ||||
|       '--disable-new-dtags', no new dynamic tags will be created.  By | ||||
| -     default, the new dynamic tags are not created.  Note that those
 | ||||
| +     default, the new dynamic tags are created.  Note that those
 | ||||
|       options are only available for ELF systems. | ||||
|   | ||||
|  '--hash-size=NUMBER' | ||||
| diff -rup binutils.orig/ld/ld.texi binutils-2.38/ld/ld.texi
 | ||||
| --- binutils.orig/ld/ld.texi	2022-05-27 11:01:24.081314960 +0100
 | ||||
| +++ binutils-2.38/ld/ld.texi	2022-05-27 11:10:05.608923798 +0100
 | ||||
| @@ -2796,7 +2796,7 @@ systems may not understand them. If you
 | ||||
|  @option{--enable-new-dtags}, the new dynamic tags will be created as needed | ||||
|  and older dynamic tags will be omitted. | ||||
|  If you specify @option{--disable-new-dtags}, no new dynamic tags will be | ||||
| -created. By default, the new dynamic tags are not created. Note that
 | ||||
| +created. By default, the new dynamic tags are created. Note that
 | ||||
|  those options are only available for ELF systems. | ||||
|   | ||||
|  @kindex --hash-size=@var{number} | ||||
							
								
								
									
										46
									
								
								binutils-version.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								binutils-version.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | ||||
| diff -rup binutils.orig/bfd/Makefile.am binutils-2.38/bfd/Makefile.am
 | ||||
| --- binutils.orig/bfd/Makefile.am	2022-02-09 14:10:42.659300681 +0000
 | ||||
| +++ binutils-2.38/bfd/Makefile.am	2022-02-09 14:12:40.562532916 +0000
 | ||||
| @@ -977,8 +977,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD
 | ||||
|  bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in | ||||
|  	$(AM_V_GEN)\ | ||||
|  	bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ | ||||
| -	bfd_version_string="\"$(VERSION)\"" ;\
 | ||||
| -	bfd_soversion="$(VERSION)" ;\
 | ||||
| +	bfd_version_string="\"$(VERSION)-%{release}\"" ;\
 | ||||
| +	bfd_soversion="$(VERSION)-%{release}" ;\
 | ||||
|  	bfd_version_package="\"$(PKGVERSION)\"" ;\ | ||||
|  	report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ | ||||
|  	. $(srcdir)/development.sh ;\ | ||||
| @@ -989,7 +989,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
 | ||||
|  	fi ;\ | ||||
|  	$(SED) -e "s,@bfd_version@,$$bfd_version," \ | ||||
|  	    -e "s,@bfd_version_string@,$$bfd_version_string," \ | ||||
| -	    -e "s,@bfd_version_package@,$$bfd_version_package," \
 | ||||
| +	    -e "s,@bfd_version_package@,\"version \"," \
 | ||||
|  	    -e "s,@report_bugs_to@,$$report_bugs_to," \ | ||||
|  	    < $(srcdir)/version.h > $@; \ | ||||
|  	echo "$${bfd_soversion}" > libtool-soversion | ||||
| diff -rup binutils.orig/bfd/Makefile.in binutils-2.38/bfd/Makefile.in
 | ||||
| --- binutils.orig/bfd/Makefile.in	2022-02-09 14:10:42.653300720 +0000
 | ||||
| +++ binutils-2.38/bfd/Makefile.in	2022-02-09 14:19:03.362040188 +0000
 | ||||
| @@ -2094,8 +2094,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) $(MKDOC
 | ||||
|  bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in | ||||
|  	$(AM_V_GEN)\ | ||||
|  	bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ | ||||
| -	bfd_version_string="\"$(VERSION)\"" ;\
 | ||||
| -	bfd_soversion="$(VERSION)" ;\
 | ||||
| +	bfd_version_string="\"$(VERSION)-%{release}\"" ;\
 | ||||
| +	bfd_soversion="$(VERSION)-%{release}" ;\
 | ||||
|  	bfd_version_package="\"$(PKGVERSION)\"" ;\ | ||||
|  	report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ | ||||
|  	. $(srcdir)/development.sh ;\ | ||||
| @@ -2106,7 +2106,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
 | ||||
|  	fi ;\ | ||||
|  	$(SED) -e "s,@bfd_version@,$$bfd_version," \ | ||||
|  	    -e "s,@bfd_version_string@,$$bfd_version_string," \ | ||||
| -	    -e "s,@bfd_version_package@,$$bfd_version_package," \
 | ||||
| +	    -e "s,@bfd_version_package@,\"version \"," \
 | ||||
|  	    -e "s,@report_bugs_to@,$$report_bugs_to," \ | ||||
|  	    < $(srcdir)/version.h > $@; \ | ||||
|  	echo "$${bfd_soversion}" > libtool-soversion | ||||
							
								
								
									
										4193
									
								
								binutils.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4193
									
								
								binutils.spec
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										70
									
								
								binutilscompare
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										70
									
								
								binutilscompare
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,70 @@ | ||||
| #! /usr/bin/perl | ||||
| # Compare build logs for the testsuite results regressions. | ||||
| # $Id$ | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| use Data::Dumper; | ||||
| 
 | ||||
| my $reverse=shift @ARGV if ($ARGV[0]||"") eq "-r"; | ||||
| 
 | ||||
| sub readfile($) | ||||
| { | ||||
| my($filename)=@_; | ||||
| 
 | ||||
| 	local *F; | ||||
| 	open F,$filename or die "open \"$filename\": $!"; | ||||
| 	my $F=do { local $/; <F>; }; | ||||
| 	close F or die "close \"$filename\": $!"; | ||||
| 	return $F; | ||||
| } | ||||
| 
 | ||||
| sub writefile($$) | ||||
| { | ||||
| my($filename,$content)=@_; | ||||
| 
 | ||||
| 	local *F; | ||||
| 	open F,">$filename" or die "create \"$filename\": $!"; | ||||
| 	print F $content or die "write \"$filename\": $!"; | ||||
| 	close F or die "close \"$filename\": $!"; | ||||
| } | ||||
| 
 | ||||
| local *DIR; | ||||
| opendir DIR,"tests" or die "opendir: $!"; | ||||
| my %arch; | ||||
| for my $name (sort readdir(DIR)) { | ||||
| 	next if $name!~/-([^-]*)[.]log$/o; | ||||
| 	my $arch=$1; | ||||
| 	(my $sum=$name)=~s/log$/sum/ or die; | ||||
| 	my $i=readfile "tests/$name"; | ||||
| 	my $o=""; | ||||
| 	while ($i=~/\n(Native configuration is.*?Summary ===\n.*?\n)make\Q[\E/gs) { | ||||
| 		$o.=$1; | ||||
| 	} | ||||
| 	# Version string differs. | ||||
| 	$o=~s{/builddir/build/BUILD/binutils-[^/]*/+}{}g; | ||||
| 	$o=~s{^(Version .*) 20\d{6}$}{$1}mg; | ||||
| 	$o=~s{^(\Q../as-new\E) 20\d{6}$}{$1}mg; | ||||
| 	$o=~s{^(build-[^/]*/ld/ld-new) 20\d{6}$}{$1}mg; | ||||
| 	writefile "tests/$sum",$o; | ||||
| 	push @{$arch{$arch}},$sum; | ||||
| } | ||||
| closedir DIR or die "closedir: $!"; | ||||
| 
 | ||||
| for (values(%arch)) { | ||||
| 	next if 2==@$_; | ||||
| 	warn "Single element: ".${$_}[0]."\n" if 1==@$_; | ||||
| 	die "Not 2 elements:\n".Dumper($_) if 1!=@$_; | ||||
| } | ||||
| 
 | ||||
| system("rm -f tests/gdbcompare-*.diff") and die; | ||||
| 
 | ||||
| for my $arch (sort keys(%arch)) { | ||||
| 	next if 2!=@{$arch{$arch}}; | ||||
| 	# sub trans { return {"."=>0,"-"=>1}->{($_[0]=~/([-.])[^-.]+[.]\w+$/)[0]}.$_[0]; }; | ||||
| 	sub trans { return $_[0]; }; | ||||
| 	my @sorted=sort { my $a1=trans $a; my $b1=trans $b; ($b1 cmp $a1) * ($reverse ? -1 : +1); } @{$arch{$arch}}; | ||||
| 	do { system $_ and die $_; } for "diff -u tests/'".$sorted[1]."' tests/'".$sorted[0]."' >tests/gdbcompare-'$arch'.sum.diff;true"; | ||||
| } | ||||
| 
 | ||||
| system("vim tests/gdbcompare-*.sum.diff"); | ||||
							
								
								
									
										15
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - fedora-* | ||||
| decision_context: bodhi_update_push_stable | ||||
| subject_type: koji_build | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - rhel-9 | ||||
| decision_context: osci_compose_gate | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation} | ||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| SHA512 (binutils-2.40.tar.xz) = a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 | ||||
| SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user