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