Fix a potential buffer overrun when parsing a corrupt ELF file. (#1632912)
Add a .attach_to_group pseuo-op to assembler (for use by annobin). (#1630574) Stop the binutils from statically linking with libstdc++. (#1630550) Include gold testsuite results in test logs. Disable readelf's reporting of gaps in build notes. (#1623556)
This commit is contained in:
		
							parent
							
								
									ae9f9e49b7
								
							
						
					
					
						commit
						b25b0811ad
					
				
							
								
								
									
										101
									
								
								binutils-CVE-2018-17358.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								binutils-CVE-2018-17358.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,101 @@ | |||||||
|  | diff -rup binutils.orig/bfd/dwarf2.c binutils-2.30/bfd/dwarf2.c
 | ||||||
|  | --- binutils.orig/bfd/dwarf2.c	2018-09-26 15:07:47.162863937 +0100
 | ||||||
|  | +++ binutils-2.30/bfd/dwarf2.c	2018-09-26 15:08:50.868368183 +0100
 | ||||||
|  | @@ -527,6 +527,7 @@ read_section (bfd *	      abfd,
 | ||||||
|  |    asection *msec; | ||||||
|  |    const char *section_name = sec->uncompressed_name; | ||||||
|  |    bfd_byte *contents = *section_buffer; | ||||||
|  | +  bfd_size_type amt;
 | ||||||
|  |   | ||||||
|  |    /* The section may have already been read.  */ | ||||||
|  |    if (contents == NULL) | ||||||
|  | @@ -549,7 +550,14 @@ read_section (bfd *	      abfd,
 | ||||||
|  |        *section_size = msec->rawsize ? msec->rawsize : msec->size; | ||||||
|  |        /* Paranoia - alloc one extra so that we can make sure a string | ||||||
|  |  	 section is NUL terminated.  */ | ||||||
|  | -      contents = (bfd_byte *) bfd_malloc (*section_size + 1);
 | ||||||
|  | +      amt = *section_size + 1;
 | ||||||
|  | +      if (amt == 0)
 | ||||||
|  | +	{
 | ||||||
|  | +	  bfd_set_error (bfd_error_no_memory);
 | ||||||
|  | +	  return FALSE;
 | ||||||
|  | +	}
 | ||||||
|  | +      contents = (bfd_byte *) bfd_malloc (amt);
 | ||||||
|  | +
 | ||||||
|  |        if (contents == NULL) | ||||||
|  |  	return FALSE; | ||||||
|  |        if (syms | ||||||
|  | diff -rup binutils.orig/bfd/syms.c binutils-2.30/bfd/syms.c
 | ||||||
|  | --- binutils.orig/bfd/syms.c	2018-09-26 15:07:47.162863937 +0100
 | ||||||
|  | +++ binutils-2.30/bfd/syms.c	2018-09-26 15:11:41.671038993 +0100
 | ||||||
|  | @@ -1035,6 +1035,10 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  					 0, strsize)) | ||||||
|  |  	return FALSE; | ||||||
|  |   | ||||||
|  | +      /* Stab strings ought to be nul terminated.  Ensure the last one
 | ||||||
|  | +	 is, to prevent running off the end of the buffer.  */
 | ||||||
|  | +      info->strs[strsize - 1] = 0;
 | ||||||
|  | +
 | ||||||
|  |        /* If this is a relocatable object file, we have to relocate | ||||||
|  |  	 the entries in .stab.  This should always be simple 32 bit | ||||||
|  |  	 relocations against symbols defined in this object file, so | ||||||
|  | @@ -1073,7 +1077,8 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  		  || r->howto->bitsize != 32 | ||||||
|  |  		  || r->howto->pc_relative | ||||||
|  |  		  || r->howto->bitpos != 0 | ||||||
|  | -		  || r->howto->dst_mask != 0xffffffff)
 | ||||||
|  | +		  || r->howto->dst_mask != 0xffffffff
 | ||||||
|  | +		  || r->address * bfd_octets_per_byte (abfd) + 4 > stabsize)
 | ||||||
|  |  		{ | ||||||
|  |  		  _bfd_error_handler | ||||||
|  |  		    (_("unsupported .stab relocation")); | ||||||
|  | @@ -1195,7 +1200,8 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  		{ | ||||||
|  |  		  nul_fun = stab; | ||||||
|  |  		  nul_str = str; | ||||||
|  | -		  if (file_name >= (char *) info->strs + strsize || file_name < (char *) str)
 | ||||||
|  | +		  if (file_name >= (char *) info->strs + strsize
 | ||||||
|  | +		      || file_name < (char *) str)
 | ||||||
|  |  		    file_name = NULL; | ||||||
|  |  		  if (stab + STABSIZE + TYPEOFF < info->stabs + stabsize | ||||||
|  |  		      && *(stab + STABSIZE + TYPEOFF) == (bfd_byte) N_SO) | ||||||
|  | @@ -1206,7 +1212,8 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  		      directory_name = file_name; | ||||||
|  |  		      file_name = ((char *) str | ||||||
|  |  				   + bfd_get_32 (abfd, stab + STRDXOFF)); | ||||||
|  | -		      if (file_name >= (char *) info->strs + strsize || file_name < (char *) str)
 | ||||||
|  | +		      if (file_name >= (char *) info->strs + strsize
 | ||||||
|  | +			  || file_name < (char *) str)
 | ||||||
|  |  			file_name = NULL; | ||||||
|  |  		    } | ||||||
|  |  		} | ||||||
|  | @@ -1217,7 +1224,8 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  	      file_name = (char *) str + bfd_get_32 (abfd, stab + STRDXOFF); | ||||||
|  |  	      /* PR 17512: file: 0c680a1f.  */ | ||||||
|  |  	      /* PR 17512: file: 5da8aec4.  */ | ||||||
|  | -	      if (file_name >= (char *) info->strs + strsize || file_name < (char *) str)
 | ||||||
|  | +	      if (file_name >= (char *) info->strs + strsize
 | ||||||
|  | +		  || file_name < (char *) str)
 | ||||||
|  |  		file_name = NULL; | ||||||
|  |  	      break; | ||||||
|  |   | ||||||
|  | @@ -1226,7 +1234,8 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  	      function_name = (char *) str + bfd_get_32 (abfd, stab + STRDXOFF); | ||||||
|  |  	      if (function_name == (char *) str) | ||||||
|  |  		continue; | ||||||
|  | -	      if (function_name >= (char *) info->strs + strsize)
 | ||||||
|  | +	      if (function_name >= (char *) info->strs + strsize
 | ||||||
|  | +		  || function_name < (char *) str)
 | ||||||
|  |  		function_name = NULL; | ||||||
|  |   | ||||||
|  |  	      nul_fun = NULL; | ||||||
|  | @@ -1335,7 +1344,8 @@ _bfd_stab_section_find_nearest_line (bfd
 | ||||||
|  |  	  if (val <= offset) | ||||||
|  |  	    { | ||||||
|  |  	      file_name = (char *) str + bfd_get_32 (abfd, stab + STRDXOFF); | ||||||
|  | -	      if (file_name >= (char *) info->strs + strsize || file_name < (char *) str)
 | ||||||
|  | +	      if (file_name >= (char *) info->strs + strsize
 | ||||||
|  | +		  || file_name < (char *) str)
 | ||||||
|  |  		file_name = NULL; | ||||||
|  |  	      *pline = 0; | ||||||
|  |  	    } | ||||||
							
								
								
									
										68
									
								
								binutils-attach-to-group.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								binutils-attach-to-group.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,68 @@ | |||||||
|  | diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.30/gas/config/obj-elf.c
 | ||||||
|  | --- binutils.orig/gas/config/obj-elf.c	2018-09-24 17:50:06.974172867 +0100
 | ||||||
|  | +++ binutils-2.30/gas/config/obj-elf.c	2018-09-25 15:19:33.559830794 +0100
 | ||||||
|  | @@ -82,9 +82,11 @@ static void obj_elf_gnu_attribute (int);
 | ||||||
|  |  static void obj_elf_tls_common (int); | ||||||
|  |  static void obj_elf_lcomm (int); | ||||||
|  |  static void obj_elf_struct (int); | ||||||
|  | +static void obj_elf_attach_to_group (int);
 | ||||||
|  |   | ||||||
|  |  static const pseudo_typeS elf_pseudo_table[] = | ||||||
|  |  { | ||||||
|  | +  {"attach_to_group", obj_elf_attach_to_group, 0},
 | ||||||
|  |    {"comm", obj_elf_common, 0}, | ||||||
|  |    {"common", obj_elf_common, 1}, | ||||||
|  |    {"ident", obj_elf_ident, 0}, | ||||||
|  | @@ -1007,6 +1009,27 @@ obj_elf_section_name (void)
 | ||||||
|  |    return name; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +static void
 | ||||||
|  | +obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED)
 | ||||||
|  | +{
 | ||||||
|  | +  const char * gname = obj_elf_section_name ();
 | ||||||
|  | +
 | ||||||
|  | +  if (gname == NULL)
 | ||||||
|  | +    {
 | ||||||
|  | +      as_warn ("group name not parseable");
 | ||||||
|  | +      return;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  | +  if (elf_group_name (now_seg))
 | ||||||
|  | +    {
 | ||||||
|  | +      as_warn ("already has a group");
 | ||||||
|  | +      return;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  | +  elf_group_name (now_seg) = xstrdup (gname);
 | ||||||
|  | +  elf_section_flags (now_seg) |= SHF_GROUP;
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  void | ||||||
|  |  obj_elf_section (int push) | ||||||
|  |  { | ||||||
|  | diff -rup binutils.orig/gas/doc/as.texinfo binutils-2.30/gas/doc/as.texinfo
 | ||||||
|  | --- binutils.orig/gas/doc/as.texi	2018-09-24 17:50:06.984172788 +0100
 | ||||||
|  | +++ binutils-2.30/gas/doc/as.texi	2018-09-25 15:19:43.557748972 +0100
 | ||||||
|  | @@ -4407,6 +4407,7 @@ Some machine configurations provide addi
 | ||||||
|  |  * Altmacro::                    @code{.altmacro} | ||||||
|  |  * Ascii::                       @code{.ascii "@var{string}"}@dots{} | ||||||
|  |  * Asciz::                       @code{.asciz "@var{string}"}@dots{} | ||||||
|  | +* Attach_to_group::             @code{.attach_to_group @var{name}}
 | ||||||
|  |  * Balign::                      @code{.balign @var{abs-expr} , @var{abs-expr}} | ||||||
|  |  * Bundle directives::           @code{.bundle_align_mode @var{abs-expr}}, etc | ||||||
|  |  * Byte::                        @code{.byte @var{expressions}} | ||||||
|  | @@ -4703,6 +4704,12 @@ trailing zero byte) into consecutive add
 | ||||||
|  |  @code{.asciz} is just like @code{.ascii}, but each string is followed by | ||||||
|  |  a zero byte.  The ``z'' in @samp{.asciz} stands for ``zero''. | ||||||
|  |   | ||||||
|  | +@node Attach_to_group
 | ||||||
|  | +@section @code{.attach_to_group @var{name}}
 | ||||||
|  | +Attaches the current section to the named group.  This is like declaring
 | ||||||
|  | +the section with the @code{G} attribute, but can be done after the section
 | ||||||
|  | +has been created.
 | ||||||
|  | +
 | ||||||
|  |  @node Balign | ||||||
|  |  @section @code{.balign[wl] @var{abs-expr}, @var{abs-expr}, @var{abs-expr}} | ||||||
|  |   | ||||||
|  | 
 | ||||||
							
								
								
									
										16
									
								
								binutils-disable-readelf-gap-reports.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								binutils-disable-readelf-gap-reports.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | --- binutils.orig/binutils/readelf.c	2018-09-05 14:08:22.733186922 +0100
 | ||||||
|  | +++ binutils-2.30/binutils/readelf.c	2018-09-05 15:35:38.009749485 +0100
 | ||||||
|  | @@ -17634,11 +17634,12 @@ print_gnu_build_attribute_description (E
 | ||||||
|  |   | ||||||
|  |    if (is_open_attr) | ||||||
|  |      { | ||||||
|  | +#if 0
 | ||||||
|  |        /* FIXME: Need to properly allow for section alignment.  16 is just the alignment used on x86_64.  */ | ||||||
|  |        if (global_end > 0 && start > BFD_ALIGN (global_end, 16)) | ||||||
|  |  	warn (_("Gap in build notes detected from %#lx to %#lx\n"), | ||||||
|  |  	      global_end + 1, start - 1); | ||||||
|  | -
 | ||||||
|  | +#endif
 | ||||||
|  |        printf (_("    Applies to region from %#lx"), start); | ||||||
|  |        global_offset = start; | ||||||
|  |   | ||||||
							
								
								
									
										83
									
								
								binutils-do-not-link-with-static-libstdc++.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								binutils-do-not-link-with-static-libstdc++.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | |||||||
|  | diff -rup binutils.orig/configure binutils-2.30/configure
 | ||||||
|  | --- binutils.orig/configure	2018-09-24 17:50:06.967172922 +0100
 | ||||||
|  | +++ binutils-2.30/configure	2018-09-24 17:51:16.648624865 +0100
 | ||||||
|  | @@ -4996,49 +4996,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.30/configure.ac
 | ||||||
|  | --- binutils.orig/configure.ac	2018-09-24 17:50:07.241170767 +0100
 | ||||||
|  | +++ binutils-2.30/configure.ac	2018-09-24 17:50:29.908992486 +0100
 | ||||||
|  | @@ -1288,26 +1288,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_CMP_IGNORE_INITIAL | ||||||
|  |   | ||||||
| @ -46,7 +46,7 @@ | |||||||
| 
 | 
 | ||||||
| %if %{with debug} | %if %{with debug} | ||||||
| %undefine with_testsuite | %undefine with_testsuite | ||||||
| %endif1599521) | %endif | ||||||
| 
 | 
 | ||||||
| %if 0%{!?binutils_target:1} | %if 0%{!?binutils_target:1} | ||||||
| %define binutils_target %{_target_platform} | %define binutils_target %{_target_platform} | ||||||
| @ -69,7 +69,7 @@ | |||||||
| Summary: A GNU collection of binary utilities | Summary: A GNU collection of binary utilities | ||||||
| Name: %{?cross}binutils%{?_with_debug:-debug} | Name: %{?cross}binutils%{?_with_debug:-debug} | ||||||
| Version: 2.31.1 | Version: 2.31.1 | ||||||
| Release: 13%{?dist} | Release: 14%{?dist} | ||||||
| License: GPLv3+ | License: GPLv3+ | ||||||
| URL: https://sourceware.org/binutils | URL: https://sourceware.org/binutils | ||||||
| 
 | 
 | ||||||
| @ -186,6 +186,23 @@ Patch16: binutils-detect-corrupt-sym-version-info.patch | |||||||
| # Lifetime: Fixed in 2.32 | # Lifetime: Fixed in 2.32 | ||||||
| Patch17: binutils-delay-ld-script-constant-eval.patch | Patch17: binutils-delay-ld-script-constant-eval.patch | ||||||
| 
 | 
 | ||||||
|  | # Purpose:  Stop readelf's reports of gaps in build notes - they are unreliable. | ||||||
|  | # Lifetime: Unknown. | ||||||
|  | Patch18: binutils-disable-readelf-gap-reports.patch | ||||||
|  | 
 | ||||||
|  | # Purpose:  Stop the binutils from statically linking with libstdc++. | ||||||
|  | # Lifetime: Permanent. | ||||||
|  | Patch20: binutils-do-not-link-with-static-libstdc++.patch | ||||||
|  | 
 | ||||||
|  | # Purpose:  Add a .attach_to_group pseudo-op to the assembler for | ||||||
|  | #           use by the annobin gcc plugin. | ||||||
|  | # Lifetime: Permanent. | ||||||
|  | Patch21: binutils-attach-to-group.patch | ||||||
|  | 
 | ||||||
|  | # Purpose:  Fix a potential buffer overrun when parsing a corrupt ELF file. | ||||||
|  | # Lifetime: Fixed in 2.32. | ||||||
|  | Patch22: binutils-CVE-2018-17358.patch | ||||||
|  | 
 | ||||||
| #---------------------------------------------------------------------------- | #---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| Provides: bundled(libiberty) | Provides: bundled(libiberty) | ||||||
| @ -314,7 +331,6 @@ using libelf instead of BFD. | |||||||
| %patch02 -p1 | %patch02 -p1 | ||||||
| %patch03 -p1 | %patch03 -p1 | ||||||
| %patch04 -p1 | %patch04 -p1 | ||||||
| #% patch05 -p1 |  | ||||||
| %patch06 -p1 | %patch06 -p1 | ||||||
| %patch07 -p1 | %patch07 -p1 | ||||||
| %patch08 -p1 | %patch08 -p1 | ||||||
| @ -327,8 +343,13 @@ using libelf instead of BFD. | |||||||
| %patch15 -p1 | %patch15 -p1 | ||||||
| %patch16 -p1 | %patch16 -p1 | ||||||
| %patch17 -p1 | %patch17 -p1 | ||||||
|  | %patch18 -p1 | ||||||
|  | %patch20 -p1 | ||||||
|  | %patch21 -p1 | ||||||
|  | %patch22 -p1 | ||||||
| 
 | 
 | ||||||
| # We cannot run autotools as there is an exact requirement of autoconf-2.59. | # We cannot run autotools as there is an exact requirement of autoconf-2.59. | ||||||
|  | # FIXME - this is no longer true.  Maybe try reinstating autotool use ? | ||||||
| 
 | 
 | ||||||
| # On ppc64 and aarch64, we might use 64KiB pages | # On ppc64 and aarch64, we might use 64KiB pages | ||||||
| sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c | sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c | ||||||
| @ -475,7 +496,7 @@ export LDFLAGS=$RPM_LD_FLAGS | |||||||
| %make_build %{_smp_mflags} tooldir=%{_prefix} MAKEINFO=true all | %make_build %{_smp_mflags} tooldir=%{_prefix} MAKEINFO=true all | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| # Do not use %%check as it is run after %%install where libbfd.so is rebuild | # Do not use %%check as it is run after %%install where libbfd.so is rebuilt | ||||||
| # with -fvisibility=hidden no longer being usable in its shared form. | # with -fvisibility=hidden no longer being usable in its shared form. | ||||||
| %if %{without testsuite} | %if %{without testsuite} | ||||||
| echo ====================TESTSUITE DISABLED========================= | echo ====================TESTSUITE DISABLED========================= | ||||||
| @ -483,14 +504,29 @@ echo ====================TESTSUITE DISABLED========================= | |||||||
| make -k check < /dev/null || : | make -k check < /dev/null || : | ||||||
| echo ====================TESTING========================= | echo ====================TESTING========================= | ||||||
| cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum | cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum | ||||||
|  | %if "%{build_gold}" == "both" | ||||||
|  | if [ -f gold/test-suite.log ]; then | ||||||
|  |     cat gold/test-suite.log | ||||||
|  | fi | ||||||
|  | if [ -f gold/testsuite/test-suite.log ]; then | ||||||
|  |     cat gold/testsuite/*.log | ||||||
|  | fi | ||||||
|  | %endif | ||||||
| echo ====================TESTING END===================== | echo ====================TESTING END===================== | ||||||
| for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} | for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} | ||||||
| do | do | ||||||
|   ln $file binutils-%{_target_platform}-$(basename $file) || : |   ln $file binutils-%{_target_platform}-$(basename $file) || : | ||||||
| done | done | ||||||
| tar cjf binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log} | tar cjf binutils-%{_target_platform}.tar.xz  binutils-%{_target_platform}-*.{sum,log} | ||||||
| uuencode binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}.tar.bz2 | uuencode binutils-%{_target_platform}.tar.xz binutils-%{_target_platform}.tar.xz | ||||||
| rm -f binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log} | rm -f binutils-%{_target_platform}.tar.xz    binutils-%{_target_platform}-*.{sum,log} | ||||||
|  | %if "%{build_gold}" == "both" | ||||||
|  | if [-f gold/testsuite/test-suite.log ]; then | ||||||
|  |   tar cjf  binutils-%{_target_platform}-gold.log.tar.xz gold/testsuite/*.log | ||||||
|  |   uuencode binutils-%{_target_platform}-gold.log.tar.xz binutils-%{_target_platform}-gold.log.tar.xz | ||||||
|  |   rm -f    binutils-%{_target_platform}-gold.log.tar.xz | ||||||
|  | fi | ||||||
|  | %endif | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| #---------------------------------------------------------------------------- | #---------------------------------------------------------------------------- | ||||||
| @ -734,6 +770,13 @@ exit 0 | |||||||
| 
 | 
 | ||||||
| #---------------------------------------------------------------------------- | #---------------------------------------------------------------------------- | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Sep 28 2018 Nick Clifton  <nickc@redhat.com> - 2.31.1-14 | ||||||
|  | - Fix a potential buffer overrun when parsing a corrupt ELF file.  (#1632912) | ||||||
|  | - Add a .attach_to_group pseuo-op to assembler (for use by annobin).  (#1630574) | ||||||
|  | - Stop the binutils from statically linking with libstdc++.  (#1630550) | ||||||
|  | - Include gold testsuite results in test logs. | ||||||
|  | - Disable readelf's reporting of gaps in build notes.  (#1623556) | ||||||
|  | 
 | ||||||
| * Tue Sep 04 2018 Nick Clifton  <nickc@redhat.com> - 2.31.1-13 | * Tue Sep 04 2018 Nick Clifton  <nickc@redhat.com> - 2.31.1-13 | ||||||
| - Delay the evaluation of linker script constants until after the configuration options have been set.  (#1624751) | - Delay the evaluation of linker script constants until after the configuration options have been set.  (#1624751) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user