import binutils-2.35.2-17.el9
This commit is contained in:
		
						commit
						6fac3978ef
					
				
							
								
								
									
										1
									
								
								.binutils.metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.binutils.metadata
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | 2dd8d1ce34dc7b1cb2073123e30c4901221835b0 SOURCES/binutils-2.35.2.tar.xz | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | SOURCES/binutils-2.35.2.tar.xz | ||||||
							
								
								
									
										38
									
								
								SOURCES/binutils-2.19.50.0.1-output-format.sed
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								SOURCES/binutils-2.19.50.0.1-output-format.sed
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | # Generate OUTPUT_FORMAT line for .so files from the system linker output. | ||||||
|  | # Imported from glibc/Makerules. | ||||||
|  | 
 | ||||||
|  | /ld.*[ 	]-E[BL]/b f | ||||||
|  | /collect.*[ 	]-E[BL]/b f | ||||||
|  | /OUTPUT_FORMAT[^)]*$/{N | ||||||
|  | s/\n[	 ]*/ / | ||||||
|  | } | ||||||
|  | t o | ||||||
|  | : o | ||||||
|  | s/^.*OUTPUT_FORMAT(\([^,]*\), \1, \1).*$/OUTPUT_FORMAT(\1)/ | ||||||
|  | t q | ||||||
|  | s/^.*OUTPUT_FORMAT(\([^,]*\), \([^,]*\), \([^,]*\)).*$/\1,\2,\3/ | ||||||
|  | t s | ||||||
|  | s/^.*OUTPUT_FORMAT(\([^,)]*\).*$)/OUTPUT_FORMAT(\1)/ | ||||||
|  | t q | ||||||
|  | d | ||||||
|  | : s | ||||||
|  | s/"//g | ||||||
|  | G | ||||||
|  | s/\n// | ||||||
|  | s/^\([^,]*\),\([^,]*\),\([^,]*\),B/OUTPUT_FORMAT(\2)/p | ||||||
|  | s/^\([^,]*\),\([^,]*\),\([^,]*\),L/OUTPUT_FORMAT(\3)/p | ||||||
|  | s/^\([^,]*\),\([^,]*\),\([^,]*\)/OUTPUT_FORMAT(\1)/p | ||||||
|  | /,/s|^|*** BUG in libc/scripts/output-format.sed *** |p | ||||||
|  | q | ||||||
|  | : q | ||||||
|  | s/"//g | ||||||
|  | p | ||||||
|  | q | ||||||
|  | : f | ||||||
|  | s/^.*[ 	]-E\([BL]\)[ 	].*$/,\1/ | ||||||
|  | t h | ||||||
|  | s/^.*[ 	]-E\([BL]\)$/,\1/ | ||||||
|  | t h | ||||||
|  | d | ||||||
|  | : h | ||||||
|  | h | ||||||
							
								
								
									
										236
									
								
								SOURCES/binutils-2.20.51.0.2-libtool-lib64.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								SOURCES/binutils-2.20.51.0.2-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
									
								
								SOURCES/binutils-2.22.52.0.4-no-config-h-check.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								SOURCES/binutils-2.22.52.0.4-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
									
								
								SOURCES/binutils-2.25-version.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								SOURCES/binutils-2.25-version.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | |||||||
|  | --- binutils-2.26.orig/bfd/Makefile.am	2016-01-25 10:11:33.505289018 +0000
 | ||||||
|  | +++ binutils-2.26/bfd/Makefile.am	2016-01-25 10:13:23.489964145 +0000
 | ||||||
|  | @@ -1043,8 +1043,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD
 | ||||||
|  |  bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in | ||||||
|  |  	@echo "creating $@" | ||||||
|  |  	@bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ | ||||||
|  | -	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 ;\ | ||||||
|  | @@ -1055,7 +1055,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 | ||||||
|  | --- binutils-2.26.orig/bfd/Makefile.in	2016-01-25 10:11:33.505289018 +0000
 | ||||||
|  | +++ binutils-2.26/bfd/Makefile.in	2016-01-25 10:14:17.818297941 +0000
 | ||||||
|  | @@ -2111,8 +2111,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES)
 | ||||||
|  |  bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in | ||||||
|  |  	@echo "creating $@" | ||||||
|  |  	@bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ | ||||||
|  | -	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 ;\ | ||||||
|  | @@ -2123,7 +2123,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 | ||||||
							
								
								
									
										11
									
								
								SOURCES/binutils-2.27-aarch64-ifunc.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								SOURCES/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; | ||||||
							
								
								
									
										145
									
								
								SOURCES/binutils-2.29-filename-in-error-messages.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								SOURCES/binutils-2.29-filename-in-error-messages.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,145 @@ | |||||||
|  | --- binutils.orig/binutils/readelf.c	2020-07-24 14:55:25.163647522 +0100
 | ||||||
|  | +++ binutils-2.35/binutils/readelf.c	2020-07-24 15:02:39.613851369 +0100
 | ||||||
|  | @@ -20729,79 +20729,92 @@ process_file (char * file_name)
 | ||||||
|  |    Filedata * filedata = NULL; | ||||||
|  |    struct stat statbuf; | ||||||
|  |    char armag[SARMAG]; | ||||||
|  | -  bfd_boolean ret = TRUE;
 | ||||||
|  | +  bfd_boolean 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);
 | ||||||
|  | +      error (_("Failed to read file's magic number\n"));
 | ||||||
|  |        fclose (filedata->handle); | ||||||
|  | -      free (filedata);
 | ||||||
|  | -      return FALSE;
 | ||||||
|  | +      goto done;
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |    filedata->file_size = (bfd_size_type) statbuf.st_size; | ||||||
|  |   | ||||||
|  |    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)
 | ||||||
|  | +    {
 | ||||||
|  | +      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; | ||||||
|  | --- binutils.orig/binutils/readelf.c	2021-01-07 12:59:35.802994842 +0000
 | ||||||
|  | +++ binutils-2.35.1/binutils/readelf.c	2021-01-07 13:02:36.591754005 +0000
 | ||||||
|  | @@ -20818,7 +20818,8 @@ process_file (char * file_name)
 | ||||||
|  |   done: | ||||||
|  |    if (filedata) | ||||||
|  |      { | ||||||
|  | -      fclose (filedata->handle);
 | ||||||
|  | +      if (filedata->handle != NULL)
 | ||||||
|  | +	fclose (filedata->handle);
 | ||||||
|  |        free (filedata->section_headers); | ||||||
|  |        free (filedata->program_headers); | ||||||
|  |        free (filedata->string_table); | ||||||
|  | --- binutils.orig/binutils/readelf.c	2021-01-08 17:01:23.573093204 +0000
 | ||||||
|  | +++ binutils-2.35.1/binutils/readelf.c	2021-01-08 17:02:23.095677242 +0000
 | ||||||
|  | @@ -20787,7 +20787,6 @@ process_file (char * file_name)
 | ||||||
|  |    if (fread (armag, SARMAG, 1, filedata->handle) != 1) | ||||||
|  |      { | ||||||
|  |        error (_("Failed to read file's magic number\n")); | ||||||
|  | -      fclose (filedata->handle);
 | ||||||
|  |        goto done; | ||||||
|  |      } | ||||||
|  |   | ||||||
							
								
								
									
										265
									
								
								SOURCES/binutils-2.29-revert-PLT-elision.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										265
									
								
								SOURCES/binutils-2.29-revert-PLT-elision.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,265 @@ | |||||||
|  | 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-bnd.dd binutils-2.29.1/ld/testsuite/ld-x86-64/plt-main-bnd.dd
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/plt-main-bnd.dd	2017-11-15 13:32:39.405064420 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/plt-main-bnd.dd	2017-11-15 15:06:53.694623801 +0000
 | ||||||
|  | @@ -1,7 +1,4 @@
 | ||||||
|  | -#...
 | ||||||
|  | -Disassembly of section .plt.got:
 | ||||||
|  |   | ||||||
|  | -[a-f0-9]+ <[a-z_]+@plt>:
 | ||||||
|  | -[ 	]*[a-f0-9]+:	f2 ff 25 .. .. 20 00 	bnd jmpq \*0x20....\(%rip\)        # ...... <.*>
 | ||||||
|  | +#...
 | ||||||
|  |  [ 	]*[a-f0-9]+:	90                   	nop | ||||||
|  |  #pass | ||||||
|  | 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/pr21038a.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d	2017-11-15 13:32:39.408064384 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d	2017-11-15 15:19:48.097433680 +0000
 | ||||||
|  | @@ -19,7 +19,8 @@ Contents of the .eh_frame section:
 | ||||||
|  |    DW_CFA_offset: r16 \(rip\) at cfa-8 | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | -
 | ||||||
|  | +#pass
 | ||||||
|  | +  
 | ||||||
|  |  0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d	2017-11-15 13:32:39.401064469 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d	2017-11-15 15:10:56.077760324 +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 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d	2017-11-15 13:32:39.405064420 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d	2017-11-15 15:10:42.828916844 +0000
 | ||||||
|  | @@ -19,6 +19,7 @@ Contents of the .eh_frame section:
 | ||||||
|  |    DW_CFA_offset: r16 \(rip\) at cfa-8 | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | +#pass
 | ||||||
|  |   | ||||||
|  |  0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd | ||||||
|  |    DW_CFA_nop | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d	2017-11-15 13:32:39.416064288 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d	2017-11-15 15:11:11.550577531 +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 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d	2017-11-15 13:32:39.411064348 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d	2017-11-15 15:09:52.664509478 +0000
 | ||||||
|  | @@ -19,7 +19,8 @@ Contents of the .eh_frame section:
 | ||||||
|  |    DW_CFA_offset: r16 \(rip\) at cfa-8 | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | -
 | ||||||
|  | +#pass
 | ||||||
|  | +  
 | ||||||
|  |  0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231 | ||||||
|  |    DW_CFA_nop | ||||||
|  |    DW_CFA_nop | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d	2017-11-15 13:32:39.413064324 +0000
 | ||||||
|  | +++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d	2017-11-15 15:11:22.975442559 +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 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231 | ||||||
|  |    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 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-x86-64/plt-main-ibt.dd	2020-07-24 14:55:25.370646189 +0100
 | ||||||
|  | +++ binutils-2.35/ld/testsuite/ld-x86-64/plt-main-ibt.dd	2020-07-24 15:06:58.124189348 +0100
 | ||||||
|  | @@ -1,7 +1,3 @@
 | ||||||
|  |  #... | ||||||
|  | -Disassembly of section .plt.got:
 | ||||||
|  | -
 | ||||||
|  | -[a-f0-9]+ <[_a-z]+@plt>:
 | ||||||
|  |  [ 	]*[a-f0-9]+:	f3 0f 1e fa          	endbr64  | ||||||
|  | -[ 	]*[a-f0-9]+:	f2 ff 25 .. .. 20 00 	bnd jmpq \*0x20....\(%rip\)        # ...... <.*>
 | ||||||
|  |  #pass | ||||||
							
								
								
									
										928
									
								
								SOURCES/binutils-AArch64-EFI.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										928
									
								
								SOURCES/binutils-AArch64-EFI.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,928 @@ | |||||||
|  | diff -rup binutils.orig/bfd/.gitignore binutils-2.35.2/bfd/.gitignore
 | ||||||
|  | --- binutils.orig/bfd/.gitignore	2021-11-30 13:38:24.349744247 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/.gitignore	2021-11-30 13:38:37.236657064 +0000
 | ||||||
|  | @@ -11,6 +11,7 @@
 | ||||||
|  |  /peigen.c | ||||||
|  |  /pepigen.c | ||||||
|  |  /pex64igen.c | ||||||
|  | +/pe-aarch64igen.c
 | ||||||
|  |  /stmp-bfd-h | ||||||
|  |  /targmatch.h | ||||||
|  |   | ||||||
|  | diff -rup binutils.orig/bfd/Makefile.am binutils-2.35.2/bfd/Makefile.am
 | ||||||
|  | --- binutils.orig/bfd/Makefile.am	2021-11-30 13:38:24.358744186 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/Makefile.am	2021-11-30 13:38:37.237657058 +0000
 | ||||||
|  | @@ -571,7 +571,9 @@ BFD64_BACKENDS = \
 | ||||||
|  |  	mach-o-aarch64.lo \ | ||||||
|  |  	mach-o-x86-64.lo \ | ||||||
|  |  	mmo.lo \ | ||||||
|  | +	pe-aarch64igen.lo \
 | ||||||
|  |  	pe-x86_64.lo \ | ||||||
|  | +	pei-aarch64lo \
 | ||||||
|  |  	pei-ia64.lo \ | ||||||
|  |  	pei-x86_64.lo \ | ||||||
|  |  	pepigen.lo \ | ||||||
|  | @@ -611,6 +613,7 @@ BFD64_BACKENDS_CFILES = \
 | ||||||
|  |  	mach-o-x86-64.c \ | ||||||
|  |  	mmo.c \ | ||||||
|  |  	pe-x86_64.c \ | ||||||
|  | +	pei-aarch64.c \
 | ||||||
|  |  	pei-ia64.c \ | ||||||
|  |  	pei-x86_64.c \ | ||||||
|  |  	vms-alpha.c | ||||||
|  | @@ -670,7 +673,7 @@ BUILD_CFILES = \
 | ||||||
|  |  	elf32-aarch64.c elf64-aarch64.c \ | ||||||
|  |  	elf32-ia64.c elf64-ia64.c \ | ||||||
|  |  	elf32-riscv.c elf64-riscv.c \ | ||||||
|  | -	peigen.c pepigen.c pex64igen.c
 | ||||||
|  | +	peigen.c pepigen.c pex64igen.c pe-aarch64igen.c
 | ||||||
|  |   | ||||||
|  |  CFILES = $(SOURCE_CFILES) $(BUILD_CFILES) | ||||||
|  |   | ||||||
|  | @@ -866,6 +869,10 @@ pex64igen.c: peXXigen.c
 | ||||||
|  |  	echo "#line 1 \"peXXigen.c\"" > $@ | ||||||
|  |  	$(SED) -e s/XX/pex64/g < $< >> $@ | ||||||
|  |   | ||||||
|  | +pe-aarch64igen.c: peXXigen.c
 | ||||||
|  | +	echo "#line 1 \"peXXigen.c\"" > $@
 | ||||||
|  | +	$(SED) -e s/XX/peAArch64/g < $< >> $@
 | ||||||
|  | +
 | ||||||
|  |  BFD_H_DEPS= $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/diagnostics.h | ||||||
|  |  LOCAL_H_DEPS= libbfd.h sysdep.h config.h bfd_stdint.h | ||||||
|  |  $(BFD32_LIBS) \ | ||||||
|  | diff -rup binutils.orig/bfd/Makefile.in binutils-2.35.2/bfd/Makefile.in
 | ||||||
|  | --- binutils.orig/bfd/Makefile.in	2021-11-30 13:38:24.346744267 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/Makefile.in	2021-11-30 13:38:37.238657051 +0000
 | ||||||
|  | @@ -997,7 +997,9 @@ BFD64_BACKENDS = \
 | ||||||
|  |  	mach-o-aarch64.lo \ | ||||||
|  |  	mach-o-x86-64.lo \ | ||||||
|  |  	mmo.lo \ | ||||||
|  | +	pe-aarch64igen.lo \
 | ||||||
|  |  	pe-x86_64.lo \ | ||||||
|  | +	pei-aarch64.lo \
 | ||||||
|  |  	pei-ia64.lo \ | ||||||
|  |  	pei-x86_64.lo \ | ||||||
|  |  	pepigen.lo \ | ||||||
|  | @@ -1037,6 +1039,7 @@ BFD64_BACKENDS_CFILES = \
 | ||||||
|  |  	mach-o-x86-64.c \ | ||||||
|  |  	mmo.c \ | ||||||
|  |  	pe-x86_64.c \ | ||||||
|  | +	pei-aarch64.c \
 | ||||||
|  |  	pei-ia64.c \ | ||||||
|  |  	pei-x86_64.c \ | ||||||
|  |  	vms-alpha.c | ||||||
|  | @@ -1095,7 +1098,7 @@ BUILD_CFILES = \
 | ||||||
|  |  	elf32-aarch64.c elf64-aarch64.c \ | ||||||
|  |  	elf32-ia64.c elf64-ia64.c \ | ||||||
|  |  	elf32-riscv.c elf64-riscv.c \ | ||||||
|  | -	peigen.c pepigen.c pex64igen.c
 | ||||||
|  | +	peigen.c pepigen.c pex64igen.c pe-aarch64igen.c
 | ||||||
|  |   | ||||||
|  |  CFILES = $(SOURCE_CFILES) $(BUILD_CFILES) | ||||||
|  |  SOURCE_HFILES = \ | ||||||
|  | @@ -1556,9 +1559,11 @@ distclean-compile:
 | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-ppc.Plo@am__quote@ | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-sh.Plo@am__quote@ | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-x86_64.Plo@am__quote@ | ||||||
|  | +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-aarch64.Plo@am__quote@
 | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/peigen.Plo@am__quote@ | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pepigen.Plo@am__quote@ | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pex64igen.Plo@am__quote@ | ||||||
|  | +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-aarch64igen.Plo@am__quote@
 | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@ | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppcboot.Plo@am__quote@ | ||||||
|  |  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc.Plo@am__quote@ | ||||||
|  | @@ -1996,6 +2001,11 @@ pepigen.c : peXXigen.c
 | ||||||
|  |  pex64igen.c: peXXigen.c | ||||||
|  |  	echo "#line 1 \"peXXigen.c\"" > $@ | ||||||
|  |  	$(SED) -e s/XX/pex64/g < $< >> $@ | ||||||
|  | +
 | ||||||
|  | +pe-aarch64igen.c: peXXigen.c
 | ||||||
|  | +	echo "#line 1 \"peXXigen.c\"" > $@
 | ||||||
|  | +	$(SED) -e s/XX/peAArch64/g < $< >> $@
 | ||||||
|  | +
 | ||||||
|  |  $(BFD32_LIBS) \ | ||||||
|  |   $(BFD64_LIBS) \ | ||||||
|  |   $(ALL_MACHINES) \ | ||||||
|  | diff -rup binutils.orig/bfd/bfd.c binutils-2.35.2/bfd/bfd.c
 | ||||||
|  | --- binutils.orig/bfd/bfd.c	2021-11-30 13:38:24.344744281 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/bfd.c	2021-11-30 13:38:37.239657044 +0000
 | ||||||
|  | @@ -1747,6 +1747,7 @@ bfd_get_sign_extend_vma (bfd *abfd)
 | ||||||
|  |        || strcmp (name, "pei-i386") == 0 | ||||||
|  |        || strcmp (name, "pe-x86-64") == 0 | ||||||
|  |        || strcmp (name, "pei-x86-64") == 0 | ||||||
|  | +      || strcmp (name, "pei-aarch64-little") == 0
 | ||||||
|  |        || strcmp (name, "pe-arm-wince-little") == 0 | ||||||
|  |        || strcmp (name, "pei-arm-wince-little") == 0 | ||||||
|  |        || strcmp (name, "aixcoff-rs6000") == 0 | ||||||
|  | diff -rup binutils.orig/bfd/coffcode.h binutils-2.35.2/bfd/coffcode.h
 | ||||||
|  | --- binutils.orig/bfd/coffcode.h	2021-11-30 13:38:24.345744274 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/coffcode.h	2021-11-30 13:38:37.242657024 +0000
 | ||||||
|  | @@ -2195,6 +2195,12 @@ coff_set_arch_mach_hook (bfd *abfd, void
 | ||||||
|  |  	} | ||||||
|  |        break; | ||||||
|  |  #endif | ||||||
|  | +#ifdef AARCH64MAGIC
 | ||||||
|  | +    case AARCH64MAGIC:
 | ||||||
|  | +      arch = bfd_arch_aarch64;
 | ||||||
|  | +      machine = internal_f->f_flags & F_AARCH64_ARCHITECTURE_MASK;
 | ||||||
|  | +      break;
 | ||||||
|  | +#endif
 | ||||||
|  |  #ifdef Z80MAGIC | ||||||
|  |      case Z80MAGIC: | ||||||
|  |        arch = bfd_arch_z80; | ||||||
|  | @@ -2751,6 +2757,12 @@ coff_set_flags (bfd * abfd,
 | ||||||
|  |        return TRUE; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +#ifdef AARCH64MAGIC
 | ||||||
|  | +    case bfd_arch_aarch64:
 | ||||||
|  | +      * magicp = AARCH64MAGIC;
 | ||||||
|  | +      return TRUE;
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  |  #ifdef ARMMAGIC | ||||||
|  |      case bfd_arch_arm: | ||||||
|  |  #ifdef ARM_WINCE | ||||||
|  | @@ -3841,7 +3853,7 @@ coff_write_object_contents (bfd * abfd)
 | ||||||
|  |      internal_f.f_flags |= IMAGE_FILE_LARGE_ADDRESS_AWARE; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | -#ifndef COFF_WITH_pex64
 | ||||||
|  | +#if !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |  #ifdef COFF_WITH_PE | ||||||
|  |    internal_f.f_flags |= IMAGE_FILE_32BIT_MACHINE; | ||||||
|  |  #else | ||||||
|  | @@ -3895,6 +3907,11 @@ coff_write_object_contents (bfd * abfd)
 | ||||||
|  |      internal_a.magic = IMAGE_NT_OPTIONAL_HDR_MAGIC; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +#if defined(AARCH64)
 | ||||||
|  | +#define __A_MAGIC_SET__
 | ||||||
|  | +    internal_a.magic = ZMAGIC;
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  |  #if defined MCORE_PE | ||||||
|  |  #define __A_MAGIC_SET__ | ||||||
|  |      internal_a.magic = IMAGE_NT_OPTIONAL_HDR_MAGIC; | ||||||
|  | diff -rup binutils.orig/bfd/config.bfd binutils-2.35.2/bfd/config.bfd
 | ||||||
|  | --- binutils.orig/bfd/config.bfd	2021-11-30 13:38:24.358744186 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/config.bfd	2021-11-30 13:41:24.512525484 +0000
 | ||||||
|  | @@ -256,12 +256,12 @@ case "${targ}" in
 | ||||||
|  |      ;; | ||||||
|  |    aarch64-*-linux*) | ||||||
|  |      targ_defvec=aarch64_elf64_le_vec | ||||||
|  | -    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
 | ||||||
|  | +    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_vec"
 | ||||||
|  |      want64=true | ||||||
|  |      ;; | ||||||
|  |    aarch64_be-*-linux*) | ||||||
|  |      targ_defvec=aarch64_elf64_be_vec | ||||||
|  | -    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
 | ||||||
|  | +    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec aarch64_pei_vec"
 | ||||||
|  |      want64=true | ||||||
|  |      ;; | ||||||
|  |    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) | ||||||
|  | diff -rup binutils.orig/bfd/configure binutils-2.35.2/bfd/configure
 | ||||||
|  | --- binutils.orig/bfd/configure	2021-11-30 13:38:24.358744186 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/configure	2021-11-30 13:38:37.250656970 +0000
 | ||||||
|  | @@ -14738,6 +14738,7 @@ do
 | ||||||
|  |      aarch64_elf64_le_vec)	   tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  |      aarch64_elf64_le_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  |      aarch64_mach_o_vec)		 tb="$tb mach-o-aarch64.lo"; target_size=64 ;; | ||||||
|  | +    aarch64_pei_vec)		 tb="$tb pei-aarch64.lo pe-aarch64igen.lo $coff"; target_size=64 ;;
 | ||||||
|  |      alpha_ecoff_le_vec)		 tb="$tb coff-alpha.lo ecoff.lo $ecoff"; target_size=64 ;; | ||||||
|  |      alpha_elf64_vec)		 tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  |      alpha_elf64_fbsd_vec)	 tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  | diff -rup binutils.orig/bfd/configure.ac binutils-2.35.2/bfd/configure.ac
 | ||||||
|  | --- binutils.orig/bfd/configure.ac	2021-11-30 13:38:24.354744213 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/configure.ac	2021-11-30 13:38:37.251656963 +0000
 | ||||||
|  | @@ -450,6 +450,7 @@ do
 | ||||||
|  |      aarch64_elf64_le_vec)	   tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  |      aarch64_elf64_le_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  |      aarch64_mach_o_vec)		 tb="$tb mach-o-aarch64.lo"; target_size=64 ;; | ||||||
|  | +    aarch64_pei_vec)		 tb="$tb pei-aarch64.lo pe-aarch64igen.lo $coff"; target_size=64 ;;
 | ||||||
|  |      alpha_ecoff_le_vec)		 tb="$tb coff-alpha.lo ecoff.lo $ecoff"; target_size=64 ;; | ||||||
|  |      alpha_elf64_vec)		 tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  |      alpha_elf64_fbsd_vec)	 tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; | ||||||
|  | diff -rup binutils.orig/bfd/libpei.h binutils-2.35.2/bfd/libpei.h
 | ||||||
|  | --- binutils.orig/bfd/libpei.h	2021-11-30 13:38:24.355744206 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/libpei.h	2021-11-30 13:41:57.744300692 +0000
 | ||||||
|  | @@ -275,6 +275,41 @@
 | ||||||
|  |  #define _bfd_XXi_write_codeview_record			_bfd_pepi_write_codeview_record | ||||||
|  |  #define _bfd_XXi_slurp_codeview_record			_bfd_pepi_slurp_codeview_record | ||||||
|  |   | ||||||
|  | +#elif defined COFF_WITH_peAArch64
 | ||||||
|  | +
 | ||||||
|  | +#define GET_OPTHDR_IMAGE_BASE		 H_GET_64
 | ||||||
|  | +#define PUT_OPTHDR_IMAGE_BASE		 H_PUT_64
 | ||||||
|  | +#define GET_OPTHDR_SIZE_OF_STACK_RESERVE H_GET_64
 | ||||||
|  | +#define PUT_OPTHDR_SIZE_OF_STACK_RESERVE H_PUT_64
 | ||||||
|  | +#define GET_OPTHDR_SIZE_OF_STACK_COMMIT	 H_GET_64
 | ||||||
|  | +#define PUT_OPTHDR_SIZE_OF_STACK_COMMIT	 H_PUT_64
 | ||||||
|  | +#define GET_OPTHDR_SIZE_OF_HEAP_RESERVE	 H_GET_64
 | ||||||
|  | +#define PUT_OPTHDR_SIZE_OF_HEAP_RESERVE	 H_PUT_64
 | ||||||
|  | +#define GET_OPTHDR_SIZE_OF_HEAP_COMMIT	 H_GET_64
 | ||||||
|  | +#define PUT_OPTHDR_SIZE_OF_HEAP_COMMIT	 H_PUT_64
 | ||||||
|  | +#define GET_PDATA_ENTRY			 bfd_get_32
 | ||||||
|  | +
 | ||||||
|  | +#define _bfd_XX_bfd_copy_private_bfd_data_common	_bfd_peAArch64_bfd_copy_private_bfd_data_common
 | ||||||
|  | +#define _bfd_XX_bfd_copy_private_section_data		_bfd_peAArch64_bfd_copy_private_section_data
 | ||||||
|  | +#define _bfd_XX_get_symbol_info				_bfd_peAArch64_get_symbol_info
 | ||||||
|  | +#define _bfd_XX_only_swap_filehdr_out			_bfd_peAArch64_only_swap_filehdr_out
 | ||||||
|  | +#define _bfd_XX_print_private_bfd_data_common		_bfd_peAArch64_print_private_bfd_data_common
 | ||||||
|  | +#define _bfd_XXi_final_link_postscript			_bfd_peAArch64i_final_link_postscript
 | ||||||
|  | +#define _bfd_XXi_only_swap_filehdr_out			_bfd_peAArch64i_only_swap_filehdr_out
 | ||||||
|  | +#define _bfd_XXi_swap_aouthdr_in			_bfd_peAArch64i_swap_aouthdr_in
 | ||||||
|  | +#define _bfd_XXi_swap_aouthdr_out			_bfd_peAArch64i_swap_aouthdr_out
 | ||||||
|  | +#define _bfd_XXi_swap_aux_in				_bfd_peAArch64i_swap_aux_in
 | ||||||
|  | +#define _bfd_XXi_swap_aux_out				_bfd_peAArch64i_swap_aux_out
 | ||||||
|  | +#define _bfd_XXi_swap_lineno_in				_bfd_peAArch64i_swap_lineno_in
 | ||||||
|  | +#define _bfd_XXi_swap_lineno_out			_bfd_peAArch64i_swap_lineno_out
 | ||||||
|  | +#define _bfd_XXi_swap_scnhdr_out			_bfd_peAArch64i_swap_scnhdr_out
 | ||||||
|  | +#define _bfd_XXi_swap_sym_in				_bfd_peAArch64i_swap_sym_in
 | ||||||
|  | +#define _bfd_XXi_swap_sym_out				_bfd_peAArch64i_swap_sym_out
 | ||||||
|  | +#define _bfd_XXi_swap_debugdir_in			_bfd_peAArch64i_swap_debugdir_in
 | ||||||
|  | +#define _bfd_XXi_swap_debugdir_out			_bfd_peAArch64i_swap_debugdir_out
 | ||||||
|  | +#define _bfd_XXi_write_codeview_record			_bfd_peAArch64i_write_codeview_record
 | ||||||
|  | +#define _bfd_XXi_slurp_codeview_record			_bfd_peAArch64i_slurp_codeview_record
 | ||||||
|  | +
 | ||||||
|  |  #else /* !COFF_WITH_pep */ | ||||||
|  |   | ||||||
|  |  #define GET_OPTHDR_IMAGE_BASE H_GET_32 | ||||||
|  | @@ -368,4 +403,5 @@ bfd_boolean _bfd_pe_print_ce_compressed_
 | ||||||
|  |  bfd_boolean _bfd_pe64_print_ce_compressed_pdata (bfd *, void *); | ||||||
|  |  bfd_boolean _bfd_pex64_print_ce_compressed_pdata (bfd *, void *); | ||||||
|  |  bfd_boolean _bfd_pep_print_ce_compressed_pdata (bfd *, void *); | ||||||
|  | +bfd_boolean _bfd_peAArch64_print_ce_compressed_pdata (bfd *, void *);
 | ||||||
|  |   | ||||||
|  | diff -rup binutils.orig/bfd/peXXigen.c binutils-2.35.2/bfd/peXXigen.c
 | ||||||
|  | --- binutils.orig/bfd/peXXigen.c	2021-11-30 13:38:24.352744227 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/peXXigen.c	2021-11-30 13:38:37.255656936 +0000
 | ||||||
|  | @@ -60,8 +60,9 @@
 | ||||||
|  |     on this code has a chance of getting something accomplished without | ||||||
|  |     wasting too much time.  */ | ||||||
|  |   | ||||||
|  | -/* This expands into COFF_WITH_pe, COFF_WITH_pep, or COFF_WITH_pex64
 | ||||||
|  | -   depending on whether we're compiling for straight PE or PE+.  */
 | ||||||
|  | +/* This expands into COFF_WITH_pe, COFF_WITH_pep, COFF_WITH_pex64 or
 | ||||||
|  | +   COFF_WITH_peAArch64 depending on whether we're compiling for straight
 | ||||||
|  | +   PE or PE+.  */
 | ||||||
|  |  #define COFF_WITH_XX | ||||||
|  |   | ||||||
|  |  #include "sysdep.h" | ||||||
|  | @@ -87,6 +88,8 @@
 | ||||||
|  |  # include "coff/x86_64.h" | ||||||
|  |  #elif defined COFF_WITH_pep | ||||||
|  |  # include "coff/ia64.h" | ||||||
|  | +#elif defined COFF_WITH_peAArch64
 | ||||||
|  | +# include "coff/aarch64.h"
 | ||||||
|  |  #else | ||||||
|  |  # include "coff/i386.h" | ||||||
|  |  #endif | ||||||
|  | @@ -96,7 +99,7 @@
 | ||||||
|  |  #include "libpei.h" | ||||||
|  |  #include "safe-ctype.h" | ||||||
|  |   | ||||||
|  | -#if defined COFF_WITH_pep || defined COFF_WITH_pex64
 | ||||||
|  | +#if defined COFF_WITH_pep || defined COFF_WITH_pex64 || defined COFF_WITH_peAArch64
 | ||||||
|  |  # undef AOUTSZ | ||||||
|  |  # define AOUTSZ		PEPAOUTSZ | ||||||
|  |  # define PEAOUTHDR	PEPAOUTHDR | ||||||
|  | @@ -485,7 +488,7 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
 | ||||||
|  |    aouthdr_int->text_start = | ||||||
|  |      GET_AOUTHDR_TEXT_START (abfd, aouthdr_ext->text_start); | ||||||
|  |   | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |    /* PE32+ does not have data_start member!  */ | ||||||
|  |    aouthdr_int->data_start = | ||||||
|  |      GET_AOUTHDR_DATA_START (abfd, aouthdr_ext->data_start); | ||||||
|  | @@ -571,7 +574,7 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
 | ||||||
|  |    if (aouthdr_int->entry) | ||||||
|  |      { | ||||||
|  |        aouthdr_int->entry += a->ImageBase; | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        aouthdr_int->entry &= 0xffffffff; | ||||||
|  |  #endif | ||||||
|  |      } | ||||||
|  | @@ -579,12 +582,12 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
 | ||||||
|  |    if (aouthdr_int->tsize) | ||||||
|  |      { | ||||||
|  |        aouthdr_int->text_start += a->ImageBase; | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        aouthdr_int->text_start &= 0xffffffff; | ||||||
|  |  #endif | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |    /* PE32+ does not have data_start member!  */ | ||||||
|  |    if (aouthdr_int->dsize) | ||||||
|  |      { | ||||||
|  | @@ -653,7 +656,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, v
 | ||||||
|  |    if (aouthdr_in->tsize) | ||||||
|  |      { | ||||||
|  |        aouthdr_in->text_start -= ib; | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        aouthdr_in->text_start &= 0xffffffff; | ||||||
|  |  #endif | ||||||
|  |      } | ||||||
|  | @@ -661,7 +664,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, v
 | ||||||
|  |    if (aouthdr_in->dsize) | ||||||
|  |      { | ||||||
|  |        aouthdr_in->data_start -= ib; | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        aouthdr_in->data_start &= 0xffffffff; | ||||||
|  |  #endif | ||||||
|  |      } | ||||||
|  | @@ -669,7 +672,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, v
 | ||||||
|  |    if (aouthdr_in->entry) | ||||||
|  |      { | ||||||
|  |        aouthdr_in->entry -= ib; | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        aouthdr_in->entry &= 0xffffffff; | ||||||
|  |  #endif | ||||||
|  |      } | ||||||
|  | @@ -773,7 +776,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, v
 | ||||||
|  |    PUT_AOUTHDR_TEXT_START (abfd, aouthdr_in->text_start, | ||||||
|  |  			  aouthdr_out->standard.text_start); | ||||||
|  |   | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |    /* PE32+ does not have data_start member!  */ | ||||||
|  |    PUT_AOUTHDR_DATA_START (abfd, aouthdr_in->data_start, | ||||||
|  |  			  aouthdr_out->standard.data_start); | ||||||
|  | @@ -1886,7 +1889,7 @@ pe_print_edata (bfd * abfd, void * vfile
 | ||||||
|  |  static bfd_boolean | ||||||
|  |  pe_print_pdata (bfd * abfd, void * vfile) | ||||||
|  |  { | ||||||
|  | -#if defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |  # define PDATA_ROW_SIZE	(3 * 8) | ||||||
|  |  #else | ||||||
|  |  # define PDATA_ROW_SIZE	(5 * 4) | ||||||
|  | @@ -1913,7 +1916,7 @@ pe_print_pdata (bfd * abfd, void * vfile
 | ||||||
|  |   | ||||||
|  |    fprintf (file, | ||||||
|  |  	   _("\nThe Function Table (interpreted .pdata section contents)\n")); | ||||||
|  | -#if defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |    fprintf (file, | ||||||
|  |  	   _(" vma:\t\t\tBegin Address    End Address      Unwind Info\n")); | ||||||
|  |  #else | ||||||
|  | @@ -1950,7 +1953,7 @@ pe_print_pdata (bfd * abfd, void * vfile
 | ||||||
|  |        bfd_vma eh_handler; | ||||||
|  |        bfd_vma eh_data; | ||||||
|  |        bfd_vma prolog_end_addr; | ||||||
|  | -#if !defined(COFF_WITH_pep) || defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) || defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64)
 | ||||||
|  |        int em_data; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | @@ -1968,7 +1971,7 @@ pe_print_pdata (bfd * abfd, void * vfile
 | ||||||
|  |  	/* We are probably into the padding of the section now.  */ | ||||||
|  |  	break; | ||||||
|  |   | ||||||
|  | -#if !defined(COFF_WITH_pep) || defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) || defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64)
 | ||||||
|  |        em_data = ((eh_handler & 0x1) << 2) | (prolog_end_addr & 0x3); | ||||||
|  |  #endif | ||||||
|  |        eh_handler &= ~(bfd_vma) 0x3; | ||||||
|  | @@ -1979,7 +1982,7 @@ pe_print_pdata (bfd * abfd, void * vfile
 | ||||||
|  |        bfd_fprintf_vma (abfd, file, begin_addr); fputc (' ', file); | ||||||
|  |        bfd_fprintf_vma (abfd, file, end_addr); fputc (' ', file); | ||||||
|  |        bfd_fprintf_vma (abfd, file, eh_handler); | ||||||
|  | -#if !defined(COFF_WITH_pep) || defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) || defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64)
 | ||||||
|  |        fputc (' ', file); | ||||||
|  |        bfd_fprintf_vma (abfd, file, eh_data); fputc (' ', file); | ||||||
|  |        bfd_fprintf_vma (abfd, file, prolog_end_addr); | ||||||
|  | @@ -2894,7 +2897,7 @@ _bfd_XX_print_private_bfd_data_common (b
 | ||||||
|  |    bfd_fprintf_vma (abfd, file, i->AddressOfEntryPoint); | ||||||
|  |    fprintf (file, "\nBaseOfCode\t\t"); | ||||||
|  |    bfd_fprintf_vma (abfd, file, i->BaseOfCode); | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |    /* PE32+ does not have BaseOfData member!  */ | ||||||
|  |    fprintf (file, "\nBaseOfData\t\t"); | ||||||
|  |    bfd_fprintf_vma (abfd, file, i->BaseOfData); | ||||||
|  | @@ -3163,7 +3166,7 @@ _bfd_XX_get_symbol_info (bfd * abfd, asy
 | ||||||
|  |    coff_get_symbol_info (abfd, symbol, ret); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | -#if !defined(COFF_WITH_pep) && defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && defined(COFF_WITH_pex64) && defined(COFF_WITH_peAArch64)
 | ||||||
|  |  static int | ||||||
|  |  sort_x64_pdata (const void *l, const void *r) | ||||||
|  |  { | ||||||
|  | @@ -4595,7 +4598,7 @@ _bfd_XXi_final_link_postscript (bfd * ab
 | ||||||
|  |  	the TLS data directory consists of 4 pointers, followed | ||||||
|  |  	by two 4-byte integer. This implies that the total size | ||||||
|  |  	is different for 32-bit and 64-bit executables.  */ | ||||||
|  | -#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        pe_data (abfd)->pe_opthdr.DataDirectory[PE_TLS_TABLE].Size = 0x18; | ||||||
|  |  #else | ||||||
|  |        pe_data (abfd)->pe_opthdr.DataDirectory[PE_TLS_TABLE].Size = 0x28; | ||||||
|  | @@ -4604,7 +4607,7 @@ _bfd_XXi_final_link_postscript (bfd * ab
 | ||||||
|  |   | ||||||
|  |  /* If there is a .pdata section and we have linked pdata finally, we | ||||||
|  |       need to sort the entries ascending.  */ | ||||||
|  | -#if !defined(COFF_WITH_pep) && defined(COFF_WITH_pex64)
 | ||||||
|  | +#if !defined(COFF_WITH_pep) && defined(COFF_WITH_pex64) && defined(COFF_WITH_peAArch64)
 | ||||||
|  |    { | ||||||
|  |      asection *sec = bfd_get_section_by_name (abfd, ".pdata"); | ||||||
|  |   | ||||||
|  | Only in binutils-2.35.2/bfd: pei-aarch64.c | ||||||
|  | diff -rup binutils.orig/bfd/peicode.h binutils-2.35.2/bfd/peicode.h
 | ||||||
|  | --- binutils.orig/bfd/peicode.h	2021-11-30 13:38:24.354744213 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/peicode.h	2021-11-30 13:38:37.256656929 +0000
 | ||||||
|  | @@ -231,7 +231,7 @@ coff_swap_scnhdr_in (bfd * abfd, void *
 | ||||||
|  |      { | ||||||
|  |        scnhdr_int->s_vaddr += pe_data (abfd)->pe_opthdr.ImageBase; | ||||||
|  |        /* Do not cut upper 32-bits for 64-bit vma.  */ | ||||||
|  | -#ifndef COFF_WITH_pex64
 | ||||||
|  | +#if !defined(COFF_WITH_pex64) && !defined(COFF_WITH_peAArch64)
 | ||||||
|  |        scnhdr_int->s_vaddr &= 0xffffffff; | ||||||
|  |  #endif | ||||||
|  |      } | ||||||
|  | @@ -738,6 +738,16 @@ static jump_table jtab[] =
 | ||||||
|  |    }, | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +#ifdef AARCH64MAGIC
 | ||||||
|  | +/* We don't currently support jumping to DLLs, so if
 | ||||||
|  | +   someone does try emit a runtime trap.  Through UDF #0.  */
 | ||||||
|  | +  { AARCH64MAGIC,
 | ||||||
|  | +    { 0x00, 0x00, 0x00, 0x00 },
 | ||||||
|  | +    4, 0
 | ||||||
|  | +  },
 | ||||||
|  | +
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  |  #ifdef  ARMPEMAGIC | ||||||
|  |    { ARMPEMAGIC, | ||||||
|  |      { 0x00, 0xc0, 0x9f, 0xe5, 0x00, 0xf0, | ||||||
|  | @@ -910,7 +920,7 @@ pe_ILF_build_a_bfd (bfd *	    abfd,
 | ||||||
|  |  	/* See PR 20907 for a reproducer.  */ | ||||||
|  |  	goto error_return; | ||||||
|  |   | ||||||
|  | -#ifdef COFF_WITH_pex64
 | ||||||
|  | +#if defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64)
 | ||||||
|  |        ((unsigned int *) id4->contents)[0] = ordinal; | ||||||
|  |        ((unsigned int *) id4->contents)[1] = 0x80000000; | ||||||
|  |        ((unsigned int *) id5->contents)[0] = ordinal; | ||||||
|  | @@ -1206,6 +1216,12 @@ pe_ILF_object_p (bfd * abfd)
 | ||||||
|  |  #endif | ||||||
|  |        break; | ||||||
|  |   | ||||||
|  | +    case IMAGE_FILE_MACHINE_ARM64:
 | ||||||
|  | +#ifdef AARCH64MAGIC
 | ||||||
|  | +      magic = AARCH64MAGIC;
 | ||||||
|  | +#endif
 | ||||||
|  | +      break;
 | ||||||
|  | +
 | ||||||
|  |      case IMAGE_FILE_MACHINE_THUMB: | ||||||
|  |  #ifdef THUMBPEMAGIC | ||||||
|  |        { | ||||||
|  | diff -rup binutils.orig/bfd/targets.c binutils-2.35.2/bfd/targets.c
 | ||||||
|  | --- binutils.orig/bfd/targets.c	2021-11-30 13:38:24.354744213 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/targets.c	2021-11-30 13:38:37.257656922 +0000
 | ||||||
|  | @@ -668,6 +668,7 @@ extern const bfd_target aarch64_elf64_be
 | ||||||
|  |  extern const bfd_target aarch64_elf64_le_vec; | ||||||
|  |  extern const bfd_target aarch64_elf64_le_cloudabi_vec; | ||||||
|  |  extern const bfd_target aarch64_mach_o_vec; | ||||||
|  | +extern const bfd_target aarch64_pei_vec;
 | ||||||
|  |  extern const bfd_target alpha_ecoff_le_vec; | ||||||
|  |  extern const bfd_target alpha_elf64_vec; | ||||||
|  |  extern const bfd_target alpha_elf64_fbsd_vec; | ||||||
|  | @@ -983,6 +984,7 @@ static const bfd_target * const _bfd_tar
 | ||||||
|  |  	&aarch64_elf64_le_vec, | ||||||
|  |  	&aarch64_elf64_le_cloudabi_vec, | ||||||
|  |  	&aarch64_mach_o_vec, | ||||||
|  | +	&aarch64_pei_vec,
 | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  |  #ifdef BFD64 | ||||||
|  | diff -rup binutils.orig/binutils/NEWS binutils-2.35.2/binutils/NEWS
 | ||||||
|  | --- binutils.orig/binutils/NEWS	2021-11-30 13:38:23.874747460 +0000
 | ||||||
|  | +++ binutils-2.35.2/binutils/NEWS	2021-11-30 13:42:31.024075560 +0000
 | ||||||
|  | @@ -1,5 +1,8 @@
 | ||||||
|  |  -*- text -*- | ||||||
|  |   | ||||||
|  | +* Support for efi-app-aarch64, efi-rtdrv-aarch64 and efi-bsdrv-aarch64 has been
 | ||||||
|  | +  added to objcopy in order to enable UEFI development using binutils.
 | ||||||
|  | +
 | ||||||
|  |  Changes in 2.35: | ||||||
|  |   | ||||||
|  |  * Changed readelf's display of symbol names when wide mode is not enabled. | ||||||
|  | diff -rup binutils.orig/binutils/objcopy.c binutils-2.35.2/binutils/objcopy.c
 | ||||||
|  | --- binutils.orig/binutils/objcopy.c	2021-11-30 13:38:23.874747460 +0000
 | ||||||
|  | +++ binutils-2.35.2/binutils/objcopy.c	2021-11-30 13:38:37.260656902 +0000
 | ||||||
|  | @@ -4950,6 +4950,13 @@ convert_efi_target (char *efi)
 | ||||||
|  |        /* Change x86_64 to x86-64.  */ | ||||||
|  |        efi[7] = '-'; | ||||||
|  |      } | ||||||
|  | +  else if (strcmp (efi + 4, "aarch64") == 0)
 | ||||||
|  | +    {
 | ||||||
|  | +      /* Change aarch64 to aarch64-little.  */
 | ||||||
|  | +      efi = (char *) xrealloc (efi, strlen (efi) + 7);
 | ||||||
|  | +      char *t = "aarch64-little";
 | ||||||
|  | +      strcpy (efi + 4, t);
 | ||||||
|  | +    }
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* Allocate and return a pointer to a struct section_add, initializing the | ||||||
|  | diff -rup binutils.orig/include/coff/pe.h binutils-2.35.2/include/coff/pe.h
 | ||||||
|  | --- binutils.orig/include/coff/pe.h	2021-11-30 13:38:23.827747778 +0000
 | ||||||
|  | +++ binutils-2.35.2/include/coff/pe.h	2021-11-30 13:38:37.261656895 +0000
 | ||||||
|  | @@ -132,6 +132,7 @@
 | ||||||
|  |  #define IMAGE_FILE_MACHINE_AM33              0x01d3 | ||||||
|  |  #define IMAGE_FILE_MACHINE_AMD64             0x8664 | ||||||
|  |  #define IMAGE_FILE_MACHINE_ARM               0x01c0 | ||||||
|  | +#define IMAGE_FILE_MACHINE_ARM64             0xaa64
 | ||||||
|  |  #define IMAGE_FILE_MACHINE_AXP64             IMAGE_FILE_MACHINE_ALPHA64 | ||||||
|  |  #define IMAGE_FILE_MACHINE_CEE               0xc0ee | ||||||
|  |  #define IMAGE_FILE_MACHINE_CEF               0x0cef | ||||||
|  | --- /dev/null	2021-11-30 07:48:35.901044247 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/coff-aarch64.c	2021-11-30 13:43:11.774799879 +0000
 | ||||||
|  | @@ -0,0 +1,165 @@
 | ||||||
|  | +/* BFD back-end for AArch64 COFF files.
 | ||||||
|  | +   Copyright (C) 2021 Free Software Foundation, Inc.
 | ||||||
|  | +
 | ||||||
|  | +   This file is part of BFD, the Binary File Descriptor library.
 | ||||||
|  | +
 | ||||||
|  | +   This program is free software; you can redistribute it and/or modify
 | ||||||
|  | +   it under the terms of the GNU General Public License as published by
 | ||||||
|  | +   the Free Software Foundation; either version 3 of the License, or
 | ||||||
|  | +   (at your option) any later version.
 | ||||||
|  | +
 | ||||||
|  | +   This program is distributed in the hope that it will be useful,
 | ||||||
|  | +   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||||||
|  | +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | ||||||
|  | +   GNU General Public License for more details.
 | ||||||
|  | +
 | ||||||
|  | +   You should have received a copy of the GNU General Public License
 | ||||||
|  | +   along with this program; if not, write to the Free Software
 | ||||||
|  | +   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 | ||||||
|  | +   MA 02110-1301, USA.  */
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  | +#ifndef COFF_WITH_peAArch64
 | ||||||
|  | +#define COFF_WITH_peAArch64
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  | +/* Note we have to make sure not to include headers twice.
 | ||||||
|  | +   Not all headers are wrapped in #ifdef guards, so we define
 | ||||||
|  | +   PEI_HEADERS to prevent double including here.  */
 | ||||||
|  | +#ifndef PEI_HEADERS
 | ||||||
|  | +#include "sysdep.h"
 | ||||||
|  | +#include "bfd.h"
 | ||||||
|  | +#include "libbfd.h"
 | ||||||
|  | +#include "coff/aarch64.h"
 | ||||||
|  | +#include "coff/internal.h"
 | ||||||
|  | +#include "coff/pe.h"
 | ||||||
|  | +#include "libcoff.h"
 | ||||||
|  | +#include "libiberty.h"
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  | +#include "libcoff.h"
 | ||||||
|  | +
 | ||||||
|  | +/* The page size is a guess based on ELF.  */
 | ||||||
|  | +
 | ||||||
|  | +#define COFF_PAGE_SIZE 0x1000
 | ||||||
|  | +
 | ||||||
|  | +/* All users of this file have bfd_octets_per_byte (abfd, sec) == 1.  */
 | ||||||
|  | +#define OCTETS_PER_BYTE(ABFD, SEC) 1
 | ||||||
|  | +
 | ||||||
|  | +#ifndef PCRELOFFSET
 | ||||||
|  | +#define PCRELOFFSET TRUE
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  | +/* Currently we don't handle any relocations.  */
 | ||||||
|  | +static reloc_howto_type pe_aarch64_std_reloc_howto[] =
 | ||||||
|  | +  {
 | ||||||
|  | +
 | ||||||
|  | +  };
 | ||||||
|  | +
 | ||||||
|  | +#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER  2
 | ||||||
|  | +#define COFF_PAGE_SIZE			      0x1000
 | ||||||
|  | +
 | ||||||
|  | +#ifndef NUM_ELEM
 | ||||||
|  | +#define NUM_ELEM(a) ((sizeof (a)) / sizeof ((a)[0]))
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  | +#define NUM_RELOCS NUM_ELEM (pe_aarch64_std_reloc_howto)
 | ||||||
|  | +
 | ||||||
|  | +#define RTYPE2HOWTO(cache_ptr, dst)             \
 | ||||||
|  | +  (cache_ptr)->howto = NULL
 | ||||||
|  | +
 | ||||||
|  | +#ifndef bfd_pe_print_pdata
 | ||||||
|  | +#define bfd_pe_print_pdata      NULL
 | ||||||
|  | +#endif
 | ||||||
|  | +
 | ||||||
|  | +/* Return TRUE if this relocation should
 | ||||||
|  | +   appear in the output .reloc section.  */
 | ||||||
|  | +
 | ||||||
|  | +static bfd_boolean
 | ||||||
|  | +in_reloc_p (bfd * abfd ATTRIBUTE_UNUSED,
 | ||||||
|  | +            reloc_howto_type * howto)
 | ||||||
|  | +{
 | ||||||
|  | +  return !howto->pc_relative;
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +#include "coffcode.h"
 | ||||||
|  | +
 | ||||||
|  | +/* Target vectors.  */
 | ||||||
|  | +const bfd_target
 | ||||||
|  | +#ifdef TARGET_SYM
 | ||||||
|  | +  TARGET_SYM =
 | ||||||
|  | +#else
 | ||||||
|  | +  aarch64_pei_vec =
 | ||||||
|  | +#endif
 | ||||||
|  | +{
 | ||||||
|  | +#ifdef TARGET_NAME
 | ||||||
|  | +  TARGET_NAME,
 | ||||||
|  | +#else
 | ||||||
|  | + "pei-aarch64-little",			/* Name.  */
 | ||||||
|  | +#endif
 | ||||||
|  | +  bfd_target_coff_flavour,
 | ||||||
|  | +  BFD_ENDIAN_LITTLE,		/* Data byte order is little.  */
 | ||||||
|  | +  BFD_ENDIAN_LITTLE,		/* Header byte order is little.  */
 | ||||||
|  | +
 | ||||||
|  | +  (HAS_RELOC | EXEC_P		/* Object flags.  */
 | ||||||
|  | +   | HAS_LINENO | HAS_DEBUG
 | ||||||
|  | +   | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS),
 | ||||||
|  | +
 | ||||||
|  | +  (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags.  */
 | ||||||
|  | +#if defined(COFF_WITH_PE)
 | ||||||
|  | +   | SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_READONLY | SEC_DEBUGGING
 | ||||||
|  | +#endif
 | ||||||
|  | +   | SEC_CODE | SEC_DATA | SEC_EXCLUDE ),
 | ||||||
|  | +
 | ||||||
|  | +#ifdef TARGET_UNDERSCORE
 | ||||||
|  | +  TARGET_UNDERSCORE,		/* Leading underscore.  */
 | ||||||
|  | +#else
 | ||||||
|  | +  0,				/* Leading underscore.  */
 | ||||||
|  | +#endif
 | ||||||
|  | +  '/',				/* Ar_pad_char.  */
 | ||||||
|  | +  15,				/* Ar_max_namelen.  */
 | ||||||
|  | +  0,				/* match priority.  */
 | ||||||
|  | +
 | ||||||
|  | +     /* Data conversion functions.  */
 | ||||||
|  | +     bfd_getl64, bfd_getl_signed_64, bfd_putl64,
 | ||||||
|  | +     bfd_getl32, bfd_getl_signed_32, bfd_putl32,
 | ||||||
|  | +     bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Data.  */
 | ||||||
|  | +     /* Header conversion functions.  */
 | ||||||
|  | +     bfd_getl64, bfd_getl_signed_64, bfd_putl64,
 | ||||||
|  | +     bfd_getl32, bfd_getl_signed_32, bfd_putl32,
 | ||||||
|  | +     bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs.  */
 | ||||||
|  | +
 | ||||||
|  | +  /* Note that we allow an object file to be treated as a core file as well.  */
 | ||||||
|  | +  {				/* bfd_check_format.  */
 | ||||||
|  | +    _bfd_dummy_target,
 | ||||||
|  | +    coff_object_p,
 | ||||||
|  | +    bfd_generic_archive_p,
 | ||||||
|  | +    coff_object_p
 | ||||||
|  | +  },
 | ||||||
|  | +  {				/* bfd_set_format.  */
 | ||||||
|  | +    _bfd_bool_bfd_false_error,
 | ||||||
|  | +    coff_mkobject,
 | ||||||
|  | +    _bfd_generic_mkarchive,
 | ||||||
|  | +    _bfd_bool_bfd_false_error
 | ||||||
|  | +  },
 | ||||||
|  | +  {				/* bfd_write_contents.  */
 | ||||||
|  | +    _bfd_bool_bfd_false_error,
 | ||||||
|  | +    coff_write_object_contents,
 | ||||||
|  | +    _bfd_write_archive_contents,
 | ||||||
|  | +    _bfd_bool_bfd_false_error
 | ||||||
|  | +  },
 | ||||||
|  | +
 | ||||||
|  | +  BFD_JUMP_TABLE_GENERIC (coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_COPY (coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_CORE (_bfd_nocore),
 | ||||||
|  | +  BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_SYMBOLS (coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_RELOCS (coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_WRITE (coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_LINK (coff),
 | ||||||
|  | +  BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
 | ||||||
|  | +
 | ||||||
|  | +  NULL,
 | ||||||
|  | +
 | ||||||
|  | +  COFF_SWAP_TABLE
 | ||||||
|  | +};
 | ||||||
|  | --- /dev/null	2021-11-30 07:48:35.901044247 +0000
 | ||||||
|  | +++ binutils-2.35.2/include/coff/aarch64.h	2021-11-30 13:38:37.261656895 +0000
 | ||||||
|  | @@ -0,0 +1,63 @@
 | ||||||
|  | +/* AArch64 COFF support for BFD.
 | ||||||
|  | +   Copyright (C) 2021 Free Software Foundation, Inc.
 | ||||||
|  | +
 | ||||||
|  | +   This file is part of BFD, the Binary File Descriptor library.
 | ||||||
|  | +
 | ||||||
|  | +   This program is free software; you can redistribute it and/or modify
 | ||||||
|  | +   it under the terms of the GNU General Public License as published by
 | ||||||
|  | +   the Free Software Foundation; either version 3 of the License, or
 | ||||||
|  | +   (at your option) any later version.
 | ||||||
|  | +
 | ||||||
|  | +   This program is distributed in the hope that it will be useful,
 | ||||||
|  | +   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||||||
|  | +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | ||||||
|  | +   GNU General Public License for more details.
 | ||||||
|  | +
 | ||||||
|  | +   You should have received a copy of the GNU General Public License
 | ||||||
|  | +   along with this program; if not, write to the Free Software Foundation,
 | ||||||
|  | +   Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 | ||||||
|  | +
 | ||||||
|  | +#define COFFAARCH64 1
 | ||||||
|  | +
 | ||||||
|  | +#define L_LNNO_SIZE 2
 | ||||||
|  | +#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
 | ||||||
|  | +#include "coff/external.h"
 | ||||||
|  | +
 | ||||||
|  | +#define F_AARCH64_ARCHITECTURE_MASK	(0x4000)
 | ||||||
|  | +
 | ||||||
|  | +#define	AARCH64MAGIC	0xaa64  /* From Microsoft specification. */
 | ||||||
|  | +
 | ||||||
|  | +#undef  BADMAG
 | ||||||
|  | +#define BADMAG(x) ((x).f_magic != AARCH64MAGIC)
 | ||||||
|  | +#define AARCH64         1                 /* Customize coffcode.h.  */
 | ||||||
|  | +
 | ||||||
|  | +#define IMAGE_NT_OPTIONAL_HDR64_MAGIC      0x20b
 | ||||||
|  | +
 | ||||||
|  | +#define OMAGIC          0404    /* Object files, eg as output.  */
 | ||||||
|  | +#define ZMAGIC          IMAGE_NT_OPTIONAL_HDR64_MAGIC    /* Demand load format, eg normal ld output 0x10b.  */
 | ||||||
|  | +#define STMAGIC		0401	/* Target shlib.  */
 | ||||||
|  | +#define SHMAGIC		0443	/* Host   shlib.  */
 | ||||||
|  | +
 | ||||||
|  | +/* define some NT default values */
 | ||||||
|  | +/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
 | ||||||
|  | +#define NT_SECTION_ALIGNMENT 0x1000
 | ||||||
|  | +#define NT_FILE_ALIGNMENT    0x200
 | ||||||
|  | +#define NT_DEF_RESERVE       0x100000
 | ||||||
|  | +#define NT_DEF_COMMIT        0x1000
 | ||||||
|  | +
 | ||||||
|  | +/* We use the .rdata section to hold read only data.  */
 | ||||||
|  | +#define _LIT	".rdata"
 | ||||||
|  | +
 | ||||||
|  | +/********************** RELOCATION DIRECTIVES **********************/
 | ||||||
|  | +struct external_reloc
 | ||||||
|  | +{
 | ||||||
|  | +  char r_vaddr[4];
 | ||||||
|  | +  char r_symndx[4];
 | ||||||
|  | +  char r_type[2];
 | ||||||
|  | +  char r_offset[4];
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +#define RELOC struct external_reloc
 | ||||||
|  | +#define RELSZ 14
 | ||||||
|  | +
 | ||||||
|  | +#define ARM_NOTE_SECTION ".note"
 | ||||||
|  | --- /dev/null	2021-11-30 07:48:35.901044247 +0000
 | ||||||
|  | +++ binutils-2.35.2/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.s	2021-11-30 13:38:37.260656902 +0000
 | ||||||
|  | @@ -0,0 +1,42 @@
 | ||||||
|  | +	.arch armv8-a
 | ||||||
|  | +	.text
 | ||||||
|  | +	.align	2
 | ||||||
|  | +	.global	foo
 | ||||||
|  | +	.type	foo, %function
 | ||||||
|  | +foo:
 | ||||||
|  | +.LFB0:
 | ||||||
|  | +	.cfi_startproc
 | ||||||
|  | +	sub	sp, sp, #16
 | ||||||
|  | +	.cfi_def_cfa_offset 16
 | ||||||
|  | +	str	w0, [sp, 12]
 | ||||||
|  | +	ldr	w0, [sp, 12]
 | ||||||
|  | +	mul	w0, w0, w0
 | ||||||
|  | +	add	sp, sp, 16
 | ||||||
|  | +	.cfi_def_cfa_offset 0
 | ||||||
|  | +	ret
 | ||||||
|  | +	.cfi_endproc
 | ||||||
|  | +.LFE0:
 | ||||||
|  | +	.size	foo, .-foo
 | ||||||
|  | +	.align	2
 | ||||||
|  | +	.global	main
 | ||||||
|  | +	.type	main, %function
 | ||||||
|  | +main:
 | ||||||
|  | +.LFB1:
 | ||||||
|  | +	.cfi_startproc
 | ||||||
|  | +	stp	x29, x30, [sp, -16]!
 | ||||||
|  | +	.cfi_def_cfa_offset 16
 | ||||||
|  | +	.cfi_offset 29, -16
 | ||||||
|  | +	.cfi_offset 30, -8
 | ||||||
|  | +	mov	x29, sp
 | ||||||
|  | +	mov	w0, 5
 | ||||||
|  | +	bl	foo
 | ||||||
|  | +	ldp	x29, x30, [sp], 16
 | ||||||
|  | +	.cfi_restore 30
 | ||||||
|  | +	.cfi_restore 29
 | ||||||
|  | +	.cfi_def_cfa_offset 0
 | ||||||
|  | +	ret
 | ||||||
|  | +	.cfi_endproc
 | ||||||
|  | +.LFE1:
 | ||||||
|  | +	.size	main, .-main
 | ||||||
|  | +	.ident	"GCC: (fsf-trunk.2870) 12.0.0 20210930 (experimental)"
 | ||||||
|  | +	.section	.note.GNU-stack,"",@progbits
 | ||||||
|  | --- /dev/null	2021-11-30 07:48:35.901044247 +0000
 | ||||||
|  | +++ binutils-2.35.2/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d	2021-11-30 13:38:37.260656902 +0000
 | ||||||
|  | @@ -0,0 +1,16 @@
 | ||||||
|  | +#skip: aarch64_be-*-*
 | ||||||
|  | +#ld: -e0
 | ||||||
|  | +#PROG: objcopy
 | ||||||
|  | +#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=efi-app-aarch64
 | ||||||
|  | +#objdump: -h -f
 | ||||||
|  | +#name: Check if efi app format is recognized
 | ||||||
|  | +
 | ||||||
|  | +.*:     file format pei-aarch64-little
 | ||||||
|  | +architecture: aarch64, flags 0x00000132:
 | ||||||
|  | +EXEC_P, HAS_SYMS, HAS_LOCALS, D_PAGED
 | ||||||
|  | +start address 0x0000000000000000
 | ||||||
|  | +
 | ||||||
|  | +Sections:
 | ||||||
|  | +Idx Name          Size      VMA               LMA               File off  Algn
 | ||||||
|  | +  0 \.text         00000030  0[^ ]+  0[^ ]+  0[^ ]+  2\*\*2
 | ||||||
|  | +                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 | ||||||
|  | --- /dev/null	2021-11-30 07:48:35.901044247 +0000
 | ||||||
|  | +++ binutils-2.35.2/bfd/pei-aarch64.c	2021-11-30 13:38:37.255656936 +0000
 | ||||||
|  | @@ -0,0 +1,75 @@
 | ||||||
|  | +/* BFD back-end for AArch64 PE IMAGE COFF files.
 | ||||||
|  | +   Copyright (C) 2021 Free Software Foundation, Inc.
 | ||||||
|  | +
 | ||||||
|  | +   This file is part of BFD, the Binary File Descriptor library.
 | ||||||
|  | +
 | ||||||
|  | +   This program is free software; you can redistribute it and/or modify
 | ||||||
|  | +   it under the terms of the GNU General Public License as published by
 | ||||||
|  | +   the Free Software Foundation; either version 3 of the License, or
 | ||||||
|  | +   (at your option) any later version.
 | ||||||
|  | +
 | ||||||
|  | +   This program is distributed in the hope that it will be useful,
 | ||||||
|  | +   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||||||
|  | +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | ||||||
|  | +   GNU General Public License for more details.
 | ||||||
|  | +
 | ||||||
|  | +   You should have received a copy of the GNU General Public License
 | ||||||
|  | +   along with this program; if not, write to the Free Software
 | ||||||
|  | +   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 | ||||||
|  | +   MA 02110-1301, USA.  */
 | ||||||
|  | +
 | ||||||
|  | +#include "sysdep.h"
 | ||||||
|  | +#include "bfd.h"
 | ||||||
|  | +
 | ||||||
|  | +#define TARGET_SYM		aarch64_pei_vec
 | ||||||
|  | +#define TARGET_NAME		"pei-aarch64-little"
 | ||||||
|  | +#define TARGET_ARCHITECTURE	bfd_arch_aarch64
 | ||||||
|  | +#define TARGET_PAGESIZE		4096
 | ||||||
|  | +#define TARGET_BIG_ENDIAN	0
 | ||||||
|  | +#define TARGET_ARCHIVE		0
 | ||||||
|  | +#define TARGET_PRIORITY		0
 | ||||||
|  | +
 | ||||||
|  | +#define COFF_IMAGE_WITH_PE
 | ||||||
|  | +/* Rename the above into.. */
 | ||||||
|  | +#define COFF_WITH_peAArch64
 | ||||||
|  | +#define COFF_WITH_PE
 | ||||||
|  | +#define PCRELOFFSET	   TRUE
 | ||||||
|  | +
 | ||||||
|  | +/* Long section names not allowed in executable images, only object files.  */
 | ||||||
|  | +#define COFF_LONG_SECTION_NAMES 0
 | ||||||
|  | +
 | ||||||
|  | +#define COFF_SECTION_ALIGNMENT_ENTRIES \
 | ||||||
|  | +{ COFF_SECTION_NAME_EXACT_MATCH (".bss"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_EXACT_MATCH (".data"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_EXACT_MATCH (".rdata"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_EXACT_MATCH (".text"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }, \
 | ||||||
|  | +{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
 | ||||||
|  | +  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
 | ||||||
|  | +
 | ||||||
|  | +#define PEI_HEADERS
 | ||||||
|  | +#include "sysdep.h"
 | ||||||
|  | +#include "bfd.h"
 | ||||||
|  | +#include "libbfd.h"
 | ||||||
|  | +#include "coff/aarch64.h"
 | ||||||
|  | +#include "coff/internal.h"
 | ||||||
|  | +#include "coff/pe.h"
 | ||||||
|  | +#include "libcoff.h"
 | ||||||
|  | +#include "libpei.h"
 | ||||||
|  | +#include "libiberty.h"
 | ||||||
|  | +
 | ||||||
|  | +/* Make sure we're setting a 64-bit format.  */
 | ||||||
|  | +#undef AOUTSZ
 | ||||||
|  | +#define AOUTSZ          PEPAOUTSZ
 | ||||||
|  | +#define PEAOUTHDR       PEPAOUTHDR
 | ||||||
|  | +
 | ||||||
|  | +#include "coff-aarch64.c"
 | ||||||
							
								
								
									
										15
									
								
								SOURCES/binutils-CVE-2019-1010204.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								SOURCES/binutils-CVE-2019-1010204.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | --- binutils.orig/gold/fileread.cc	2019-08-06 14:22:08.669313110 +0100
 | ||||||
|  | +++ binutils-2.32/gold/fileread.cc	2019-08-06 14:22:28.799177543 +0100
 | ||||||
|  | @@ -381,6 +381,12 @@ File_read::do_read(off_t start, section_
 | ||||||
|  |    ssize_t bytes; | ||||||
|  |    if (this->whole_file_view_ != NULL) | ||||||
|  |      { | ||||||
|  | +      // See PR 23765 for an example of a testcase that triggers this error.
 | ||||||
|  | +      if (((ssize_t) start) < 0)
 | ||||||
|  | +	gold_fatal(_("%s: read failed, starting offset (%#llx) less than zero"),
 | ||||||
|  | +		   this->filename().c_str(),
 | ||||||
|  | +		   static_cast<long long>(start));
 | ||||||
|  | +	
 | ||||||
|  |        bytes = this->size_ - start; | ||||||
|  |        if (static_cast<section_size_type>(bytes) >= size) | ||||||
|  |  	{ | ||||||
							
								
								
									
										53
									
								
								SOURCES/binutils-CVE-2020-35448.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								SOURCES/binutils-CVE-2020-35448.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | |||||||
|  | diff -rup binutils.orig/bfd/elf.c binutils-2.35/bfd/elf.c
 | ||||||
|  | --- binutils.orig/bfd/elf.c	2021-04-19 10:49:21.757290990 +0100
 | ||||||
|  | +++ binutils-2.35/bfd/elf.c	2021-04-19 10:50:28.309839285 +0100
 | ||||||
|  | @@ -12534,7 +12534,9 @@ _bfd_elf_slurp_secondary_reloc_section (
 | ||||||
|  |        Elf_Internal_Shdr * hdr = & elf_section_data (relsec)->this_hdr; | ||||||
|  |   | ||||||
|  |        if (hdr->sh_type == SHT_SECONDARY_RELOC | ||||||
|  | -	  && hdr->sh_info == (unsigned) elf_section_data (sec)->this_idx)
 | ||||||
|  | +	  && hdr->sh_info == (unsigned) elf_section_data (sec)->this_idx
 | ||||||
|  | +	  && (hdr->sh_entsize == ebd->s->sizeof_rel
 | ||||||
|  | +	      || hdr->sh_entsize == ebd->s->sizeof_rela))
 | ||||||
|  |  	{ | ||||||
|  |  	  bfd_byte * native_relocs; | ||||||
|  |  	  bfd_byte * native_reloc; | ||||||
|  | diff -rup binutils.orig/bfd/elfcode.h binutils-2.35/bfd/elfcode.h
 | ||||||
|  | --- binutils.orig/bfd/elfcode.h	2021-04-19 10:49:21.767290922 +0100
 | ||||||
|  | +++ binutils-2.35/bfd/elfcode.h	2021-04-19 10:52:22.196066303 +0100
 | ||||||
|  | @@ -568,7 +568,7 @@ elf_object_p (bfd *abfd)
 | ||||||
|  |   | ||||||
|  |    /* If this is a relocatable file and there is no section header | ||||||
|  |       table, then we're hosed.  */ | ||||||
|  | -  if (i_ehdrp->e_shoff == 0 && i_ehdrp->e_type == ET_REL)
 | ||||||
|  | +  if (i_ehdrp->e_shoff < sizeof (x_ehdr) && i_ehdrp->e_type == ET_REL)
 | ||||||
|  |      goto got_wrong_format_error; | ||||||
|  |   | ||||||
|  |    /* As a simple sanity check, verify that what BFD thinks is the | ||||||
|  | @@ -578,7 +578,7 @@ elf_object_p (bfd *abfd)
 | ||||||
|  |      goto got_wrong_format_error; | ||||||
|  |   | ||||||
|  |    /* Further sanity check.  */ | ||||||
|  | -  if (i_ehdrp->e_shoff == 0 && i_ehdrp->e_shnum != 0)
 | ||||||
|  | +  if (i_ehdrp->e_shoff < sizeof (x_ehdr) && i_ehdrp->e_shnum != 0)
 | ||||||
|  |      goto got_wrong_format_error; | ||||||
|  |   | ||||||
|  |    ebd = get_elf_backend_data (abfd); | ||||||
|  | @@ -615,7 +615,7 @@ elf_object_p (bfd *abfd)
 | ||||||
|  |        && ebd->elf_osabi != ELFOSABI_NONE) | ||||||
|  |      goto got_wrong_format_error; | ||||||
|  |   | ||||||
|  | -  if (i_ehdrp->e_shoff != 0)
 | ||||||
|  | +  if (i_ehdrp->e_shoff >= sizeof (x_ehdr))
 | ||||||
|  |      { | ||||||
|  |        file_ptr where = (file_ptr) i_ehdrp->e_shoff; | ||||||
|  |   | ||||||
|  | @@ -807,7 +807,7 @@ elf_object_p (bfd *abfd)
 | ||||||
|  |  	} | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -  if (i_ehdrp->e_shstrndx != 0 && i_ehdrp->e_shoff != 0)
 | ||||||
|  | +  if (i_ehdrp->e_shstrndx != 0 && i_ehdrp->e_shoff >= sizeof (x_ehdr))
 | ||||||
|  |      { | ||||||
|  |        unsigned int num_sec; | ||||||
|  |   | ||||||
							
								
								
									
										1310
									
								
								SOURCES/binutils-CVE-2021-20197.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1310
									
								
								SOURCES/binutils-CVE-2021-20197.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										58
									
								
								SOURCES/binutils-CVE-2021-20284.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								SOURCES/binutils-CVE-2021-20284.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | |||||||
|  | diff -rup binutils.orig/bfd/elf-bfd.h binutils-2.35.1/bfd/elf-bfd.h
 | ||||||
|  | --- binutils.orig/bfd/elf-bfd.h	2021-03-12 12:20:04.495125388 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/elf-bfd.h	2021-03-12 12:21:25.696583280 +0000
 | ||||||
|  | @@ -1562,7 +1562,7 @@ struct elf_backend_data
 | ||||||
|  |  					       const char *, unsigned int); | ||||||
|  |   | ||||||
|  |    /* Called when after loading the normal relocs for a section.  */ | ||||||
|  | -  bfd_boolean (*slurp_secondary_relocs) (bfd *, asection *, asymbol **);
 | ||||||
|  | +  bfd_boolean (*slurp_secondary_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
 | ||||||
|  |   | ||||||
|  |    /* Called after writing the normal relocs for a section.  */ | ||||||
|  |    bfd_boolean (*write_secondary_relocs) (bfd *, asection *); | ||||||
|  | @@ -2909,7 +2909,7 @@ extern bfd_boolean is_debuginfo_file (bf
 | ||||||
|  |  extern bfd_boolean _bfd_elf_init_secondary_reloc_section | ||||||
|  |    (bfd *, Elf_Internal_Shdr *, const char *, unsigned int); | ||||||
|  |  extern bfd_boolean _bfd_elf_slurp_secondary_reloc_section | ||||||
|  | -  (bfd *, asection *, asymbol **);
 | ||||||
|  | +(bfd *, asection *, asymbol **, bfd_boolean);
 | ||||||
|  |  extern bfd_boolean _bfd_elf_copy_special_section_fields | ||||||
|  |    (const bfd *, bfd *, const Elf_Internal_Shdr *, Elf_Internal_Shdr *); | ||||||
|  |  extern bfd_boolean _bfd_elf_write_secondary_reloc_section | ||||||
|  | diff -rup binutils.orig/bfd/elf.c binutils-2.35.1/bfd/elf.c
 | ||||||
|  | --- binutils.orig/bfd/elf.c	2021-03-12 12:20:04.496125381 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/elf.c	2021-03-12 12:20:46.032848074 +0000
 | ||||||
|  | @@ -12513,7 +12513,8 @@ _bfd_elf_init_secondary_reloc_section (b
 | ||||||
|  |  bfd_boolean | ||||||
|  |  _bfd_elf_slurp_secondary_reloc_section (bfd *      abfd, | ||||||
|  |  					asection * sec, | ||||||
|  | -					asymbol ** symbols)
 | ||||||
|  | +					asymbol ** symbols,
 | ||||||
|  | +					bfd_boolean dynamic)
 | ||||||
|  |  { | ||||||
|  |    const struct elf_backend_data * const ebd = get_elf_backend_data (abfd); | ||||||
|  |    asection * relsec; | ||||||
|  | @@ -12590,7 +12591,10 @@ _bfd_elf_slurp_secondary_reloc_section (
 | ||||||
|  |  	      continue; | ||||||
|  |  	    } | ||||||
|  |   | ||||||
|  | -	  symcount = bfd_get_symcount (abfd);
 | ||||||
|  | +         if (dynamic)
 | ||||||
|  | +           symcount = bfd_get_dynamic_symcount (abfd);
 | ||||||
|  | +         else
 | ||||||
|  | +           symcount = bfd_get_symcount (abfd);
 | ||||||
|  |   | ||||||
|  |  	  for (i = 0, internal_reloc = internal_relocs, | ||||||
|  |  		 native_reloc = native_relocs; | ||||||
|  | diff -rup binutils.orig/bfd/elfcode.h binutils-2.35.1/bfd/elfcode.h
 | ||||||
|  | --- binutils.orig/bfd/elfcode.h	2021-03-12 12:20:04.533125134 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/elfcode.h	2021-03-12 12:21:59.568357132 +0000
 | ||||||
|  | @@ -1591,7 +1591,7 @@ elf_slurp_reloc_table (bfd *abfd,
 | ||||||
|  |  					      symbols, dynamic)) | ||||||
|  |      return FALSE; | ||||||
|  |   | ||||||
|  | -  if (!bed->slurp_secondary_relocs (abfd, asect, symbols))
 | ||||||
|  | +  if (!bed->slurp_secondary_relocs (abfd, asect, symbols, dynamic))
 | ||||||
|  |      return FALSE; | ||||||
|  |   | ||||||
|  |    asect->relocation = relents; | ||||||
							
								
								
									
										34
									
								
								SOURCES/binutils-CVE-2021-3487.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								SOURCES/binutils-CVE-2021-3487.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | --- binutils.orig/bfd/dwarf2.c	2021-04-09 16:59:18.345187116 +0100
 | ||||||
|  | +++ binutils-2.35/bfd/dwarf2.c	2021-04-09 17:02:03.614064723 +0100
 | ||||||
|  | @@ -539,6 +539,8 @@ read_section (bfd *	      abfd,
 | ||||||
|  |    /* The section may have already been read.  */ | ||||||
|  |    if (contents == NULL) | ||||||
|  |      { | ||||||
|  | +      ufile_ptr  filesize;
 | ||||||
|  | +
 | ||||||
|  |        msec = bfd_get_section_by_name (abfd, section_name); | ||||||
|  |        if (! msec) | ||||||
|  |  	{ | ||||||
|  | @@ -554,10 +556,20 @@ read_section (bfd *	      abfd,
 | ||||||
|  |  	  return FALSE; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | -      *section_size = msec->rawsize ? msec->rawsize : msec->size;
 | ||||||
|  | +      amt = bfd_get_section_limit_octets (abfd, msec);
 | ||||||
|  | +      filesize = bfd_get_file_size (abfd);
 | ||||||
|  | +      if (amt >= filesize)
 | ||||||
|  | +       {
 | ||||||
|  | +         /* PR 26946 */
 | ||||||
|  | +         _bfd_error_handler (_("DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)"),
 | ||||||
|  | +                             section_name, (long) amt, (long) filesize);
 | ||||||
|  | +         bfd_set_error (bfd_error_bad_value);
 | ||||||
|  | +         return FALSE;
 | ||||||
|  | +       }
 | ||||||
|  | +      *section_size = amt;
 | ||||||
|  |        /* Paranoia - alloc one extra so that we can make sure a string | ||||||
|  |  	 section is NUL terminated.  */ | ||||||
|  | -      amt = *section_size + 1;
 | ||||||
|  | +      amt += 1;
 | ||||||
|  |        if (amt == 0) | ||||||
|  |  	{ | ||||||
|  |  	  bfd_set_error (bfd_error_no_memory); | ||||||
							
								
								
									
										11
									
								
								SOURCES/binutils-DWARF-5-FORM_ref_addr.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								SOURCES/binutils-DWARF-5-FORM_ref_addr.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | --- binutils.orig/bfd/dwarf2.c	2021-05-18 12:00:10.363028020 +0100
 | ||||||
|  | +++ binutils-2.35.2/bfd/dwarf2.c	2021-05-18 12:01:09.930831909 +0100
 | ||||||
|  | @@ -1194,7 +1194,7 @@ read_attribute_value (struct attribute *
 | ||||||
|  |      case DW_FORM_ref_addr: | ||||||
|  |        /* DW_FORM_ref_addr is an address in DWARF2, and an offset in | ||||||
|  |  	 DWARF3.  */ | ||||||
|  | -      if (unit->version == 3 || unit->version == 4)
 | ||||||
|  | +      if (unit->version >= 3)
 | ||||||
|  |  	{ | ||||||
|  |  	  if (unit->offset_size == 4) | ||||||
|  |  	    attr->u.val = read_4_bytes (unit->abfd, info_ptr, info_ptr_end); | ||||||
							
								
								
									
										223
									
								
								SOURCES/binutils-SHF_LINK_ORDER.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										223
									
								
								SOURCES/binutils-SHF_LINK_ORDER.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,223 @@ | |||||||
|  | diff -rup binutils.orig/bfd/bfd-in2.h binutils-2.35.1/bfd/bfd-in2.h
 | ||||||
|  | --- binutils.orig/bfd/bfd-in2.h	2021-01-04 13:18:10.234368481 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/bfd-in2.h	2021-01-04 13:18:20.596301287 +0000
 | ||||||
|  | @@ -1177,6 +1177,9 @@ typedef struct bfd_section
 | ||||||
|  |    struct bfd_symbol *symbol; | ||||||
|  |    struct bfd_symbol **symbol_ptr_ptr; | ||||||
|  |   | ||||||
|  | +  /* The matching section name pattern in linker script.  */
 | ||||||
|  | +  const char *pattern;
 | ||||||
|  | +
 | ||||||
|  |    /* Early in the link process, map_head and map_tail are used to build | ||||||
|  |       a list of input sections attached to an output section.  Later, | ||||||
|  |       output sections use these fields for a list of bfd_link_order | ||||||
|  | @@ -1370,8 +1373,8 @@ discarded_section (const asection *sec)
 | ||||||
|  |    /* target_index, used_by_bfd, constructor_chain, owner,           */ \ | ||||||
|  |       0,            NULL,        NULL,              NULL,               \ | ||||||
|  |                                                                         \ | ||||||
|  | -  /* symbol,                    symbol_ptr_ptr,                     */ \
 | ||||||
|  | -     (struct bfd_symbol *) SYM, &SEC.symbol,                           \
 | ||||||
|  | +  /* symbol,                    symbol_ptr_ptr, pattern,            */ \
 | ||||||
|  | +     (struct bfd_symbol *) SYM, &SEC.symbol,    NULL,                  \
 | ||||||
|  |                                                                         \ | ||||||
|  |    /* map_head, map_tail, already_assigned                           */ \ | ||||||
|  |       { NULL }, { NULL }, NULL                                          \ | ||||||
|  | diff -rup binutils.orig/bfd/elflink.c binutils-2.35.1/bfd/elflink.c
 | ||||||
|  | --- binutils.orig/bfd/elflink.c	2021-01-04 13:18:10.223368552 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/elflink.c	2021-01-04 13:18:20.599301268 +0000
 | ||||||
|  | @@ -11662,8 +11662,21 @@ compare_link_order (const void *a, const
 | ||||||
|  |    const struct bfd_link_order *blo = *(const struct bfd_link_order **) b; | ||||||
|  |    asection *asec = elf_linked_to_section (alo->u.indirect.section); | ||||||
|  |    asection *bsec = elf_linked_to_section (blo->u.indirect.section); | ||||||
|  | -  bfd_vma apos = asec->output_section->lma + asec->output_offset;
 | ||||||
|  | -  bfd_vma bpos = bsec->output_section->lma + bsec->output_offset;
 | ||||||
|  | +  bfd_vma apos, bpos;
 | ||||||
|  | +
 | ||||||
|  | +  /* Check if any sections are unordered.  */
 | ||||||
|  | +  if (asec == NULL || bsec == NULL)
 | ||||||
|  | +    {
 | ||||||
|  | +      /* Place ordered sections before unordered sections.  */
 | ||||||
|  | +      if (bsec != NULL)
 | ||||||
|  | +	return 1;
 | ||||||
|  | +      else if (asec != NULL)
 | ||||||
|  | +	return -1;
 | ||||||
|  | +      return 0;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  | +  apos = asec->output_section->lma + asec->output_offset;
 | ||||||
|  | +  bpos = bsec->output_section->lma + bsec->output_offset;
 | ||||||
|  |   | ||||||
|  |    if (apos < bpos) | ||||||
|  |      return -1; | ||||||
|  | @@ -11698,14 +11711,14 @@ compare_link_order (const void *a, const
 | ||||||
|  |     sections.  Ideally we'd do this in the linker proper.  */ | ||||||
|  |   | ||||||
|  |  static bfd_boolean | ||||||
|  | -elf_fixup_link_order (bfd *abfd, asection *o)
 | ||||||
|  | +elf_fixup_link_order (struct bfd_link_info *info, bfd *abfd, asection *o)
 | ||||||
|  |  { | ||||||
|  |    size_t seen_linkorder; | ||||||
|  |    size_t seen_other; | ||||||
|  |    size_t n; | ||||||
|  |    struct bfd_link_order *p; | ||||||
|  |    bfd *sub; | ||||||
|  | -  struct bfd_link_order **sections;
 | ||||||
|  | +  struct bfd_link_order **sections, **indirect_sections;
 | ||||||
|  |    asection *other_sec, *linkorder_sec; | ||||||
|  |    bfd_vma offset;  /* Octets.  */ | ||||||
|  |   | ||||||
|  | @@ -11736,7 +11749,9 @@ elf_fixup_link_order (bfd *abfd, asectio
 | ||||||
|  |        else | ||||||
|  |  	seen_other++; | ||||||
|  |   | ||||||
|  | -      if (seen_other && seen_linkorder)
 | ||||||
|  | +      /* Allow mixed ordered and unordered input sections for
 | ||||||
|  | +         non-relocatable link.  */
 | ||||||
|  | +      if (bfd_link_relocatable (info) && seen_other && seen_linkorder)
 | ||||||
|  |  	{ | ||||||
|  |  	  if (other_sec && linkorder_sec) | ||||||
|  |  	    _bfd_error_handler | ||||||
|  | @@ -11756,6 +11771,10 @@ elf_fixup_link_order (bfd *abfd, asectio
 | ||||||
|  |    if (!seen_linkorder) | ||||||
|  |      return TRUE; | ||||||
|  |   | ||||||
|  | +  /* Non-relocatable output can have both ordered and unordered input
 | ||||||
|  | +     sections.  */
 | ||||||
|  | +  seen_linkorder += seen_other;
 | ||||||
|  | +
 | ||||||
|  |    sections = bfd_malloc (seen_linkorder * sizeof (*sections)); | ||||||
|  |    if (sections == NULL) | ||||||
|  |      return FALSE; | ||||||
|  | @@ -11764,22 +11783,51 @@ elf_fixup_link_order (bfd *abfd, asectio
 | ||||||
|  |    for (p = o->map_head.link_order; p != NULL; p = p->next) | ||||||
|  |      sections[seen_linkorder++] = p; | ||||||
|  |   | ||||||
|  | -  /* Sort the input sections in the order of their linked section.  */
 | ||||||
|  | -  qsort (sections, seen_linkorder, sizeof (*sections), compare_link_order);
 | ||||||
|  | +  for (indirect_sections = sections, n = 0; n < seen_linkorder;)
 | ||||||
|  | +    {
 | ||||||
|  | +      /* Find the first bfd_indirect_link_order section.  */
 | ||||||
|  | +      if (indirect_sections[0]->type == bfd_indirect_link_order)
 | ||||||
|  | +	{
 | ||||||
|  | +	  /* Count the consecutive bfd_indirect_link_order sections
 | ||||||
|  | +	     with the same pattern.  */
 | ||||||
|  | +	  size_t i, n_indirect;
 | ||||||
|  | +	  const char *pattern
 | ||||||
|  | +	    = indirect_sections[0]->u.indirect.section->pattern;
 | ||||||
|  | +	  for (i = n + 1; i < seen_linkorder; i++)
 | ||||||
|  | +	    if (sections[i]->type != bfd_indirect_link_order
 | ||||||
|  | +		|| sections[i]->u.indirect.section->pattern != pattern)
 | ||||||
|  | +	      break;
 | ||||||
|  | +	  n_indirect = i - n;
 | ||||||
|  | +	  /* Sort the bfd_indirect_link_order sections in the order of
 | ||||||
|  | +	     their linked section.  */
 | ||||||
|  | +	  qsort (indirect_sections, n_indirect, sizeof (*sections),
 | ||||||
|  | +		 compare_link_order);
 | ||||||
|  | +	  indirect_sections += n_indirect;
 | ||||||
|  | +	  n += n_indirect;
 | ||||||
|  | +	}
 | ||||||
|  | +      else
 | ||||||
|  | +	{
 | ||||||
|  | +	  indirect_sections++;
 | ||||||
|  | +	  n++;
 | ||||||
|  | +	}
 | ||||||
|  | +    }
 | ||||||
|  |   | ||||||
|  | -  /* Change the offsets of the sections.  */
 | ||||||
|  | +  /* Change the offsets of the bfd_indirect_link_order sections.  */
 | ||||||
|  |    offset = 0; | ||||||
|  |    for (n = 0; n < seen_linkorder; n++) | ||||||
|  | -    {
 | ||||||
|  | -      bfd_vma mask;
 | ||||||
|  | -      asection *s = sections[n]->u.indirect.section;
 | ||||||
|  | -      unsigned int opb = bfd_octets_per_byte (abfd, s);
 | ||||||
|  | -
 | ||||||
|  | -      mask = ~(bfd_vma) 0 << s->alignment_power * opb;
 | ||||||
|  | -      offset = (offset + ~mask) & mask;
 | ||||||
|  | -      sections[n]->offset = s->output_offset = offset / opb;
 | ||||||
|  | -      offset += sections[n]->size;
 | ||||||
|  | -    }
 | ||||||
|  | +    if (sections[n]->type == bfd_indirect_link_order)
 | ||||||
|  | +      {
 | ||||||
|  | +	bfd_vma mask;
 | ||||||
|  | +	asection *s = sections[n]->u.indirect.section;
 | ||||||
|  | +	unsigned int opb = bfd_octets_per_byte (abfd, s);
 | ||||||
|  | +
 | ||||||
|  | +	mask = ~(bfd_vma) 0 << s->alignment_power * opb;
 | ||||||
|  | +	offset = (offset + ~mask) & mask;
 | ||||||
|  | +	sections[n]->offset = s->output_offset = offset / opb;
 | ||||||
|  | +	offset += sections[n]->size;
 | ||||||
|  | +      }
 | ||||||
|  | +    else
 | ||||||
|  | +      offset = sections[n]->offset + sections[n]->size;
 | ||||||
|  |   | ||||||
|  |    free (sections); | ||||||
|  |    return TRUE; | ||||||
|  | @@ -12408,7 +12456,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
 | ||||||
|  |    /* Reorder SHF_LINK_ORDER sections.  */ | ||||||
|  |    for (o = abfd->sections; o != NULL; o = o->next) | ||||||
|  |      { | ||||||
|  | -      if (!elf_fixup_link_order (abfd, o))
 | ||||||
|  | +      if (!elf_fixup_link_order (info, abfd, o))
 | ||||||
|  |  	return FALSE; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | diff -rup binutils.orig/bfd/section.c binutils-2.35.1/bfd/section.c
 | ||||||
|  | --- binutils.orig/bfd/section.c	2021-01-04 13:18:10.233368487 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/section.c	2021-01-04 13:18:20.599301268 +0000
 | ||||||
|  | @@ -541,6 +541,9 @@ CODE_FRAGMENT
 | ||||||
|  |  .  struct bfd_symbol *symbol; | ||||||
|  |  .  struct bfd_symbol **symbol_ptr_ptr; | ||||||
|  |  . | ||||||
|  | +.  {* The matching section name pattern in linker script.  *}
 | ||||||
|  | +.  const char *pattern;
 | ||||||
|  | +.
 | ||||||
|  |  .  {* Early in the link process, map_head and map_tail are used to build | ||||||
|  |  .     a list of input sections attached to an output section.  Later, | ||||||
|  |  .     output sections use these fields for a list of bfd_link_order | ||||||
|  | @@ -734,8 +737,8 @@ CODE_FRAGMENT
 | ||||||
|  |  .  {* target_index, used_by_bfd, constructor_chain, owner,           *}	\ | ||||||
|  |  .     0,            NULL,        NULL,              NULL,		\ | ||||||
|  |  .									\ | ||||||
|  | -.  {* symbol,                    symbol_ptr_ptr,                     *}	\
 | ||||||
|  | -.     (struct bfd_symbol *) SYM, &SEC.symbol,				\
 | ||||||
|  | +.  {* symbol,                    symbol_ptr_ptr, pattern,            *}	\
 | ||||||
|  | +.     (struct bfd_symbol *) SYM, &SEC.symbol,    NULL,			\
 | ||||||
|  |  .									\ | ||||||
|  |  .  {* map_head, map_tail, already_assigned                           *}	\ | ||||||
|  |  .     { NULL }, { NULL }, NULL						\ | ||||||
|  | diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.35.1/gas/config/obj-elf.c
 | ||||||
|  | --- binutils.orig/gas/config/obj-elf.c	2021-01-04 13:18:09.942370375 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/config/obj-elf.c	2021-01-04 13:18:20.599301268 +0000
 | ||||||
|  | @@ -659,7 +659,9 @@ obj_elf_change_section (const char *name
 | ||||||
|  |  	    } | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | -      if (old_sec == NULL && ((attr & ~(SHF_MASKOS | SHF_MASKPROC))
 | ||||||
|  | +      if (old_sec == NULL && ((attr & ~(SHF_LINK_ORDER
 | ||||||
|  | +					| SHF_MASKOS
 | ||||||
|  | +					| SHF_MASKPROC))
 | ||||||
|  |  			      & ~ssect->attr) != 0) | ||||||
|  |  	{ | ||||||
|  |  	  /* As a GNU extension, we permit a .note section to be | ||||||
|  | diff -rup binutils.orig/ld/ldlang.c binutils-2.35.1/ld/ldlang.c
 | ||||||
|  | --- binutils.orig/ld/ldlang.c	2021-01-04 13:18:09.691372002 +0000
 | ||||||
|  | +++ binutils-2.35.1/ld/ldlang.c	2021-01-04 13:18:20.600301261 +0000
 | ||||||
|  | @@ -7421,7 +7421,7 @@ lang_reset_memory_regions (void)
 | ||||||
|  |   | ||||||
|  |  static void | ||||||
|  |  gc_section_callback (lang_wild_statement_type *ptr, | ||||||
|  | -		     struct wildcard_list *sec ATTRIBUTE_UNUSED,
 | ||||||
|  | +		     struct wildcard_list *sec,
 | ||||||
|  |  		     asection *section, | ||||||
|  |  		     struct flag_info *sflag_info ATTRIBUTE_UNUSED, | ||||||
|  |  		     lang_input_statement_type *file ATTRIBUTE_UNUSED, | ||||||
|  | @@ -7431,6 +7431,8 @@ gc_section_callback (lang_wild_statement
 | ||||||
|  |       should be as well.  */ | ||||||
|  |    if (ptr->keep_sections) | ||||||
|  |      section->flags |= SEC_KEEP; | ||||||
|  | +  if (sec)
 | ||||||
|  | +    section->pattern = sec->spec.name;
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* Iterate over sections marking them against GC.  */ | ||||||
							
								
								
									
										93
									
								
								SOURCES/binutils-aarch64-condbranch-relocs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								SOURCES/binutils-aarch64-condbranch-relocs.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,93 @@ | |||||||
|  | diff -rup binutils.orig/bfd/elfnn-aarch64.c binutils-2.35/bfd/elfnn-aarch64.c
 | ||||||
|  | --- binutils.orig/bfd/elfnn-aarch64.c	2020-09-10 17:03:31.738458044 +0100
 | ||||||
|  | +++ binutils-2.35/bfd/elfnn-aarch64.c	2020-09-10 17:04:03.643344898 +0100
 | ||||||
|  | @@ -5445,7 +5445,6 @@ elfNN_aarch64_final_link_relocate (reloc
 | ||||||
|  |    bfd_vma orig_value = value; | ||||||
|  |    bfd_boolean resolved_to_zero; | ||||||
|  |    bfd_boolean abs_symbol_p; | ||||||
|  | -  bfd_boolean via_plt_p;
 | ||||||
|  |   | ||||||
|  |    globals = elf_aarch64_hash_table (info); | ||||||
|  |   | ||||||
|  | @@ -5467,8 +5466,6 @@ elfNN_aarch64_final_link_relocate (reloc
 | ||||||
|  |  		  : bfd_is_und_section (sym_sec)); | ||||||
|  |    abs_symbol_p = h != NULL && bfd_is_abs_symbol (&h->root); | ||||||
|  |   | ||||||
|  | -  via_plt_p = (globals->root.splt != NULL && h != NULL
 | ||||||
|  | -	       && h->plt.offset != (bfd_vma) - 1);
 | ||||||
|  |   | ||||||
|  |    /* Since STT_GNU_IFUNC symbol must go through PLT, we handle | ||||||
|  |       it here if it is defined in a non-shared object.  */ | ||||||
|  | @@ -5805,23 +5802,12 @@ elfNN_aarch64_final_link_relocate (reloc
 | ||||||
|  |  	value += signed_addend; | ||||||
|  |        break; | ||||||
|  |   | ||||||
|  | -    case BFD_RELOC_AARCH64_BRANCH19:
 | ||||||
|  | -    case BFD_RELOC_AARCH64_TSTBR14:
 | ||||||
|  | -      /* A conditional branch to an undefined weak symbol is converted to a
 | ||||||
|  | -	 branch to itself.  */
 | ||||||
|  | -      if (weak_undef_p && !via_plt_p)
 | ||||||
|  | -	{
 | ||||||
|  | -	  value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
 | ||||||
|  | -						       place, value,
 | ||||||
|  | -						       signed_addend,
 | ||||||
|  | -						       weak_undef_p);
 | ||||||
|  | -	  break;
 | ||||||
|  | -	}
 | ||||||
|  | -      /* Fall through.  */
 | ||||||
|  |      case BFD_RELOC_AARCH64_CALL26: | ||||||
|  |      case BFD_RELOC_AARCH64_JUMP26: | ||||||
|  |        { | ||||||
|  |  	asection *splt = globals->root.splt; | ||||||
|  | +	bfd_boolean via_plt_p =
 | ||||||
|  | +	  splt != NULL && h != NULL && h->plt.offset != (bfd_vma) - 1;
 | ||||||
|  |   | ||||||
|  |  	/* A call to an undefined weak symbol is converted to a jump to | ||||||
|  |  	   the next instruction unless a PLT entry will be created. | ||||||
|  | @@ -5902,6 +5888,23 @@ elfNN_aarch64_final_link_relocate (reloc
 | ||||||
|  |  	  bfd_set_error (bfd_error_bad_value); | ||||||
|  |  	  return bfd_reloc_notsupported; | ||||||
|  |  	} | ||||||
|  | +      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
 | ||||||
|  | +						   place, value,
 | ||||||
|  | +						   signed_addend,
 | ||||||
|  | +						   weak_undef_p);
 | ||||||
|  | +      break;
 | ||||||
|  | +
 | ||||||
|  | +    case BFD_RELOC_AARCH64_BRANCH19:
 | ||||||
|  | +    case BFD_RELOC_AARCH64_TSTBR14:
 | ||||||
|  | +      if (h && h->root.type == bfd_link_hash_undefined)
 | ||||||
|  | +	{
 | ||||||
|  | +	  _bfd_error_handler
 | ||||||
|  | +	    /* xgettext:c-format */
 | ||||||
|  | +	    (_("%pB: conditional branch to undefined symbol `%s' "
 | ||||||
|  | +	       "not allowed"), input_bfd, h->root.root.string);
 | ||||||
|  | +	  bfd_set_error (bfd_error_bad_value);
 | ||||||
|  | +	  return bfd_reloc_notsupported;
 | ||||||
|  | +	}
 | ||||||
|  |        /* Fall through.  */ | ||||||
|  |   | ||||||
|  |      case BFD_RELOC_AARCH64_16: | ||||||
|  | @@ -7967,8 +7970,6 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
 | ||||||
|  |  	    break; | ||||||
|  |  	  } | ||||||
|  |   | ||||||
|  | -	case BFD_RELOC_AARCH64_BRANCH19:
 | ||||||
|  | -	case BFD_RELOC_AARCH64_TSTBR14:
 | ||||||
|  |  	case BFD_RELOC_AARCH64_CALL26: | ||||||
|  |  	case BFD_RELOC_AARCH64_JUMP26: | ||||||
|  |  	  /* If this is a local symbol then we resolve it | ||||||
|  | Only in binutils-2.35/bfd: elfnn-aarch64.c.orig | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-aarch64/emit-relocs-560.d binutils-2.35/ld/testsuite/ld-aarch64/emit-relocs-560.d
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-aarch64/emit-relocs-560.d	2020-09-10 17:03:31.067460424 +0100
 | ||||||
|  | +++ binutils-2.35/ld/testsuite/ld-aarch64/emit-relocs-560.d	2020-09-10 17:04:03.644344895 +0100
 | ||||||
|  | @@ -1,8 +1,3 @@
 | ||||||
|  |  #source: emit-relocs-560.s | ||||||
|  |  #ld: -shared | ||||||
|  | -#readelf: -r
 | ||||||
|  | -
 | ||||||
|  | -Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 2 entries:
 | ||||||
|  | -  Offset          Info           Type           Sym. Value    Sym. Name \+ Addend
 | ||||||
|  | -[0-9a-f]+  000100000402 R_AARCH64_JUMP_SL 0000000000000000 baz \+ 0
 | ||||||
|  | -[0-9a-f]+  000200000402 R_AARCH64_JUMP_SL 0000000000000000 bar \+ 0
 | ||||||
|  | +#error: .*: conditional branch to undefined symbol `bar' not allowed
 | ||||||
							
								
								
									
										1981
									
								
								SOURCES/binutils-add-sym-cache-to-elf-link-hash.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1981
									
								
								SOURCES/binutils-add-sym-cache-to-elf-link-hash.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										70
									
								
								SOURCES/binutils-attach-to-group.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								SOURCES/binutils-attach-to-group.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | |||||||
|  | diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.34/gas/config/obj-elf.c
 | ||||||
|  | --- binutils.orig/gas/config/obj-elf.c	2020-02-02 11:34:11.858321477 +0000
 | ||||||
|  | +++ binutils-2.34/gas/config/obj-elf.c	2020-02-02 11:34:30.099247619 +0000
 | ||||||
|  | @@ -78,9 +78,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}, | ||||||
|  | @@ -1003,6 +1005,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) | ||||||
|  |  { | ||||||
|  | Only in binutils-2.34/gas/config: obj-elf.c.orig | ||||||
|  | diff -rup binutils.orig/gas/doc/as.texi binutils-2.34/gas/doc/as.texi
 | ||||||
|  | --- binutils.orig/gas/doc/as.texi	2020-02-02 11:34:11.850321509 +0000
 | ||||||
|  | +++ binutils-2.34/gas/doc/as.texi	2020-02-02 11:35:11.359080560 +0000
 | ||||||
|  | @@ -4359,6 +4359,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}} | ||||||
|  | @@ -4656,6 +4657,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}]]]} | ||||||
|  |   | ||||||
|  | Only in binutils-2.34/gas/doc: as.texi.orig | ||||||
|  | Only in binutils-2.34/gas/doc: as.texi.rej | ||||||
							
								
								
									
										44
									
								
								SOURCES/binutils-config.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								SOURCES/binutils-config.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | |||||||
|  | diff -Nrup a/libiberty/aclocal.m4 b/libiberty/aclocal.m4
 | ||||||
|  | --- a/libiberty/aclocal.m4	2019-01-19 09:01:34.000000000 -0700
 | ||||||
|  | +++ b/libiberty/aclocal.m4	2020-01-09 22:00:27.183312982 -0700
 | ||||||
|  | @@ -147,7 +147,7 @@ if test $ac_cv_os_cray = yes; then
 | ||||||
|  |  fi | ||||||
|  |   | ||||||
|  |  AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, | ||||||
|  | -[AC_TRY_RUN([find_stack_direction ()
 | ||||||
|  | +[AC_TRY_RUN([__attribute__ ((noclone,noinline)) find_stack_direction ()
 | ||||||
|  |  { | ||||||
|  |    static char *addr = 0; | ||||||
|  |    auto char dummy; | ||||||
|  | diff --git a/config/intdiv0.m4 b/config/intdiv0.m4
 | ||||||
|  | index 55dddcf1..ba906efc 100644
 | ||||||
|  | --- a/config/intdiv0.m4
 | ||||||
|  | +++ b/config/intdiv0.m4
 | ||||||
|  | @@ -31,10 +31,10 @@ sigfpe_handler (sig) int sig;
 | ||||||
|  |    exit (sig != SIGFPE); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | -int x = 1;
 | ||||||
|  | -int y = 0;
 | ||||||
|  | -int z;
 | ||||||
|  | -int nan;
 | ||||||
|  | +volatile int x = 1;
 | ||||||
|  | +volatile int y = 0;
 | ||||||
|  | +volatile int z;
 | ||||||
|  | +volatile int nan;
 | ||||||
|  |   | ||||||
|  |  int main () | ||||||
|  |  { | ||||||
|  | diff --git a/libiberty/configure.ac b/libiberty/configure.ac
 | ||||||
|  | index f1ce7601..fc20d228 100644
 | ||||||
|  | --- a/libiberty/configure.ac
 | ||||||
|  | +++ b/libiberty/configure.ac
 | ||||||
|  | @@ -661,7 +661,7 @@ if test -z "${setobjs}"; then
 | ||||||
|  |    for v in $vars; do | ||||||
|  |      AC_MSG_CHECKING([for $v]) | ||||||
|  |      AC_CACHE_VAL(libiberty_cv_var_$v, | ||||||
|  | -      [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v []; p = $v;]])],
 | ||||||
|  | +      [AC_LINK_IFELSE([AC_LANG_PROGRAM([[__attribute__ ((used)) int *p;]],[[extern int $v []; p = $v;]])],
 | ||||||
|  |  		      [eval "libiberty_cv_var_$v=yes"], | ||||||
|  |  		      [eval "libiberty_cv_var_$v=no"])]) | ||||||
|  |      if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then | ||||||
							
								
								
									
										83
									
								
								SOURCES/binutils-do-not-link-with-static-libstdc++.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								SOURCES/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 | ||||||
|  |   | ||||||
							
								
								
									
										34
									
								
								SOURCES/binutils-duplicate-sections.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								SOURCES/binutils-duplicate-sections.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | diff -rup binutils.orig/ld/ldlang.c binutils-2.35.1/ld/ldlang.c
 | ||||||
|  | --- binutils.orig/ld/ldlang.c	2021-01-04 15:20:32.901498036 +0000
 | ||||||
|  | +++ binutils-2.35.1/ld/ldlang.c	2021-01-04 15:22:03.151916333 +0000
 | ||||||
|  | @@ -1529,6 +1529,8 @@ lang_output_section_statement_lookup (co
 | ||||||
|  |   | ||||||
|  |    entry->s.output_section_statement.name = name; | ||||||
|  |    entry->s.output_section_statement.constraint = constraint; | ||||||
|  | +  entry->s.output_section_statement.dup_output = (create == 2
 | ||||||
|  | +                                                 || constraint == SPECIAL);
 | ||||||
|  |    return &entry->s.output_section_statement; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -2390,7 +2392,7 @@ init_os (lang_output_section_statement_t
 | ||||||
|  |    if (strcmp (s->name, DISCARD_SECTION_NAME) == 0) | ||||||
|  |      einfo (_("%F%P: illegal use of `%s' section\n"), DISCARD_SECTION_NAME); | ||||||
|  |   | ||||||
|  | -  if (s->constraint != SPECIAL)
 | ||||||
|  | +  if (!s->dup_output)
 | ||||||
|  |      s->bfd_section = bfd_get_section_by_name (link_info.output_bfd, s->name); | ||||||
|  |    if (s->bfd_section == NULL) | ||||||
|  |      s->bfd_section = bfd_make_section_anyway_with_flags (link_info.output_bfd, | ||||||
|  | diff -rup binutils.orig/ld/ldlang.h binutils-2.35.1/ld/ldlang.h
 | ||||||
|  | --- binutils.orig/ld/ldlang.h	2021-01-04 15:20:32.627499830 +0000
 | ||||||
|  | +++ binutils-2.35.1/ld/ldlang.h	2021-01-04 15:21:06.688277003 +0000
 | ||||||
|  | @@ -173,6 +173,9 @@ typedef struct lang_output_section_state
 | ||||||
|  |    unsigned int after_end : 1; | ||||||
|  |    /* If this section uses the alignment of its input sections.  */ | ||||||
|  |    unsigned int align_lma_with_input : 1; | ||||||
|  | +  /* If script has duplicate output section statements of the same name
 | ||||||
|  | +     create duplicate output sections.  */
 | ||||||
|  | +  unsigned int dup_output : 1;
 | ||||||
|  |  } lang_output_section_statement_type; | ||||||
|  |   | ||||||
|  |  typedef struct | ||||||
							
								
								
									
										186
									
								
								SOURCES/binutils-dwarf-5-dir0.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										186
									
								
								SOURCES/binutils-dwarf-5-dir0.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,186 @@ | |||||||
|  | diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.35.2/gas/dwarf2dbg.c
 | ||||||
|  | --- binutils.orig/gas/dwarf2dbg.c	2021-08-09 17:50:48.324447191 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/dwarf2dbg.c	2021-08-09 17:51:03.308359865 +0100
 | ||||||
|  | @@ -616,7 +616,22 @@ get_directory_table_entry (const char *
 | ||||||
|  |    if (can_use_zero) | ||||||
|  |      { | ||||||
|  |        if (dirs == NULL || dirs[0] == NULL) | ||||||
|  | -	d = 0;
 | ||||||
|  | +	{
 | ||||||
|  | +	  const char * pwd = getpwd ();
 | ||||||
|  | +
 | ||||||
|  | +	  if (dwarf_level >= 5 && strcmp (dirname, pwd) != 0)
 | ||||||
|  | +	    {
 | ||||||
|  | +	      /* In DWARF-5 the 0 entry in the directory table is expected to be
 | ||||||
|  | +		 the same as the DW_AT_comp_dir (which is set to the current build
 | ||||||
|  | +		 directory).  Since we are about to create a directory entry that
 | ||||||
|  | +		 is not the same, allocate the current directory first.
 | ||||||
|  | +		 FIXME: Alternatively we could generate an error message here.  */
 | ||||||
|  | +	      (void) get_directory_table_entry (pwd, strlen (pwd), TRUE);
 | ||||||
|  | +	      d = 1;
 | ||||||
|  | +	    }
 | ||||||
|  | +	  else
 | ||||||
|  | +	    d = 0;
 | ||||||
|  | +	}
 | ||||||
|  |      } | ||||||
|  |    else if (d == 0) | ||||||
|  |      d = 1; | ||||||
|  | @@ -624,8 +639,8 @@ get_directory_table_entry (const char *
 | ||||||
|  |    if (d >= dirs_allocated) | ||||||
|  |      { | ||||||
|  |        unsigned int old = dirs_allocated; | ||||||
|  | -
 | ||||||
|  | -      dirs_allocated = d + 32;
 | ||||||
|  | +#define DIR_TABLE_INCREMENT 32
 | ||||||
|  | +      dirs_allocated = d + DIR_TABLE_INCREMENT;
 | ||||||
|  |        dirs = XRESIZEVEC (char *, dirs, dirs_allocated); | ||||||
|  |        memset (dirs + old, 0, (dirs_allocated - old) * sizeof (char *)); | ||||||
|  |      } | ||||||
|  | @@ -820,7 +835,7 @@ allocate_filename_to_slot (const char *
 | ||||||
|  |        dirlen = strlen (dirname); | ||||||
|  |        file = filename; | ||||||
|  |      } | ||||||
|  | -  
 | ||||||
|  | +
 | ||||||
|  |    d = get_directory_table_entry (dirname, dirlen, num == 0); | ||||||
|  |    i = num; | ||||||
|  |   | ||||||
|  | @@ -2062,7 +2077,12 @@ out_dir_and_file_list (segT line_seg, in
 | ||||||
|  |  	 Otherwise use pwd as main file directory.  */ | ||||||
|  |        if (dirs_in_use > 0 && dirs != NULL && dirs[0] != NULL) | ||||||
|  |  	dir = remap_debug_filename (dirs[0]); | ||||||
|  | -      else if (dirs_in_use > 1 && dirs != NULL && dirs[1] != NULL)
 | ||||||
|  | +      else if (dirs_in_use > 1
 | ||||||
|  | +	       && dirs != NULL
 | ||||||
|  | +	       && dirs[1] != NULL
 | ||||||
|  | +	       /* DWARF-5 directory tables expect dir[0] to be the same as
 | ||||||
|  | +		  DW_AT_comp_dir, which is the same as pwd.  */
 | ||||||
|  | +	       && dwarf_level < 5)
 | ||||||
|  |  	dir = remap_debug_filename (dirs[1]); | ||||||
|  |        else | ||||||
|  |  	dir = remap_debug_filename (getpwd ()); | ||||||
|  | @@ -2165,8 +2185,8 @@ out_dir_and_file_list (segT line_seg, in
 | ||||||
|  |  	     uses slot zero, but that is only set explicitly using a | ||||||
|  |  	     .file 0 directive.  If that isn't used, but file 1 is, | ||||||
|  |  	     then use that as main file name.  */ | ||||||
|  | -	  if (DWARF2_LINE_VERSION >= 5 && i == 0 && files_in_use >= 1)
 | ||||||
|  | -	      files[0].filename = files[1].filename;
 | ||||||
|  | +	  if (DWARF2_LINE_VERSION >= 5 && i == 0 && files_in_use >= 1 && files[0].filename == NULL)
 | ||||||
|  | +	    files[0].filename = files[1].filename;
 | ||||||
|  |  	  else | ||||||
|  |  	    files[i].filename = ""; | ||||||
|  |  	  if (DWARF2_LINE_VERSION < 5 || i != 0) | ||||||
|  | Only in binutils-2.35.2/gas/: dwarf2dbg.c.orig | ||||||
|  | Only in binutils-2.35.2/gas/: dwarf2dbg.c.rej | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/elf/dwarf-5-file0.d binutils-2.35.2/gas/testsuite/gas/elf/dwarf-5-file0.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/elf/dwarf-5-file0.d	2021-08-09 17:50:48.394446783 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/elf/dwarf-5-file0.d	2021-08-09 17:53:36.567466668 +0100
 | ||||||
|  | @@ -3,17 +3,18 @@
 | ||||||
|  |  #readelf: -wl | ||||||
|  |   | ||||||
|  |  #... | ||||||
|  | - The Directory Table \(offset 0x.*, lines 3, columns 1\):
 | ||||||
|  | + The Directory Table \(offset 0x.*, lines 4, columns 1\):
 | ||||||
|  |    Entry	Name | ||||||
|  | -  0	\(indirect line string, offset: 0x.*\): master directory
 | ||||||
|  | -  1	\(indirect line string, offset: 0x.*\): secondary directory
 | ||||||
|  | -  2	\(indirect line string, offset: 0x.*\): /tmp
 | ||||||
|  | +#...
 | ||||||
|  | +  1	\(indirect line string, offset: 0x.*\): master directory
 | ||||||
|  | +  2	\(indirect line string, offset: 0x.*\): secondary directory
 | ||||||
|  | +  3	\(indirect line string, offset: 0x.*\): /tmp
 | ||||||
|  |   | ||||||
|  |   The File Name Table \(offset 0x.*, lines 3, columns 3\): | ||||||
|  |    Entry	Dir	MD5				Name | ||||||
|  | -  0	0 0x00000000000000000000000000000000	\(indirect line string, offset: 0x.*\): master source file
 | ||||||
|  | -  1	1 0x00000000000000000000000000000000	\(indirect line string, offset: 0x.*\): secondary source file
 | ||||||
|  | -  2	2 0x95828e8bc4f7404dbf7526fb7bd0f192	\(indirect line string, offset: 0x.*\): foo.c
 | ||||||
|  | +  0	1 0x00000000000000000000000000000000	\(indirect line string, offset: 0x.*\): master source file
 | ||||||
|  | +  1	2 0x00000000000000000000000000000000	\(indirect line string, offset: 0x.*\): secondary source file
 | ||||||
|  | +  2	3 0x95828e8bc4f7404dbf7526fb7bd0f192	\(indirect line string, offset: 0x.*\): foo.c
 | ||||||
|  |  #pass | ||||||
|  |   | ||||||
|  |   | ||||||
|  | Only in binutils-2.35.2/gas/testsuite/gas/elf: dwarf-5-file0.d.orig | ||||||
|  | Only in binutils-2.35.2/gas/testsuite/gas/elf: dwarf-5-file0.d.rej | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/elf/elf.exp binutils-2.35.2/gas/testsuite/gas/elf/elf.exp
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/elf/elf.exp	2021-08-09 17:50:48.395446778 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/elf/elf.exp	2021-08-09 17:51:03.308359865 +0100
 | ||||||
|  | @@ -274,6 +274,7 @@ if { [is_elf_format] } then {
 | ||||||
|  |      run_dump_test "dwarf2-18" $dump_opts | ||||||
|  |      run_dump_test "dwarf2-19" $dump_opts | ||||||
|  |      run_dump_test "dwarf-5-file0" $dump_opts | ||||||
|  | +    run_dump_test "dwarf-5-dir0" $dump_opts
 | ||||||
|  |      run_dump_test "dwarf-4-cu" $dump_opts | ||||||
|  |      run_dump_test "dwarf-5-cu" $dump_opts | ||||||
|  |      run_dump_test "dwarf-5-nop-for-line-table" $dump_opts | ||||||
|  | Only in binutils-2.35.2/gas/testsuite/gas/elf: elf.exp.orig | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/i386/dwarf5-line-1.d binutils-2.35.2/gas/testsuite/gas/i386/dwarf5-line-1.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/i386/dwarf5-line-1.d	2021-08-09 17:50:48.363446964 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/i386/dwarf5-line-1.d	2021-08-09 17:51:03.308359865 +0100
 | ||||||
|  | @@ -33,7 +33,7 @@ Raw dump of debug contents of section \.
 | ||||||
|  |   | ||||||
|  |   The Directory Table \(offset 0x.*, lines 2, columns 1\): | ||||||
|  |    Entry	Name | ||||||
|  | -  0	\(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386
 | ||||||
|  | +  0	\(indirect line string, offset: 0x.*\): .*/gas/testsuite
 | ||||||
|  |    1	\(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386 | ||||||
|  |   | ||||||
|  |   The File Name Table \(offset 0x.*, lines 2, columns 3\): | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/i386/dwarf5-line-2.d binutils-2.35.2/gas/testsuite/gas/i386/dwarf5-line-2.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/i386/dwarf5-line-2.d	2021-08-09 17:50:48.365446953 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/i386/dwarf5-line-2.d	2021-08-09 17:51:03.308359865 +0100
 | ||||||
|  | @@ -33,7 +33,7 @@ Raw dump of debug contents of section \.
 | ||||||
|  |   | ||||||
|  |   The Directory Table \(offset 0x.*, lines 2, columns 1\): | ||||||
|  |    Entry	Name | ||||||
|  | -  0	\(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386
 | ||||||
|  | +  0	\(indirect line string, offset: 0x.*\): .*/gas/testsuite
 | ||||||
|  |    1	\(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386 | ||||||
|  |   | ||||||
|  |   The File Name Table \(offset 0x.*, lines 1, columns 3\): | ||||||
|  | --- /dev/null	2021-08-09 07:51:33.817495606 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/elf/dwarf-5-dir0.s	2021-08-09 17:55:06.745941103 +0100
 | ||||||
|  | @@ -0,0 +1,19 @@
 | ||||||
|  | +	.section	.debug_info,"",%progbits
 | ||||||
|  | +	.4byte	0x8a
 | ||||||
|  | +	.2byte  0x2
 | ||||||
|  | +	.4byte	.Ldebug_abbrev0
 | ||||||
|  | +	.byte	0x4
 | ||||||
|  | +	.uleb128 0x1
 | ||||||
|  | +
 | ||||||
|  | +	.file 0 "../not-the-build-directory/master-source-file.c"
 | ||||||
|  | +	.line 1
 | ||||||
|  | +	.text
 | ||||||
|  | +	.octa 0x12345678901234567890123456789012
 | ||||||
|  | +
 | ||||||
|  | +	.file 1 "secondary directory/secondary source file"
 | ||||||
|  | +	.line 2
 | ||||||
|  | +	.word 2
 | ||||||
|  | +
 | ||||||
|  | +	.file 2 "/tmp" "foo.c" md5 0x95828e8bc4f7404dbf7526fb7bd0f192
 | ||||||
|  | +	.line 5
 | ||||||
|  | +	.word 6
 | ||||||
|  | --- /dev/null	2021-08-09 07:51:33.817495606 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/elf/dwarf-5-dir0.d	2021-08-09 17:55:06.745941103 +0100
 | ||||||
|  | @@ -0,0 +1,20 @@
 | ||||||
|  | +#as: --gdwarf-5
 | ||||||
|  | +#name: DWARF5 dir[0]
 | ||||||
|  | +#readelf: -wl
 | ||||||
|  | +
 | ||||||
|  | +#...
 | ||||||
|  | + The Directory Table \(offset 0x.*, lines 4, columns 1\):
 | ||||||
|  | +  Entry	Name
 | ||||||
|  | +  0	\(indirect line string, offset: 0x0\): .*/gas/testsuite
 | ||||||
|  | +  1	\(indirect line string, offset: 0x.*\): ../not-the-build-directory
 | ||||||
|  | +  2	\(indirect line string, offset: 0x.*\): secondary directory
 | ||||||
|  | +  3	\(indirect line string, offset: 0x.*\): /tmp
 | ||||||
|  | +
 | ||||||
|  | + The File Name Table \(offset 0x.*, lines 3, columns 3\):
 | ||||||
|  | +  Entry	Dir	MD5				Name
 | ||||||
|  | +  0	1 0x0+	\(indirect line string, offset: 0x.*\): master-source-file.c
 | ||||||
|  | +  1	2 0x0+	\(indirect line string, offset: 0x.*\): secondary source file
 | ||||||
|  | +  2	3 0x95828e8bc4f7404dbf7526fb7bd0f192	\(indirect line string, offset: 0x.*\): foo.c
 | ||||||
|  | +#pass
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
							
								
								
									
										36
									
								
								SOURCES/binutils-elf-add-objects.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								SOURCES/binutils-elf-add-objects.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | --- binutils.orig/bfd/elflink.c	2020-07-31 10:45:48.747912761 +0100
 | ||||||
|  | +++ binutils-2.35/bfd/elflink.c	2020-07-31 10:47:26.336262770 +0100
 | ||||||
|  | @@ -505,6 +505,16 @@ bfd_elf_link_record_dynamic_symbol (stru
 | ||||||
|  |        const char *name; | ||||||
|  |        size_t indx; | ||||||
|  |   | ||||||
|  | +      if (h->root.type == bfd_link_hash_defined
 | ||||||
|  | +	  || h->root.type == bfd_link_hash_defweak)
 | ||||||
|  | +	{
 | ||||||
|  | +	  /* An IR symbol should not be made dynamic.  */
 | ||||||
|  | +	  if (h->root.u.def.section != NULL
 | ||||||
|  | +	      && h->root.u.def.section->owner != NULL
 | ||||||
|  | +	      && (h->root.u.def.section->owner->flags & BFD_PLUGIN) != 0)
 | ||||||
|  | +	    return TRUE;
 | ||||||
|  | +	}
 | ||||||
|  | +
 | ||||||
|  |        /* XXX: The ABI draft says the linker must turn hidden and | ||||||
|  |  	 internal symbols into STB_LOCAL symbols when producing the | ||||||
|  |  	 DSO. However, if ld.so honors st_other in the dynamic table, | ||||||
|  | @@ -5199,15 +5209,11 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  		break; | ||||||
|  |  	      } | ||||||
|  |   | ||||||
|  | -	  /* Don't add DT_NEEDED for references from the dummy bfd nor
 | ||||||
|  | -	     for unmatched symbol.  */
 | ||||||
|  |  	  if (!add_needed | ||||||
|  |  	      && matched | ||||||
|  |  	      && definition | ||||||
|  |  	      && ((dynsym | ||||||
|  | -		   && h->ref_regular_nonweak
 | ||||||
|  | -		   && (old_bfd == NULL
 | ||||||
|  | -		       || (old_bfd->flags & BFD_PLUGIN) == 0))
 | ||||||
|  | +		   && h->ref_regular_nonweak)
 | ||||||
|  |  		  || (h->ref_dynamic_nonweak | ||||||
|  |  		      && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0 | ||||||
|  |  		      && !on_needed_list (elf_dt_name (abfd), | ||||||
							
								
								
									
										33
									
								
								SOURCES/binutils-export-demangle.h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								SOURCES/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 \ | ||||||
|  | -		     bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h
 | ||||||
|  | +		     bfd_stdint.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 bfd_stdint.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@	bfd_stdint.h $(INCDIR)/diagnostics.h \
 | ||||||
|  | +@INSTALL_LIBBFD_TRUE@	bfd_stdint.h $(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 | ||||||
							
								
								
									
										657
									
								
								SOURCES/binutils-extend-s390-arch14-support.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										657
									
								
								SOURCES/binutils-extend-s390-arch14-support.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,657 @@ | |||||||
|  | Only in binutils-2.35.1/gas: ChangeLog.orig | ||||||
|  | Only in binutils-2.35.1/gas: ChangeLog.rej | ||||||
|  | Only in binutils-2.35.1/gas/config: tc-s390.c.rej | ||||||
|  | diff -rup binutils.orig/gas/doc/c-s390.texi binutils-2.35.1/gas/doc/c-s390.texi
 | ||||||
|  | --- binutils.orig/gas/doc/c-s390.texi	2021-03-25 14:35:40.951633346 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/doc/c-s390.texi	2021-03-25 14:39:39.910468584 +0000
 | ||||||
|  | @@ -313,7 +313,7 @@ field. The notation changes as follows:
 | ||||||
|  |  @cindex instruction formats, s390 | ||||||
|  |  @cindex s390 instruction formats | ||||||
|  |   | ||||||
|  | -The Principles of Operation manuals lists 26 instruction formats where
 | ||||||
|  | +The Principles of Operation manuals lists 35 instruction formats where
 | ||||||
|  |  some of the formats have multiple variants. For the @samp{.insn} | ||||||
|  |  pseudo directive the assembler recognizes some of the formats. | ||||||
|  |  Typically, the most general variant of the instruction format is used | ||||||
|  | @@ -545,6 +545,54 @@ with the @samp{.insn} pseudo directive:
 | ||||||
|  |  0        8    12   16   20            32   36           47 | ||||||
|  |  @end verbatim | ||||||
|  |   | ||||||
|  | +@item VRV format: <insn> V1,D2(V2,B2),M3
 | ||||||
|  | +@verbatim
 | ||||||
|  | ++--------+----+----+----+-------------+----+------------+
 | ||||||
|  | +| OpCode | V1 | V2 | B2 |     D2      | M3 |   Opcode   |
 | ||||||
|  | ++--------+----+----+----+-------------+----+------------+
 | ||||||
|  | +0        8    12   16   20            32   36           47
 | ||||||
|  | +@end verbatim
 | ||||||
|  | +
 | ||||||
|  | +@item VRI format: <insn> V1,V2,I3,M4,M5
 | ||||||
|  | +@verbatim
 | ||||||
|  | ++--------+----+----+-------------+----+----+------------+
 | ||||||
|  | +| OpCode | V1 | V2 |     I3      | M5 | M4 |   Opcode   |
 | ||||||
|  | ++--------+----+----+-------------+----+----+------------+
 | ||||||
|  | +0        8    12   16            28   32   36           47
 | ||||||
|  | +@end verbatim
 | ||||||
|  | +
 | ||||||
|  | +@item VRX format: <insn> V1,D2(R2,B2),M3
 | ||||||
|  | +@verbatim
 | ||||||
|  | ++--------+----+----+----+-------------+----+------------+
 | ||||||
|  | +| OpCode | V1 | R2 | B2 |     D2      | M3 |   Opcode   |
 | ||||||
|  | ++--------+----+----+----+-------------+----+------------+
 | ||||||
|  | +0        8    12   16   20            32   36           47
 | ||||||
|  | +@end verbatim
 | ||||||
|  | +
 | ||||||
|  | +@item VRS format: <insn> R1,V3,D2(B2),M4
 | ||||||
|  | +@verbatim
 | ||||||
|  | ++--------+----+----+----+-------------+----+------------+
 | ||||||
|  | +| OpCode | R1 | V3 | B2 |     D2      | M4 |   Opcode   |
 | ||||||
|  | ++--------+----+----+----+-------------+----+------------+
 | ||||||
|  | +0        8    12   16   20            32   36           47
 | ||||||
|  | +@end verbatim
 | ||||||
|  | +
 | ||||||
|  | +@item VRR format: <insn> V1,V2,V3,M4,M5,M6
 | ||||||
|  | +@verbatim
 | ||||||
|  | ++--------+----+----+----+---+----+----+----+------------+
 | ||||||
|  | +| OpCode | V1 | V2 | V3 |///| M6 | M5 | M4 |   Opcode   |
 | ||||||
|  | ++--------+----+----+----+---+----+----+----+------------+
 | ||||||
|  | +0        8    12   16       24   28   32   36           47
 | ||||||
|  | +@end verbatim
 | ||||||
|  | +
 | ||||||
|  | +@item VSI format: <insn> V1,D2(B2),I3
 | ||||||
|  | +@verbatim
 | ||||||
|  | ++--------+---------+----+-------------+----+------------+
 | ||||||
|  | +| OpCode |   I3    | B2 |     D2      | V1 |   Opcode   |
 | ||||||
|  | ++--------+---------+----+-------------+----+------------+
 | ||||||
|  | +0        8         16   20            32   36           47
 | ||||||
|  | +@end verbatim
 | ||||||
|  | +
 | ||||||
|  |  @end table | ||||||
|  |   | ||||||
|  |  For the complete list of all instruction format variants see the | ||||||
|  | Only in binutils-2.35.1/gas/doc: c-s390.texi.orig | ||||||
|  | Only in binutils-2.35.1/gas/doc: c-s390.texi.rej | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/esa-g5.d binutils-2.35.1/gas/testsuite/gas/s390/esa-g5.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/esa-g5.d	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/esa-g5.d	2021-03-25 14:39:56.533387550 +0000
 | ||||||
|  | @@ -78,10 +78,14 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	07 29 [	 ]*bhr	%r9 | ||||||
|  |  .*:	07 f9 [	 ]*br	%r9 | ||||||
|  |  .*:	a7 95 00 00 [	 ]*bras	%r9,e2 <foo\+0xe2> | ||||||
|  | -.*:	a7 64 00 00 [	 ]*jlh	e6 <foo\+0xe6>
 | ||||||
|  | -.*:	a7 66 00 00 [	 ]*brct	%r6,ea <foo\+0xea>
 | ||||||
|  | -.*:	84 69 00 00 [	 ]*brxh	%r6,%r9,ee <foo\+0xee>
 | ||||||
|  | -.*:	85 69 00 00 [	 ]*brxle	%r6,%r9,f2 <foo\+0xf2>
 | ||||||
|  | +.*:	a7 65 00 00 [	 ]*bras	%r6,e6 <foo\+0xe6>
 | ||||||
|  | +.*:	a7 64 00 00 [	 ]*jlh	ea <foo\+0xea>
 | ||||||
|  | +.*:	a7 66 00 00 [	 ]*brct	%r6,ee <foo\+0xee>
 | ||||||
|  | +.*:	a7 66 00 00 [	 ]*brct	%r6,f2 <foo\+0xf2>
 | ||||||
|  | +.*:	84 69 00 00 [	 ]*brxh	%r6,%r9,f6 <foo\+0xf6>
 | ||||||
|  | +.*:	84 69 00 00 [	 ]*brxh	%r6,%r9,fa <foo\+0xfa>
 | ||||||
|  | +.*:	85 69 00 00 [	 ]*brxle	%r6,%r9,fe <foo\+0xfe>
 | ||||||
|  | +.*:	85 69 00 00 [	 ]*brxle	%r6,%r9,102 <foo\+0x102>
 | ||||||
|  |  .*:	b2 5a 00 69 [	 ]*bsa	%r6,%r9 | ||||||
|  |  .*:	b2 58 00 69 [	 ]*bsg	%r6,%r9 | ||||||
|  |  .*:	0b 69 [	 ]*bsm	%r6,%r9 | ||||||
|  | @@ -180,27 +184,49 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	b2 21 00 69 [	 ]*ipte	%r6,%r9 | ||||||
|  |  .*:	b2 29 00 69 [	 ]*iske	%r6,%r9 | ||||||
|  |  .*:	b2 23 00 69 [	 ]*ivsk	%r6,%r9 | ||||||
|  | -.*:	a7 f4 00 00 [	 ]*j	278 <foo\+0x278>
 | ||||||
|  | -.*:	a7 84 00 00 [	 ]*je	27c <foo\+0x27c>
 | ||||||
|  | -.*:	a7 24 00 00 [	 ]*jh	280 <foo\+0x280>
 | ||||||
|  | -.*:	a7 a4 00 00 [	 ]*jhe	284 <foo\+0x284>
 | ||||||
|  | -.*:	a7 44 00 00 [	 ]*jl	288 <foo\+0x288>
 | ||||||
|  | -.*:	a7 c4 00 00 [	 ]*jle	28c <foo\+0x28c>
 | ||||||
|  | -.*:	a7 64 00 00 [	 ]*jlh	290 <foo\+0x290>
 | ||||||
|  | -.*:	a7 44 00 00 [	 ]*jl	294 <foo\+0x294>
 | ||||||
|  | -.*:	a7 74 00 00 [	 ]*jne	298 <foo\+0x298>
 | ||||||
|  | -.*:	a7 d4 00 00 [	 ]*jnh	29c <foo\+0x29c>
 | ||||||
|  | -.*:	a7 54 00 00 [	 ]*jnhe	2a0 <foo\+0x2a0>
 | ||||||
|  | -.*:	a7 b4 00 00 [	 ]*jnl	2a4 <foo\+0x2a4>
 | ||||||
|  | -.*:	a7 34 00 00 [	 ]*jnle	2a8 <foo\+0x2a8>
 | ||||||
|  | -.*:	a7 94 00 00 [	 ]*jnlh	2ac <foo\+0x2ac>
 | ||||||
|  | -.*:	a7 b4 00 00 [	 ]*jnl	2b0 <foo\+0x2b0>
 | ||||||
|  | -.*:	a7 e4 00 00 [	 ]*jno	2b4 <foo\+0x2b4>
 | ||||||
|  | -.*:	a7 d4 00 00 [	 ]*jnh	2b8 <foo\+0x2b8>
 | ||||||
|  | -.*:	a7 74 00 00 [	 ]*jne	2bc <foo\+0x2bc>
 | ||||||
|  | -.*:	a7 14 00 00 [	 ]*jo	2c0 <foo\+0x2c0>
 | ||||||
|  | -.*:	a7 24 00 00 [	 ]*jh	2c4 <foo\+0x2c4>
 | ||||||
|  | -.*:	a7 84 00 00 [	 ]*je	2c8 <foo\+0x2c8>
 | ||||||
|  | +.*:	a7 f4 00 00 [	 ]*j	288 <foo\+0x288>
 | ||||||
|  | +.*:	a7 84 00 00 [	 ]*je	28c <foo\+0x28c>
 | ||||||
|  | +.*:	a7 24 00 00 [	 ]*jh	290 <foo\+0x290>
 | ||||||
|  | +.*:	a7 a4 00 00 [	 ]*jhe	294 <foo\+0x294>
 | ||||||
|  | +.*:	a7 44 00 00 [	 ]*jl	298 <foo\+0x298>
 | ||||||
|  | +.*:	a7 c4 00 00 [	 ]*jle	29c <foo\+0x29c>
 | ||||||
|  | +.*:	a7 64 00 00 [	 ]*jlh	2a0 <foo\+0x2a0>
 | ||||||
|  | +.*:	a7 44 00 00 [	 ]*jl	2a4 <foo\+0x2a4>
 | ||||||
|  | +.*:	a7 74 00 00 [	 ]*jne	2a8 <foo\+0x2a8>
 | ||||||
|  | +.*:	a7 d4 00 00 [	 ]*jnh	2ac <foo\+0x2ac>
 | ||||||
|  | +.*:	a7 54 00 00 [	 ]*jnhe	2b0 <foo\+0x2b0>
 | ||||||
|  | +.*:	a7 b4 00 00 [	 ]*jnl	2b4 <foo\+0x2b4>
 | ||||||
|  | +.*:	a7 34 00 00 [	 ]*jnle	2b8 <foo\+0x2b8>
 | ||||||
|  | +.*:	a7 94 00 00 [	 ]*jnlh	2bc <foo\+0x2bc>
 | ||||||
|  | +.*:	a7 b4 00 00 [	 ]*jnl	2c0 <foo\+0x2c0>
 | ||||||
|  | +.*:	a7 e4 00 00 [	 ]*jno	2c4 <foo\+0x2c4>
 | ||||||
|  | +.*:	a7 d4 00 00 [	 ]*jnh	2c8 <foo\+0x2c8>
 | ||||||
|  | +.*:	a7 74 00 00 [	 ]*jne	2cc <foo\+0x2cc>
 | ||||||
|  | +.*:	a7 14 00 00 [	 ]*jo	2d0 <foo\+0x2d0>
 | ||||||
|  | +.*:	a7 24 00 00 [	 ]*jh	2d4 <foo\+0x2d4>
 | ||||||
|  | +.*:	a7 84 00 00 [	 ]*je	2d8 <foo\+0x2d8>
 | ||||||
|  | +.*:	a7 04 00 00 [	 ]*jnop	2dc <foo\+0x2dc>
 | ||||||
|  | +.*:	a7 14 00 00 [	 ]*jo	2e0 <foo\+0x2e0>
 | ||||||
|  | +.*:	a7 24 00 00 [	 ]*jh	2e4 <foo\+0x2e4>
 | ||||||
|  | +.*:	a7 24 00 00 [	 ]*jh	2e8 <foo\+0x2e8>
 | ||||||
|  | +.*:	a7 34 00 00 [	 ]*jnle	2ec <foo\+0x2ec>
 | ||||||
|  | +.*:	a7 44 00 00 [	 ]*jl	2f0 <foo\+0x2f0>
 | ||||||
|  | +.*:	a7 44 00 00 [	 ]*jl	2f4 <foo\+0x2f4>
 | ||||||
|  | +.*:	a7 54 00 00 [	 ]*jnhe	2f8 <foo\+0x2f8>
 | ||||||
|  | +.*:	a7 64 00 00 [	 ]*jlh	2fc <foo\+0x2fc>
 | ||||||
|  | +.*:	a7 74 00 00 [	 ]*jne	300 <foo\+0x300>
 | ||||||
|  | +.*:	a7 74 00 00 [	 ]*jne	304 <foo\+0x304>
 | ||||||
|  | +.*:	a7 84 00 00 [	 ]*je	308 <foo\+0x308>
 | ||||||
|  | +.*:	a7 84 00 00 [	 ]*je	30c <foo\+0x30c>
 | ||||||
|  | +.*:	a7 94 00 00 [	 ]*jnlh	310 <foo\+0x310>
 | ||||||
|  | +.*:	a7 a4 00 00 [	 ]*jhe	314 <foo\+0x314>
 | ||||||
|  | +.*:	a7 b4 00 00 [	 ]*jnl	318 <foo\+0x318>
 | ||||||
|  | +.*:	a7 b4 00 00 [	 ]*jnl	31c <foo\+0x31c>
 | ||||||
|  | +.*:	a7 c4 00 00 [	 ]*jle	320 <foo\+0x320>
 | ||||||
|  | +.*:	a7 d4 00 00 [	 ]*jnh	324 <foo\+0x324>
 | ||||||
|  | +.*:	a7 d4 00 00 [	 ]*jnh	328 <foo\+0x328>
 | ||||||
|  | +.*:	a7 e4 00 00 [	 ]*jno	32c <foo\+0x32c>
 | ||||||
|  | +.*:	a7 f4 00 00 [	 ]*j	330 <foo\+0x330>
 | ||||||
|  |  .*:	ed 65 af ff 00 18 [	 ]*kdb	%f6,4095\(%r5,%r10\) | ||||||
|  |  .*:	b3 18 00 69 [	 ]*kdbr	%f6,%f9 | ||||||
|  |  .*:	ed 65 af ff 00 08 [	 ]*keb	%f6,4095\(%r5,%r10\) | ||||||
|  | @@ -483,4 +509,4 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	f8 58 5f ff af ff [	 ]*zap	4095\(6,%r5\),4095\(9,%r10\) | ||||||
|  |  .*:	b2 21 b0 69 [	 ]*ipte	%r6,%r9,%r11 | ||||||
|  |  .*:	b2 21 bd 69 [	 ]*ipte	%r6,%r9,%r11,13 | ||||||
|  | -.*:	07 07 [ 	]*nopr	%r7
 | ||||||
|  | +.*:	07 07 [	 ]*nopr	%r7
 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/esa-g5.s binutils-2.35.1/gas/testsuite/gas/s390/esa-g5.s
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/esa-g5.s	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/esa-g5.s	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -72,10 +72,14 @@ foo:
 | ||||||
|  |  	bpr	%r9 | ||||||
|  |  	br	%r9 | ||||||
|  |  	bras	%r9,. | ||||||
|  | +	jas	%r6,.
 | ||||||
|  |  	brc	6,. | ||||||
|  |  	brct	6,. | ||||||
|  | +	jct	%r6,.
 | ||||||
|  |  	brxh	%r6,%r9,. | ||||||
|  | +	jxh	%r6,%r9,.
 | ||||||
|  |  	brxle	%r6,%r9,. | ||||||
|  | +	jxle	%r6,%r9,.
 | ||||||
|  |  	bsa	%r6,%r9 | ||||||
|  |  	bsg	%r6,%r9 | ||||||
|  |  	bsm	%r6,%r9 | ||||||
|  | @@ -195,6 +199,28 @@ foo:
 | ||||||
|  |  	jo	. | ||||||
|  |  	jp	. | ||||||
|  |  	jz	. | ||||||
|  | +	jnop	.
 | ||||||
|  | +	bro	.
 | ||||||
|  | +	brh	.
 | ||||||
|  | +	brp	.
 | ||||||
|  | +	brnle	.
 | ||||||
|  | +	brl	.
 | ||||||
|  | +	brm	.
 | ||||||
|  | +	brnhe	.
 | ||||||
|  | +	brlh	.
 | ||||||
|  | +	brne	.
 | ||||||
|  | +	brnz	.
 | ||||||
|  | +	bre	.
 | ||||||
|  | +	brz	.
 | ||||||
|  | +	brnlh	.
 | ||||||
|  | +	brhe	.
 | ||||||
|  | +	brnl	.
 | ||||||
|  | +	brnm	.
 | ||||||
|  | +	brle	.
 | ||||||
|  | +	brnh	.
 | ||||||
|  | +	brnp	.
 | ||||||
|  | +	brno	.
 | ||||||
|  | +	bru	.
 | ||||||
|  |  	kdb	%f6,4095(%r5,%r10) | ||||||
|  |  	kdbr	%f6,%f9 | ||||||
|  |  	keb	%f6,4095(%r5,%r10) | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/esa-z900.d binutils-2.35.1/gas/testsuite/gas/s390/esa-z900.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/esa-z900.d	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/esa-z900.d	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -6,29 +6,52 @@
 | ||||||
|  |  Disassembly of section .text: | ||||||
|  |   | ||||||
|  |  .* <foo>: | ||||||
|  | -.*:	c0 f4 00 00 00 00 [	 ]*jg	0 \<foo\>
 | ||||||
|  | -.*:	c0 14 00 00 00 00 [	 ]*jgo	6 \<foo\+0x6>
 | ||||||
|  | -.*:	c0 24 00 00 00 00 [	 ]*jgh	c \<foo\+0xc>
 | ||||||
|  | -.*:	c0 24 00 00 00 00 [	 ]*jgh	12 \<foo\+0x12>
 | ||||||
|  | -.*:	c0 34 00 00 00 00 [	 ]*jgnle	18 \<foo\+0x18>
 | ||||||
|  | -.*:	c0 44 00 00 00 00 [	 ]*jgl	1e \<foo\+0x1e>
 | ||||||
|  | -.*:	c0 44 00 00 00 00 [	 ]*jgl	24 \<foo\+0x24>
 | ||||||
|  | -.*:	c0 54 00 00 00 00 [	 ]*jgnhe	2a \<foo\+0x2a>
 | ||||||
|  | -.*:	c0 64 00 00 00 00 [	 ]*jglh	30 \<foo\+0x30>
 | ||||||
|  | -.*:	c0 74 00 00 00 00 [	 ]*jgne	36 \<foo\+0x36>
 | ||||||
|  | -.*:	c0 74 00 00 00 00 [	 ]*jgne	3c \<foo\+0x3c>
 | ||||||
|  | -.*:	c0 84 00 00 00 00 [	 ]*jge	42 \<foo\+0x42>
 | ||||||
|  | -.*:	c0 84 00 00 00 00 [	 ]*jge	48 \<foo\+0x48>
 | ||||||
|  | -.*:	c0 94 00 00 00 00 [	 ]*jgnlh	4e \<foo\+0x4e>
 | ||||||
|  | -.*:	c0 a4 00 00 00 00 [	 ]*jghe	54 \<foo\+0x54>
 | ||||||
|  | -.*:	c0 b4 00 00 00 00 [	 ]*jgnl	5a \<foo\+0x5a>
 | ||||||
|  | -.*:	c0 b4 00 00 00 00 [	 ]*jgnl	60 \<foo\+0x60>
 | ||||||
|  | -.*:	c0 c4 00 00 00 00 [	 ]*jgle	66 \<foo\+0x66>
 | ||||||
|  | -.*:	c0 d4 00 00 00 00 [	 ]*jgnh	6c \<foo\+0x6c>
 | ||||||
|  | -.*:	c0 d4 00 00 00 00 [	 ]*jgnh	72 \<foo\+0x72>
 | ||||||
|  | -.*:	c0 e4 00 00 00 00 [	 ]*jgno	78 \<foo\+0x78>
 | ||||||
|  | -.*:	c0 f4 00 00 00 00 [	 ]*jg	7e \<foo\+0x7e>
 | ||||||
|  | -.*:	c0 65 00 00 00 00 [	 ]*brasl	%r6,84 \<foo\+0x84>
 | ||||||
|  | +.*:	c0 f4 00 00 00 00 [	 ]*jg	0 <foo>
 | ||||||
|  | +.*:	c0 04 00 00 00 00 [	 ]*jgnop	6 <foo\+0x6>
 | ||||||
|  | +.*:	c0 14 00 00 00 00 [	 ]*jgo	c <foo\+0xc>
 | ||||||
|  | +.*:	c0 24 00 00 00 00 [	 ]*jgh	12 <foo\+0x12>
 | ||||||
|  | +.*:	c0 24 00 00 00 00 [	 ]*jgh	18 <foo\+0x18>
 | ||||||
|  | +.*:	c0 34 00 00 00 00 [	 ]*jgnle	1e <foo\+0x1e>
 | ||||||
|  | +.*:	c0 44 00 00 00 00 [	 ]*jgl	24 <foo\+0x24>
 | ||||||
|  | +.*:	c0 44 00 00 00 00 [	 ]*jgl	2a <foo\+0x2a>
 | ||||||
|  | +.*:	c0 54 00 00 00 00 [	 ]*jgnhe	30 <foo\+0x30>
 | ||||||
|  | +.*:	c0 64 00 00 00 00 [	 ]*jglh	36 <foo\+0x36>
 | ||||||
|  | +.*:	c0 74 00 00 00 00 [	 ]*jgne	3c <foo\+0x3c>
 | ||||||
|  | +.*:	c0 74 00 00 00 00 [	 ]*jgne	42 <foo\+0x42>
 | ||||||
|  | +.*:	c0 84 00 00 00 00 [	 ]*jge	48 <foo\+0x48>
 | ||||||
|  | +.*:	c0 84 00 00 00 00 [	 ]*jge	4e <foo\+0x4e>
 | ||||||
|  | +.*:	c0 94 00 00 00 00 [	 ]*jgnlh	54 <foo\+0x54>
 | ||||||
|  | +.*:	c0 a4 00 00 00 00 [	 ]*jghe	5a <foo\+0x5a>
 | ||||||
|  | +.*:	c0 b4 00 00 00 00 [	 ]*jgnl	60 <foo\+0x60>
 | ||||||
|  | +.*:	c0 b4 00 00 00 00 [	 ]*jgnl	66 <foo\+0x66>
 | ||||||
|  | +.*:	c0 c4 00 00 00 00 [	 ]*jgle	6c <foo\+0x6c>
 | ||||||
|  | +.*:	c0 d4 00 00 00 00 [	 ]*jgnh	72 <foo\+0x72>
 | ||||||
|  | +.*:	c0 d4 00 00 00 00 [	 ]*jgnh	78 <foo\+0x78>
 | ||||||
|  | +.*:	c0 e4 00 00 00 00 [	 ]*jgno	7e <foo\+0x7e>
 | ||||||
|  | +.*:	c0 f4 00 00 00 00 [	 ]*jg	84 <foo\+0x84>
 | ||||||
|  | +.*:	c0 14 00 00 00 00 [	 ]*jgo	8a <foo\+0x8a>
 | ||||||
|  | +.*:	c0 24 00 00 00 00 [	 ]*jgh	90 <foo\+0x90>
 | ||||||
|  | +.*:	c0 24 00 00 00 00 [	 ]*jgh	96 <foo\+0x96>
 | ||||||
|  | +.*:	c0 34 00 00 00 00 [	 ]*jgnle	9c <foo\+0x9c>
 | ||||||
|  | +.*:	c0 44 00 00 00 00 [	 ]*jgl	a2 <foo\+0xa2>
 | ||||||
|  | +.*:	c0 44 00 00 00 00 [	 ]*jgl	a8 <foo\+0xa8>
 | ||||||
|  | +.*:	c0 54 00 00 00 00 [	 ]*jgnhe	ae <foo\+0xae>
 | ||||||
|  | +.*:	c0 64 00 00 00 00 [	 ]*jglh	b4 <foo\+0xb4>
 | ||||||
|  | +.*:	c0 74 00 00 00 00 [	 ]*jgne	ba <foo\+0xba>
 | ||||||
|  | +.*:	c0 74 00 00 00 00 [	 ]*jgne	c0 <foo\+0xc0>
 | ||||||
|  | +.*:	c0 84 00 00 00 00 [	 ]*jge	c6 <foo\+0xc6>
 | ||||||
|  | +.*:	c0 84 00 00 00 00 [	 ]*jge	cc <foo\+0xcc>
 | ||||||
|  | +.*:	c0 94 00 00 00 00 [	 ]*jgnlh	d2 <foo\+0xd2>
 | ||||||
|  | +.*:	c0 a4 00 00 00 00 [	 ]*jghe	d8 <foo\+0xd8>
 | ||||||
|  | +.*:	c0 b4 00 00 00 00 [	 ]*jgnl	de <foo\+0xde>
 | ||||||
|  | +.*:	c0 b4 00 00 00 00 [	 ]*jgnl	e4 <foo\+0xe4>
 | ||||||
|  | +.*:	c0 c4 00 00 00 00 [	 ]*jgle	ea <foo\+0xea>
 | ||||||
|  | +.*:	c0 d4 00 00 00 00 [	 ]*jgnh	f0 <foo\+0xf0>
 | ||||||
|  | +.*:	c0 d4 00 00 00 00 [	 ]*jgnh	f6 <foo\+0xf6>
 | ||||||
|  | +.*:	c0 e4 00 00 00 00 [	 ]*jgno	fc <foo\+0xfc>
 | ||||||
|  | +.*:	c0 f4 00 00 00 00 [	 ]*jg	102 <foo\+0x102>
 | ||||||
|  | +.*:	c0 65 00 00 00 00 [	 ]*brasl	%r6,108 <foo\+0x108>
 | ||||||
|  | +.*:	c0 65 00 00 00 00 [	 ]*brasl	%r6,10e <foo\+0x10e>
 | ||||||
|  |  .*:	01 0b [	 ]*tam | ||||||
|  |  .*:	01 0c [	 ]*sam24 | ||||||
|  |  .*:	01 0d [	 ]*sam31 | ||||||
|  | @@ -39,7 +62,7 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	b9 97 00 69 [	 ]*dlr	%r6,%r9 | ||||||
|  |  .*:	b9 98 00 69 [	 ]*alcr	%r6,%r9 | ||||||
|  |  .*:	b9 99 00 69 [	 ]*slbr	%r6,%r9 | ||||||
|  | -.*:	c0 60 00 00 00 00 [	 ]*larl	%r6,ac \<foo\+0xac\>
 | ||||||
|  | +.*:	c0 60 00 00 00 00 [	 ]*larl	%r6,136 <foo\+0x136>
 | ||||||
|  |  .*:	e3 65 af ff 00 1e [	 ]*lrv	%r6,4095\(%r5,%r10\) | ||||||
|  |  .*:	e3 65 af ff 00 1f [	 ]*lrvh	%r6,4095\(%r5,%r10\) | ||||||
|  |  .*:	e3 65 af ff 00 3e [	 ]*strv	%r6,4095\(%r5,%r10\) | ||||||
|  | @@ -49,3 +72,4 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	e3 65 af ff 00 98 [	 ]*alc	%r6,4095\(%r5,%r10\) | ||||||
|  |  .*:	e3 65 af ff 00 99 [	 ]*slb	%r6,4095\(%r5,%r10\) | ||||||
|  |  .*:	eb 69 5f ff 00 1d [	 ]*rll	%r6,%r9,4095\(%r5\) | ||||||
|  | +.*:	07 07 [	 ]*nopr	%r7
 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/esa-z900.s binutils-2.35.1/gas/testsuite/gas/s390/esa-z900.s
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/esa-z900.s	2021-03-25 14:35:41.037632927 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/esa-z900.s	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -1,6 +1,7 @@
 | ||||||
|  |  .text | ||||||
|  |  foo: | ||||||
|  |  	brcl	15,. | ||||||
|  | +	jgnop	.
 | ||||||
|  |  	jgo	. | ||||||
|  |  	jgh	. | ||||||
|  |  	jgp	. | ||||||
|  | @@ -22,7 +23,29 @@ foo:
 | ||||||
|  |  	jgnp	. | ||||||
|  |  	jgno	. | ||||||
|  |  	jg	. | ||||||
|  | +	brol	.
 | ||||||
|  | +	brhl	.
 | ||||||
|  | +	brpl	.
 | ||||||
|  | +	brnlel	.
 | ||||||
|  | +	brll	.
 | ||||||
|  | +	brml	.
 | ||||||
|  | +	brnhel	.
 | ||||||
|  | +	brlhl	.
 | ||||||
|  | +	brnel	.
 | ||||||
|  | +	brnzl	.
 | ||||||
|  | +	brel	.
 | ||||||
|  | +	brzl	.
 | ||||||
|  | +	brnlhl	.
 | ||||||
|  | +	brhel	.
 | ||||||
|  | +	brnll	.
 | ||||||
|  | +	brnml	.
 | ||||||
|  | +	brlel	.
 | ||||||
|  | +	brnhl	.
 | ||||||
|  | +	brnpl	.
 | ||||||
|  | +	brnol	.
 | ||||||
|  | +	brul	.
 | ||||||
|  |  	brasl	%r6,. | ||||||
|  | +	jasl	%r6,.
 | ||||||
|  |  	tam | ||||||
|  |  	sam24 | ||||||
|  |  	sam31 | ||||||
|  | Only in binutils-2.35.1/gas/testsuite/gas/s390: s390.exp.rej | ||||||
|  | Only in binutils-2.35.1/gas/testsuite/gas/s390: zarch-arch14.d | ||||||
|  | Only in binutils-2.35.1/gas/testsuite/gas/s390: zarch-arch14.s | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-z10.d binutils-2.35.1/gas/testsuite/gas/s390/zarch-z10.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-z10.d	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/zarch-z10.d	2021-03-25 14:39:49.766420543 +0000
 | ||||||
|  | @@ -362,11 +362,13 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	ec 67 d2 dc e6 54 [	 ]*rnsbg	%r6,%r7,210,220,230 | ||||||
|  |  .*:	ec 67 d2 dc e6 57 [	 ]*rxsbg	%r6,%r7,210,220,230 | ||||||
|  |  .*:	ec 67 d2 dc e6 56 [	 ]*rosbg	%r6,%r7,210,220,230 | ||||||
|  | -.*:	ec 67 d2 dc e6 55 [	 ]*risbg	%r6,%r7,210,220,230
 | ||||||
|  | -.*:	c4 6f 00 00 00 00 [	 ]*strl	%r6,7f6 <foo\+0x7f6>
 | ||||||
|  | -.*:	c4 6b 00 00 00 00 [	 ]*stgrl	%r6,7fc <foo\+0x7fc>
 | ||||||
|  | -.*:	c4 67 00 00 00 00 [	 ]*sthrl	%r6,802 <foo\+0x802>
 | ||||||
|  | -.*:	c6 60 00 00 00 00 [	 ]*exrl	%r6,808 <foo\+0x808>
 | ||||||
|  | +.*:	ec 67 d2 14 e6 55 [	 ]*risbg	%r6,%r7,210,20,230
 | ||||||
|  | +.*:	ec 67 d2 bc e6 55 [	 ]*risbgz	%r6,%r7,210,60,230
 | ||||||
|  | +.*:	ec 67 d2 94 e6 55 [	 ]*risbgz	%r6,%r7,210,20,230
 | ||||||
|  | +.*:	c4 6f 00 00 00 00 [	 ]*strl	%r6,802 <foo\+0x802>
 | ||||||
|  | +.*:	c4 6b 00 00 00 00 [	 ]*stgrl	%r6,808 <foo\+0x808>
 | ||||||
|  | +.*:	c4 67 00 00 00 00 [	 ]*sthrl	%r6,80e <foo\+0x80e>
 | ||||||
|  | +.*:	c6 60 00 00 00 00 [	 ]*exrl	%r6,814 <foo\+0x814>
 | ||||||
|  |  .*:	af ee 6d 05 [	 ]*mc	3333\(%r6\),238 | ||||||
|  |  .*:	b9 a2 00 60 [	 ]*ptf	%r6 | ||||||
|  |  .*:	b9 af 00 67 [	 ]*pfmf	%r6,%r7 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-z10.s binutils-2.35.1/gas/testsuite/gas/s390/zarch-z10.s
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-z10.s	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/zarch-z10.s	2021-03-25 14:39:49.766420543 +0000
 | ||||||
|  | @@ -356,7 +356,9 @@ foo:
 | ||||||
|  |  	rnsbg	%r6,%r7,210,220,230 | ||||||
|  |  	rxsbg	%r6,%r7,210,220,230 | ||||||
|  |  	rosbg	%r6,%r7,210,220,230 | ||||||
|  | -	risbg	%r6,%r7,210,220,230
 | ||||||
|  | +	risbg	%r6,%r7,210,20,230
 | ||||||
|  | +	risbg	%r6,%r7,210,188,230
 | ||||||
|  | +	risbgz	%r6,%r7,210,20,230
 | ||||||
|  |  	strl	%r6,. | ||||||
|  |  	stgrl	%r6,. | ||||||
|  |  	sthrl	%r6,. | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-z900.d binutils-2.35.1/gas/testsuite/gas/s390/zarch-z900.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-z900.d	2021-03-25 14:35:41.037632927 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/zarch-z900.d	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -20,8 +20,11 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	e3 95 af ff 00 46 [ 	]*bctg	%r9,4095\(%r5,%r10\) | ||||||
|  |  .*:	b9 46 00 96 [ 	]*bctgr	%r9,%r6 | ||||||
|  |  .*:	a7 97 00 00 [	 ]*brctg	%r9,40 \<foo\+0x40\> | ||||||
|  | -.*:	ec 96 00 00 00 44 [ 	]*brxhg	%r9,%r6,44 <foo\+0x44>
 | ||||||
|  | -.*:	ec 96 00 00 00 45 [ 	]*brxlg	%r9,%r6,4a <foo\+0x4a>
 | ||||||
|  | +.*:	a7 67 00 00 [	 ]*brctg	%r6,44 <foo\+0x44>
 | ||||||
|  | +.*:	ec 96 00 00 00 44 [ 	]*brxhg	%r9,%r6,48 <foo\+0x48>
 | ||||||
|  | +.*:	ec 69 00 00 00 44 [	 ]*brxhg	%r6,%r9,4e <foo\+0x4e>
 | ||||||
|  | +.*:	ec 96 00 00 00 45 [ 	]*brxlg	%r9,%r6,54 <foo\+0x54>
 | ||||||
|  | +.*:	ec 69 00 00 00 45 [	 ]*brxlg	%r6,%r9,5a <foo\+0x5a>
 | ||||||
|  |  .*:	eb 96 5f ff 00 44 [ 	]*bxhg	%r9,%r6,4095\(%r5\) | ||||||
|  |  .*:	eb 96 5f ff 00 45 [ 	]*bxleg	%r9,%r6,4095\(%r5\) | ||||||
|  |  .*:	b3 a5 00 96 [ 	]*cdgbr	%f9,%r6 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-z900.s binutils-2.35.1/gas/testsuite/gas/s390/zarch-z900.s
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-z900.s	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/zarch-z900.s	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -14,8 +14,11 @@ foo:
 | ||||||
|  |  	bctg	%r9,4095(%r5,%r10) | ||||||
|  |  	bctgr	%r9,%r6 | ||||||
|  |  	brctg	%r9,. | ||||||
|  | +	jctg	%r6,.
 | ||||||
|  |  	brxhg	%r9,%r6,. | ||||||
|  | +	jxhg	%r6,%r9,.
 | ||||||
|  |  	brxlg	%r9,%r6,. | ||||||
|  | +	jxleg	%r6,%r9,.
 | ||||||
|  |  	bxhg	%r9,%r6,4095(%r5) | ||||||
|  |  	bxleg	%r9,%r6,4095(%r5) | ||||||
|  |  	cdgbr	%f9,%r6 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-zEC12.d binutils-2.35.1/gas/testsuite/gas/s390/zarch-zEC12.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-zEC12.d	2021-03-25 14:35:41.037632927 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/zarch-zEC12.d	2021-03-25 14:39:49.766420543 +0000
 | ||||||
|  | @@ -47,6 +47,8 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	eb 6c 7a 4d fe 2b [	 ]*clgtnh	%r6,-5555\(%r7\) | ||||||
|  |  .*:	eb 6c 7a 4d fe 2b [	 ]*clgtnh	%r6,-5555\(%r7\) | ||||||
|  |  .*:	ec 67 0c 0d 0e 59 [	 ]*risbgn	%r6,%r7,12,13,14 | ||||||
|  | +.*:	ec 67 0c bc 0e 59 [	 ]*risbgnz	%r6,%r7,12,60,14
 | ||||||
|  | +.*:	ec 67 0c 94 0e 59 [	 ]*risbgnz	%r6,%r7,12,20,14
 | ||||||
|  |  .*:	ed 0f 8f a0 6d aa [	 ]*cdzt	%f6,4000\(16,%r8\),13 | ||||||
|  |  .*:	ed 21 8f a0 4d ab [	 ]*cxzt	%f4,4000\(34,%r8\),13 | ||||||
|  |  .*:	ed 0f 8f a0 6d a8 [	 ]*czdt	%f6,4000\(16,%r8\),13 | ||||||
|  | @@ -54,16 +56,16 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	b2 e8 c0 56 [	 ]*ppa	%r5,%r6,12 | ||||||
|  |  .*:	b9 8f 60 59 [	 ]*crdte	%r5,%r6,%r9 | ||||||
|  |  .*:	b9 8f 61 59 [	 ]*crdte	%r5,%r6,%r9,1 | ||||||
|  | -.*:	c5 a0 0c 00 00 0c [	 ]*bprp	10,12a <bar>,12a <bar>
 | ||||||
|  | -.*:	c5 a0 00 00 00 00 [	 ]*bprp	10,118 <foo\+0x118>,118 <foo\+0x118>
 | ||||||
|  | -[	 ]*119: R_390_PLT12DBL	bar\+0x1
 | ||||||
|  | -[	 ]*11b: R_390_PLT24DBL	bar\+0x3
 | ||||||
|  | -.*:	c7 a0 00 00 00 00 [	 ]*bpp	10,11e <foo\+0x11e>,0
 | ||||||
|  | -[	 ]*122: R_390_PLT16DBL	bar\+0x4
 | ||||||
|  | -.*:	c7 a0 00 00 00 00 [	 ]*bpp	10,124 <foo\+0x124>,0
 | ||||||
|  | -[	 ]*128: R_390_PC16DBL	baz\+0x4
 | ||||||
|  | +.*:	c5 a0 0c 00 00 0c [	 ]*bprp	10,136 <bar>,136 <bar>
 | ||||||
|  | +.*:	c5 a0 00 00 00 00 [	 ]*bprp	10,124 <foo\+0x124>,124 <foo\+0x124>
 | ||||||
|  | +[	 ]*125: R_390_PLT12DBL	bar\+0x1
 | ||||||
|  | +[	 ]*127: R_390_PLT24DBL	bar\+0x3
 | ||||||
|  | +.*:	c7 a0 00 00 00 00 [	 ]*bpp	10,12a <foo\+0x12a>,0
 | ||||||
|  | +[	 ]*12e: R_390_PLT16DBL	bar\+0x4
 | ||||||
|  | +.*:	c7 a0 00 00 00 00 [	 ]*bpp	10,130 <foo\+0x130>,0
 | ||||||
|  | +[	 ]*134: R_390_PC16DBL	baz\+0x4
 | ||||||
|  |   | ||||||
|  |   | ||||||
|  | -000000000000012a <bar>:
 | ||||||
|  | +0000000000000136 <bar>:
 | ||||||
|  |   | ||||||
|  |  .*:	07 07 [	 ]*nopr	%r7 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-zEC12.s binutils-2.35.1/gas/testsuite/gas/s390/zarch-zEC12.s
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-zEC12.s	2021-03-25 14:35:41.038632922 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/zarch-zEC12.s	2021-03-25 14:39:49.766420543 +0000
 | ||||||
|  | @@ -44,6 +44,9 @@ foo:
 | ||||||
|  |  	clgtnh	%r6,-5555(%r7) | ||||||
|  |   | ||||||
|  |  	risbgn	%r6,%r7,12,13,14 | ||||||
|  | +	risbgn	%r6,%r7,12,188,14
 | ||||||
|  | +	risbgnz	%r6,%r7,12,20,14
 | ||||||
|  | +
 | ||||||
|  |  	cdzt	%f6,4000(16,%r8),13 | ||||||
|  |  	cxzt	%f4,4000(34,%r8),13 | ||||||
|  |  	czdt	%f6,4000(16,%r8),13 | ||||||
|  | Only in binutils-2.35.1/include: ChangeLog.orig | ||||||
|  | Only in binutils-2.35.1/include: ChangeLog.rej | ||||||
|  | Only in binutils-2.35.1/include/opcode: s390.h.rej | ||||||
|  | Only in binutils-2.35.1/ld: ChangeLog.orig | ||||||
|  | Only in binutils-2.35.1/ld: ChangeLog.rej | ||||||
|  | diff -rup binutils.orig/ld/testsuite/ld-s390/tlsbin_64.dd binutils-2.35.1/ld/testsuite/ld-s390/tlsbin_64.dd
 | ||||||
|  | --- binutils.orig/ld/testsuite/ld-s390/tlsbin_64.dd	2021-03-25 14:35:40.826633955 +0000
 | ||||||
|  | +++ binutils-2.35.1/ld/testsuite/ld-s390/tlsbin_64.dd	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -87,26 +87,26 @@ Disassembly of section .text:
 | ||||||
|  |   +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\) | ||||||
|  |  # GD -> LE with global variable defined in executable | ||||||
|  |   +[0-9a-f]+:	e3 20 d0 10 00 04 	lg	%r2,16\(%r13\) | ||||||
|  | - +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xca>
 | ||||||
|  | + +[0-9a-f]+:	c0 04 00 00 00 00 	jgnop	[0-9a-f]+ <fn2\+0xca>
 | ||||||
|  |   +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\) | ||||||
|  |  # GD -> LE with local variable defined in executable | ||||||
|  |   +[0-9a-f]+:	e3 20 d0 18 00 04 	lg	%r2,24\(%r13\) | ||||||
|  | - +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xda>
 | ||||||
|  | + +[0-9a-f]+:	c0 04 00 00 00 00 	jgnop	[0-9a-f]+ <fn2\+0xda>
 | ||||||
|  |   +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\) | ||||||
|  |  # GD -> LE with hidden variable defined in executable | ||||||
|  |   +[0-9a-f]+:	e3 20 d0 20 00 04 	lg	%r2,32\(%r13\) | ||||||
|  | - +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xea>
 | ||||||
|  | + +[0-9a-f]+:	c0 04 00 00 00 00 	jgnop	[0-9a-f]+ <fn2\+0xea>
 | ||||||
|  |   +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\) | ||||||
|  |  # LD -> LE | ||||||
|  |   +[0-9a-f]+:	e3 20 d0 28 00 04 	lg	%r2,40\(%r13\) | ||||||
|  | - +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xfa>
 | ||||||
|  | + +[0-9a-f]+:	c0 04 00 00 00 00 	jgnop	[0-9a-f]+ <fn2\+0xfa>
 | ||||||
|  |   +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\) | ||||||
|  |   +[0-9a-f]+:	e3 40 d0 30 00 04 	lg	%r4,48\(%r13\) | ||||||
|  |   +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\) | ||||||
|  |   +[0-9a-f]+:	e3 40 d0 38 00 04 	lg	%r4,56\(%r13\) | ||||||
|  |   +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\) | ||||||
|  |   +[0-9a-f]+:	e3 20 d0 40 00 04 	lg	%r2,64\(%r13\) | ||||||
|  | - +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0x11e>
 | ||||||
|  | + +[0-9a-f]+:	c0 04 00 00 00 00 	jgnop	[0-9a-f]+ <fn2\+0x11e>
 | ||||||
|  |   +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\) | ||||||
|  |   +[0-9a-f]+:	e3 40 d0 48 00 04 	lg	%r4,72\(%r13\) | ||||||
|  |   +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\) | ||||||
|  | Only in binutils-2.35.1/opcodes: ChangeLog.orig | ||||||
|  | Only in binutils-2.35.1/opcodes: ChangeLog.rej | ||||||
|  | Only in binutils-2.35.1/opcodes: s390-mkopc.c.rej | ||||||
|  | diff -rup binutils.orig/opcodes/s390-opc.c binutils-2.35.1/opcodes/s390-opc.c
 | ||||||
|  | --- binutils.orig/opcodes/s390-opc.c	2021-03-25 14:35:40.719634477 +0000
 | ||||||
|  | +++ binutils-2.35.1/opcodes/s390-opc.c	2021-03-25 14:39:49.766420543 +0000
 | ||||||
|  | @@ -218,32 +218,34 @@ const struct s390_operand s390_operands[
 | ||||||
|  |    { 8, 8, 0 }, | ||||||
|  |  #define U8_16       68            /* 8 bit unsigned value starting at 16 */ | ||||||
|  |    { 8, 16, 0 }, | ||||||
|  | -#define U8_24       69            /* 8 bit unsigned value starting at 24 */
 | ||||||
|  | +#define U6_26       69            /* 6 bit unsigned value starting at 26 */
 | ||||||
|  | +  { 6, 26, 0 },
 | ||||||
|  | +#define U8_24       70            /* 8 bit unsigned value starting at 24 */
 | ||||||
|  |    { 8, 24, 0 }, | ||||||
|  | -#define U8_28       70            /* 8 bit unsigned value starting at 28 */
 | ||||||
|  | +#define U8_28       71            /* 8 bit unsigned value starting at 28 */
 | ||||||
|  |    { 8, 28, 0 }, | ||||||
|  | -#define U8_32       71            /* 8 bit unsigned value starting at 32 */
 | ||||||
|  | +#define U8_32       72            /* 8 bit unsigned value starting at 32 */
 | ||||||
|  |    { 8, 32, 0 }, | ||||||
|  | -#define U12_16      72            /* 12 bit unsigned value starting at 16 */
 | ||||||
|  | +#define U12_16      73            /* 12 bit unsigned value starting at 16 */
 | ||||||
|  |    { 12, 16, 0 }, | ||||||
|  | -#define U16_16      73            /* 16 bit unsigned value starting at 16 */
 | ||||||
|  | +#define U16_16      74            /* 16 bit unsigned value starting at 16 */
 | ||||||
|  |    { 16, 16, 0 }, | ||||||
|  | -#define U16_32      74		  /* 16 bit unsigned value starting at 32 */
 | ||||||
|  | +#define U16_32      75		  /* 16 bit unsigned value starting at 32 */
 | ||||||
|  |    { 16, 32, 0 }, | ||||||
|  | -#define U32_16      75		  /* 32 bit unsigned value starting at 16 */
 | ||||||
|  | +#define U32_16      76		  /* 32 bit unsigned value starting at 16 */
 | ||||||
|  |    { 32, 16, 0 }, | ||||||
|  |   | ||||||
|  |  /* PC-relative address operands.  */ | ||||||
|  |   | ||||||
|  | -#define J12_12      76            /* 12 bit PC relative offset at 12 */
 | ||||||
|  | +#define J12_12      77            /* 12 bit PC relative offset at 12 */
 | ||||||
|  |    { 12, 12, S390_OPERAND_PCREL }, | ||||||
|  | -#define J16_16      77            /* 16 bit PC relative offset at 16 */
 | ||||||
|  | +#define J16_16      78            /* 16 bit PC relative offset at 16 */
 | ||||||
|  |    { 16, 16, S390_OPERAND_PCREL }, | ||||||
|  | -#define J16_32      78            /* 16 bit PC relative offset at 32 */
 | ||||||
|  | +#define J16_32      79            /* 16 bit PC relative offset at 32 */
 | ||||||
|  |    { 16, 32, S390_OPERAND_PCREL }, | ||||||
|  | -#define J24_24      79            /* 24 bit PC relative offset at 24 */
 | ||||||
|  | +#define J24_24      80            /* 24 bit PC relative offset at 24 */
 | ||||||
|  |    { 24, 24, S390_OPERAND_PCREL }, | ||||||
|  | -#define J32_16      80            /* 32 bit PC relative offset at 16 */
 | ||||||
|  | +#define J32_16      81            /* 32 bit PC relative offset at 16 */
 | ||||||
|  |    { 32, 16, S390_OPERAND_PCREL }, | ||||||
|  |   | ||||||
|  |  }; | ||||||
|  | @@ -313,6 +315,7 @@ const struct s390_operand s390_operands[
 | ||||||
|  |  #define INSTR_RIE_R0U0     6, { R_8,U16_16,0,0,0,0 }             /* e.g. clfitne */ | ||||||
|  |  #define INSTR_RIE_RUI0     6, { R_8,I16_16,U4_12,0,0,0 }         /* e.g. lochi */ | ||||||
|  |  #define INSTR_RIE_RRUUU    6, { R_8,R_12,U8_16,U8_24,U8_32,0 }   /* e.g. rnsbg */ | ||||||
|  | +#define INSTR_RIE_RRUUU2   6, { R_8,R_12,U8_16,U6_26,U8_32,0 }   /* e.g. rnsbg */
 | ||||||
|  |  #define INSTR_RIL_0P       6, { J32_16,0,0,0,0 }                 /* e.g. jg    */ | ||||||
|  |  #define INSTR_RIL_RP       6, { R_8,J32_16,0,0,0,0 }             /* e.g. brasl */ | ||||||
|  |  #define INSTR_RIL_UP       6, { U4_8,J32_16,0,0,0,0 }            /* e.g. brcl  */ | ||||||
|  | @@ -534,6 +537,7 @@ const struct s390_operand s390_operands[
 | ||||||
|  |  #define MASK_RIE_R0U0     { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff } | ||||||
|  |  #define MASK_RIE_RUI0     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff } | ||||||
|  |  #define MASK_RIE_RRUUU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff } | ||||||
|  | +#define MASK_RIE_RRUUU2   { 0xff, 0x00, 0x00, 0xc0, 0x00, 0xff }
 | ||||||
|  |  #define MASK_RIL_0P       { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  |  #define MASK_RIL_RP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  |  #define MASK_RIL_UP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  | diff -rup binutils.orig/opcodes/s390-opc.txt binutils-2.35.1/opcodes/s390-opc.txt
 | ||||||
|  | --- binutils.orig/opcodes/s390-opc.txt	2021-03-25 14:35:40.728634433 +0000
 | ||||||
|  | +++ binutils-2.35.1/opcodes/s390-opc.txt	2021-03-25 14:39:56.534387545 +0000
 | ||||||
|  | @@ -246,10 +246,14 @@ d7 xc SS_L0RDRD "exclusive OR" g5 esa,za
 | ||||||
|  |  f8 zap SS_LLRDRD "zero and add" g5 esa,zarch | ||||||
|  |  a70a ahi RI_RI "add halfword immediate" g5 esa,zarch | ||||||
|  |  84 brxh RSI_RRP "branch relative on index high" g5 esa,zarch | ||||||
|  | +84 jxh RSI_RRP "branch relative on index high" g5 esa,zarch
 | ||||||
|  |  85 brxle RSI_RRP "branch relative on index low or equal" g5 esa,zarch | ||||||
|  | +85 jxle RSI_RRP "branch relative on index low or equal" g5 esa,zarch
 | ||||||
|  |  a705 bras RI_RP "branch relative and save" g5 esa,zarch | ||||||
|  | +a705 jas RI_RP "branch relative and save" g5 esa,zarch
 | ||||||
|  |  a704 brc RI_UP "branch relative on condition" g5 esa,zarch | ||||||
|  |  a706 brct RI_RP "branch relative on count" g5 esa,zarch | ||||||
|  | +a706 jct RI_RP "branch relative on count" g5 esa,zarch
 | ||||||
|  |  b241 cksm RRE_RR "checksum" g5 esa,zarch | ||||||
|  |  a70e chi RI_RI "compare halfword immediate" g5 esa,zarch | ||||||
|  |  a9 clcle RS_RRRD "compare logical long extended" g5 esa,zarch | ||||||
|  | @@ -268,8 +272,11 @@ a701 tml RI_RU "test under mask low" g5
 | ||||||
|  |  4700 nop RX_0RRD "no operation" g5 esa,zarch optparm | ||||||
|  |  4700 b*8 RX_0RRD "conditional branch" g5 esa,zarch | ||||||
|  |  47f0 b RX_0RRD "unconditional branch" g5 esa,zarch | ||||||
|  | +a704 jnop RI_0P "nop jump" g5 esa,zarch
 | ||||||
|  |  a704 j*8 RI_0P "conditional jump" g5 esa,zarch | ||||||
|  | +a704 br*8 RI_0P "conditional jump" g5 esa,zarch
 | ||||||
|  |  a7f4 j RI_0P "unconditional jump" g5 esa,zarch | ||||||
|  | +a7f4 bru RI_0P "unconditional jump" g5 esa,zarch
 | ||||||
|  |  b34a axbr RRE_FEFE "add extended bfp" g5 esa,zarch | ||||||
|  |  b31a adbr RRE_FF "add long bfp" g5 esa,zarch | ||||||
|  |  ed000000001a adb RXE_FRRD "add long bfp" g5 esa,zarch | ||||||
|  | @@ -437,7 +444,9 @@ e3000000001b slgf RXE_RRRD "subtract log
 | ||||||
|  |  e3000000000c msg RXE_RRRD "multiply single 64" z900 zarch | ||||||
|  |  e3000000001c msgf RXE_RRRD "multiply single 64<32" z900 zarch | ||||||
|  |  ec0000000044 brxhg RIE_RRP "branch relative on index high 64" z900 zarch | ||||||
|  | +ec0000000044 jxhg RIE_RRP "branch relative on index high 64" z900 zarch
 | ||||||
|  |  ec0000000045 brxlg RIE_RRP "branch relative on index low or equal 64" z900 zarch | ||||||
|  | +ec0000000045 jxleg RIE_RRP "branch relative on index low or equal 64" z900 zarch
 | ||||||
|  |  eb0000000044 bxhg RSE_RRRD "branch on index high 64" z900 zarch | ||||||
|  |  eb0000000045 bxleg RSE_RRRD "branch on index low or equal 64" z900 zarch | ||||||
|  |  eb000000000c srlg RSE_RRRD "shift right single logical 64" z900 zarch | ||||||
|  | @@ -462,10 +471,15 @@ eb0000000080 icmh RSE_RURD "insert chara
 | ||||||
|  |  a702 tmhh RI_RU "test under mask high high" z900 zarch | ||||||
|  |  a703 tmhl RI_RU "test under mask high low" z900 zarch | ||||||
|  |  c004 brcl RIL_UP "branch relative on condition long" z900 esa,zarch | ||||||
|  | +c004 jgnop RIL_0P "nop jump long" z900 esa,zarch
 | ||||||
|  |  c004 jg*8 RIL_0P "conditional jump long" z900 esa,zarch | ||||||
|  | +c004 br*8l RIL_0P "conditional jump long" z900 esa,zarch
 | ||||||
|  |  c0f4 jg RIL_0P "unconditional jump long" z900 esa,zarch | ||||||
|  | +c0f4 brul RIL_0P "unconditional jump long" z900 esa,zarch
 | ||||||
|  |  c005 brasl RIL_RP "branch relative and save long" z900 esa,zarch | ||||||
|  | +c005 jasl RIL_RP "branch relative and save long" z900 esa,zarch
 | ||||||
|  |  a707 brctg RI_RP "branch relative on count 64" z900 zarch | ||||||
|  | +a707 jctg RI_RP "branch relative on count 64" z900 zarch
 | ||||||
|  |  a709 lghi RI_RI "load halfword immediate 64" z900 zarch | ||||||
|  |  a70b aghi RI_RI "add halfword immediate 64" z900 zarch | ||||||
|  |  a70d mghi RI_RI "multiply halfword immediate 64" z900 zarch | ||||||
|  | @@ -956,6 +970,7 @@ ec0000000054 rnsbg RIE_RRUUU "rotate the
 | ||||||
|  |  ec0000000057 rxsbg RIE_RRUUU "rotate then exclusive or selected bits" z10 zarch | ||||||
|  |  ec0000000056 rosbg RIE_RRUUU "rotate then or selected bits" z10 zarch | ||||||
|  |  ec0000000055 risbg RIE_RRUUU "rotate then insert selected bits" z10 zarch | ||||||
|  | +ec0000800055 risbgz RIE_RRUUU2 "rotate then insert selected bits and zero remaining bits" z10 zarch
 | ||||||
|  |  c40f strl RIL_RP "store relative long (32)" z10 zarch | ||||||
|  |  c40b stgrl RIL_RP "store relative long (64)" z10 zarch | ||||||
|  |  c407 sthrl RIL_RP "store halfword relative long" z10 zarch | ||||||
|  | @@ -1139,6 +1154,7 @@ eb0000000023 clt$12 RSY_R0RD "compare lo
 | ||||||
|  |  eb000000002b clgt RSY_RURD "compare logical and trap 64 bit reg-mem" zEC12 zarch | ||||||
|  |  eb000000002b clgt$12 RSY_R0RD "compare logical and trap 64 bit reg-mem" zEC12 zarch | ||||||
|  |  ec0000000059 risbgn RIE_RRUUU "rotate then insert selected bits nocc" zEC12 zarch | ||||||
|  | +ec0000800059 risbgnz RIE_RRUUU2 "rotate then insert selected bits and zero remaining bits nocc" zEC12 zarch
 | ||||||
|  |  ed00000000aa cdzt RSL_LRDFU "convert from zoned long" zEC12 zarch | ||||||
|  |  ed00000000ab cxzt RSL_LRDFEU "convert from zoned extended" zEC12 zarch | ||||||
|  |  ed00000000a8 czdt RSL_LRDFU "convert to zoned long" zEC12 zarch | ||||||
|  | Only in binutils-2.35.1/opcodes: s390-opc.txt.orig | ||||||
|  | Only in binutils-2.35.1/opcodes: s390-opc.txt.rej | ||||||
							
								
								
									
										330
									
								
								SOURCES/binutils-fix-testsuite-failures.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										330
									
								
								SOURCES/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" | ||||||
							
								
								
									
										292
									
								
								SOURCES/binutils-gas-Use-the-directory-name-in-.file-0.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										292
									
								
								SOURCES/binutils-gas-Use-the-directory-name-in-.file-0.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,292 @@ | |||||||
|  | diff --git a/gas/testsuite/gas/elf/dwarf-5-file0-2.d b/gas/testsuite/gas/elf/dwarf-5-file0-2.d
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 00000000000..4b3ed29f4c9
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/gas/testsuite/gas/elf/dwarf-5-file0-2.d
 | ||||||
|  | @@ -0,0 +1,15 @@
 | ||||||
|  | +#as: --gdwarf-5
 | ||||||
|  | +#name: DWARF5 .file 0 dir file
 | ||||||
|  | +#readelf: -wl
 | ||||||
|  | +
 | ||||||
|  | +#...
 | ||||||
|  | + The Directory Table \(offset 0x.*, lines 1, columns 1\):
 | ||||||
|  | +  Entry	Name
 | ||||||
|  | +#...
 | ||||||
|  | +  0	\(indirect line string, offset: 0x.*\): /example
 | ||||||
|  | +
 | ||||||
|  | + The File Name Table \(offset 0x.*, lines 2, columns 2\):
 | ||||||
|  | +  Entry	Dir	Name
 | ||||||
|  | +  0	0	\(indirect line string, offset: 0x.*\): test.c
 | ||||||
|  | +  1	0	\(indirect line string, offset: 0x.*\): test.c
 | ||||||
|  | +#pass
 | ||||||
|  | diff --git a/gas/testsuite/gas/elf/dwarf-5-file0-2.s b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 00000000000..135a03bf493
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
 | ||||||
|  | @@ -0,0 +1,111 @@
 | ||||||
|  | +	.file	"test.c"
 | ||||||
|  | +	.text
 | ||||||
|  | +.Ltext0:
 | ||||||
|  | +	.file 0 "/example" "test.c"
 | ||||||
|  | +	.globl	x
 | ||||||
|  | +	.section	.bss
 | ||||||
|  | +	.balign 4
 | ||||||
|  | +	.type	x, @object
 | ||||||
|  | +	.size	x, 4
 | ||||||
|  | +x:
 | ||||||
|  | +	.zero	4
 | ||||||
|  | +	.text
 | ||||||
|  | +.Letext0:
 | ||||||
|  | +	.file 1 "test.c"
 | ||||||
|  | +	.section	.debug_info,"",%progbits
 | ||||||
|  | +.Ldebug_info0:
 | ||||||
|  | +	.long	0x32
 | ||||||
|  | +	.2byte	0x5
 | ||||||
|  | +	.byte	0x1
 | ||||||
|  | +	.byte	0x4
 | ||||||
|  | +	.long	.Ldebug_abbrev0
 | ||||||
|  | +	.uleb128 0x1
 | ||||||
|  | +	.long	.LASF2
 | ||||||
|  | +	.byte	0x1d
 | ||||||
|  | +	.long	.LASF0
 | ||||||
|  | +	.long	.LASF1
 | ||||||
|  | +	.long	.Ldebug_line0
 | ||||||
|  | +	.uleb128 0x2
 | ||||||
|  | +	.string	"x"
 | ||||||
|  | +	.byte	0x1
 | ||||||
|  | +	.byte	0x1
 | ||||||
|  | +	.byte	0x5
 | ||||||
|  | +	.long	0x2e
 | ||||||
|  | +	.uleb128 0x5
 | ||||||
|  | +	.byte	0x3
 | ||||||
|  | +	.long	x
 | ||||||
|  | +	.uleb128 0x3
 | ||||||
|  | +	.byte	0x4
 | ||||||
|  | +	.byte	0x5
 | ||||||
|  | +	.string	"int"
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.section	.debug_abbrev,"",%progbits
 | ||||||
|  | +.Ldebug_abbrev0:
 | ||||||
|  | +	.uleb128 0x1
 | ||||||
|  | +	.uleb128 0x11
 | ||||||
|  | +	.byte	0x1
 | ||||||
|  | +	.uleb128 0x25
 | ||||||
|  | +	.uleb128 0xe
 | ||||||
|  | +	.uleb128 0x13
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0x3
 | ||||||
|  | +	.uleb128 0x1f
 | ||||||
|  | +	.uleb128 0x1b
 | ||||||
|  | +	.uleb128 0x1f
 | ||||||
|  | +	.uleb128 0x10
 | ||||||
|  | +	.uleb128 0x17
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.uleb128 0x2
 | ||||||
|  | +	.uleb128 0x34
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.uleb128 0x3
 | ||||||
|  | +	.uleb128 0x8
 | ||||||
|  | +	.uleb128 0x3a
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0x3b
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0x39
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0x49
 | ||||||
|  | +	.uleb128 0x13
 | ||||||
|  | +	.uleb128 0x3f
 | ||||||
|  | +	.uleb128 0x19
 | ||||||
|  | +	.uleb128 0x2
 | ||||||
|  | +	.uleb128 0x18
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.uleb128 0x3
 | ||||||
|  | +	.uleb128 0x24
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0x3e
 | ||||||
|  | +	.uleb128 0xb
 | ||||||
|  | +	.uleb128 0x3
 | ||||||
|  | +	.uleb128 0x8
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.section	.debug_aranges,"",%progbits
 | ||||||
|  | +	.long	0x14
 | ||||||
|  | +	.2byte	0x2
 | ||||||
|  | +	.long	.Ldebug_info0
 | ||||||
|  | +	.byte	0x4
 | ||||||
|  | +	.byte	0
 | ||||||
|  | +	.2byte	0
 | ||||||
|  | +	.2byte	0
 | ||||||
|  | +	.long	0
 | ||||||
|  | +	.long	0
 | ||||||
|  | +	.section	.debug_line,"",%progbits
 | ||||||
|  | +.Ldebug_line0:
 | ||||||
|  | +	.section	.debug_str,"MS",%progbits,1
 | ||||||
|  | +.LASF2:
 | ||||||
|  | +	.string	"GNU C17 11.2.1 -g"
 | ||||||
|  | +	.section	.debug_line_str,"MS",%progbits,1
 | ||||||
|  | +.LASF1:
 | ||||||
|  | +	.string	"/example"
 | ||||||
|  | +.LASF0:
 | ||||||
|  | +	.string	"test.c"
 | ||||||
|  | +	.ident	"GCC: (GNU) 11.2.1"
 | ||||||
|  | +	.section	.note.GNU-stack,"",%progbits
 | ||||||
|  | diff --git a/gas/testsuite/gas/elf/dwarf-5-file0-2.s b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
 | ||||||
|  | index 135a03bf493..bab4a16b56b 100644
 | ||||||
|  | --- a/gas/testsuite/gas/elf/dwarf-5-file0-2.s
 | ||||||
|  | +++ b/gas/testsuite/gas/elf/dwarf-5-file0-2.s
 | ||||||
|  | @@ -5,7 +5,7 @@
 | ||||||
|  |  	.globl	x | ||||||
|  |  	.section	.bss | ||||||
|  |  	.balign 4 | ||||||
|  | -	.type	x, @object
 | ||||||
|  | +	.type	x, %object
 | ||||||
|  |  	.size	x, 4 | ||||||
|  |  x: | ||||||
|  |  	.zero	4 | ||||||
|  | @@ -14,30 +14,30 @@ x:
 | ||||||
|  |  	.file 1 "test.c" | ||||||
|  |  	.section	.debug_info,"",%progbits | ||||||
|  |  .Ldebug_info0: | ||||||
|  | -	.long	0x32
 | ||||||
|  | +	.4byte	0x32
 | ||||||
|  |  	.2byte	0x5 | ||||||
|  |  	.byte	0x1 | ||||||
|  |  	.byte	0x4 | ||||||
|  | -	.long	.Ldebug_abbrev0
 | ||||||
|  | +	.4byte	.Ldebug_abbrev0
 | ||||||
|  |  	.uleb128 0x1 | ||||||
|  | -	.long	.LASF2
 | ||||||
|  | +	.4byte	.LASF2
 | ||||||
|  |  	.byte	0x1d | ||||||
|  | -	.long	.LASF0
 | ||||||
|  | -	.long	.LASF1
 | ||||||
|  | -	.long	.Ldebug_line0
 | ||||||
|  | +	.4byte	.LASF0
 | ||||||
|  | +	.4byte	.LASF1
 | ||||||
|  | +	.4byte	.Ldebug_line0
 | ||||||
|  |  	.uleb128 0x2 | ||||||
|  | -	.string	"x"
 | ||||||
|  | +	.asciz	"x"
 | ||||||
|  |  	.byte	0x1 | ||||||
|  |  	.byte	0x1 | ||||||
|  |  	.byte	0x5 | ||||||
|  | -	.long	0x2e
 | ||||||
|  | +	.4byte	0x2e
 | ||||||
|  |  	.uleb128 0x5 | ||||||
|  |  	.byte	0x3 | ||||||
|  | -	.long	x
 | ||||||
|  | +	.4byte	x
 | ||||||
|  |  	.uleb128 0x3 | ||||||
|  |  	.byte	0x4 | ||||||
|  |  	.byte	0x5 | ||||||
|  | -	.string	"int"
 | ||||||
|  | +	.asciz	"int"
 | ||||||
|  |  	.byte	0 | ||||||
|  |  	.section	.debug_abbrev,"",%progbits | ||||||
|  |  .Ldebug_abbrev0: | ||||||
|  | @@ -88,24 +88,24 @@ x:
 | ||||||
|  |  	.byte	0 | ||||||
|  |  	.byte	0 | ||||||
|  |  	.section	.debug_aranges,"",%progbits | ||||||
|  | -	.long	0x14
 | ||||||
|  | +	.4byte	0x14
 | ||||||
|  |  	.2byte	0x2 | ||||||
|  | -	.long	.Ldebug_info0
 | ||||||
|  | +	.4byte	.Ldebug_info0
 | ||||||
|  |  	.byte	0x4 | ||||||
|  |  	.byte	0 | ||||||
|  |  	.2byte	0 | ||||||
|  |  	.2byte	0 | ||||||
|  | -	.long	0
 | ||||||
|  | -	.long	0
 | ||||||
|  | +	.4byte	0
 | ||||||
|  | +	.4byte	0
 | ||||||
|  |  	.section	.debug_line,"",%progbits | ||||||
|  |  .Ldebug_line0: | ||||||
|  |  	.section	.debug_str,"MS",%progbits,1 | ||||||
|  |  .LASF2: | ||||||
|  | -	.string	"GNU C17 11.2.1 -g"
 | ||||||
|  | +	.asciz	"GNU C17 11.2.1 -g"
 | ||||||
|  |  	.section	.debug_line_str,"MS",%progbits,1 | ||||||
|  |  .LASF1: | ||||||
|  | -	.string	"/example"
 | ||||||
|  | +	.asciz	"/example"
 | ||||||
|  |  .LASF0: | ||||||
|  | -	.string	"test.c"
 | ||||||
|  | +	.asciz	"test.c"
 | ||||||
|  |  	.ident	"GCC: (GNU) 11.2.1" | ||||||
|  |  	.section	.note.GNU-stack,"",%progbits | ||||||
|  | diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.35.2/gas/dwarf2dbg.c
 | ||||||
|  | --- binutils.orig/gas/dwarf2dbg.c	2021-11-08 14:59:19.759524743 +0000
 | ||||||
|  | +++ binutils-2.35.2/gas/dwarf2dbg.c	2021-11-08 15:00:55.179909708 +0000
 | ||||||
|  | @@ -588,6 +588,7 @@ get_basename (const char * pathname)
 | ||||||
|  |   | ||||||
|  |  static unsigned int | ||||||
|  |  get_directory_table_entry (const char *  dirname, | ||||||
|  | +			   const char *  file0_dirname,
 | ||||||
|  |  			   size_t        dirlen, | ||||||
|  |  			   bfd_boolean   can_use_zero) | ||||||
|  |  { | ||||||
|  | @@ -617,7 +618,7 @@ get_directory_table_entry (const char *
 | ||||||
|  |      { | ||||||
|  |        if (dirs == NULL || dirs[0] == NULL) | ||||||
|  |  	{ | ||||||
|  | -	  const char * pwd = getpwd ();
 | ||||||
|  | +	  const char * pwd = file0_dirname ? file0_dirname : getpwd ();
 | ||||||
|  |   | ||||||
|  |  	  if (dwarf_level >= 5 && strcmp (dirname, pwd) != 0) | ||||||
|  |  	    { | ||||||
|  | @@ -626,7 +627,7 @@ get_directory_table_entry (const char *
 | ||||||
|  |  		 directory).  Since we are about to create a directory entry that | ||||||
|  |  		 is not the same, allocate the current directory first. | ||||||
|  |  		 FIXME: Alternatively we could generate an error message here.  */ | ||||||
|  | -	      (void) get_directory_table_entry (pwd, strlen (pwd), TRUE);
 | ||||||
|  | +	      (void) get_directory_table_entry (pwd, NULL, strlen (pwd), TRUE);
 | ||||||
|  |  	      d = 1; | ||||||
|  |  	    } | ||||||
|  |  	  else | ||||||
|  | @@ -722,7 +723,7 @@ allocate_filenum (const char * pathname)
 | ||||||
|  |    file = get_basename (pathname); | ||||||
|  |    dir_len = file - pathname; | ||||||
|  |   | ||||||
|  | -  dir = get_directory_table_entry (pathname, dir_len, FALSE);
 | ||||||
|  | +  dir = get_directory_table_entry (pathname, NULL, dir_len, FALSE);
 | ||||||
|  |   | ||||||
|  |    /* Do not use slot-0.  That is specifically reserved for use by | ||||||
|  |       the '.file 0 "name"' directive.  */ | ||||||
|  | @@ -762,6 +763,7 @@ allocate_filename_to_slot (const char *
 | ||||||
|  |    const char *file; | ||||||
|  |    size_t dirlen; | ||||||
|  |    unsigned int i, d; | ||||||
|  | +  const char *file0_dirname = dirname;
 | ||||||
|  |   | ||||||
|  |    /* Short circuit the common case of adding the same pathname | ||||||
|  |       as last time.  */ | ||||||
|  | @@ -836,7 +838,8 @@ allocate_filename_to_slot (const char *
 | ||||||
|  |        file = filename; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -  d = get_directory_table_entry (dirname, dirlen, num == 0);
 | ||||||
|  | +  d = get_directory_table_entry (dirname, file0_dirname, dirlen,
 | ||||||
|  | +				 num == 0);
 | ||||||
|  |    i = num; | ||||||
|  |   | ||||||
|  |    if (! assign_file_to_slot (i, file, d)) | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/elf/elf.exp binutils-2.35.2/gas/testsuite/gas/elf/elf.exp
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/elf/elf.exp	2021-11-08 14:59:19.856524118 +0000
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/elf/elf.exp	2021-11-08 14:59:36.225418609 +0000
 | ||||||
|  | @@ -274,6 +274,7 @@ if { [is_elf_format] } then {
 | ||||||
|  |      run_dump_test "dwarf2-18" $dump_opts | ||||||
|  |      run_dump_test "dwarf2-19" $dump_opts | ||||||
|  |      run_dump_test "dwarf-5-file0" $dump_opts | ||||||
|  | +    run_dump_test "dwarf-5-file0-2" $dump_opts
 | ||||||
|  |      run_dump_test "dwarf-5-dir0" $dump_opts | ||||||
|  |      run_dump_test "dwarf-4-cu" $dump_opts | ||||||
|  |      run_dump_test "dwarf-5-cu" $dump_opts | ||||||
|  | 
 | ||||||
							
								
								
									
										180
									
								
								SOURCES/binutils-gcc-10-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								SOURCES/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 | ||||||
							
								
								
									
										181
									
								
								SOURCES/binutils-gold-gnu-properties.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								SOURCES/binutils-gold-gnu-properties.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,181 @@ | |||||||
|  | diff -rup binutils.orig/gold/testsuite/gnu_property_a.S binutils-2.35/gold/testsuite/gnu_property_a.S
 | ||||||
|  | --- binutils.orig/gold/testsuite/gnu_property_a.S	2021-01-18 14:01:41.228809868 +0000
 | ||||||
|  | +++ binutils-2.35/gold/testsuite/gnu_property_a.S	2021-01-18 14:01:52.542736705 +0000
 | ||||||
|  | @@ -1,8 +1,8 @@
 | ||||||
|  |  #define NT_GNU_PROPERTY_TYPE_0 5 | ||||||
|  |   | ||||||
|  |  #define GNU_PROPERTY_STACK_SIZE 1 | ||||||
|  | -#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
 | ||||||
|  | -#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
 | ||||||
|  | +#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
 | ||||||
|  | +#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
 | ||||||
|  |  #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 | ||||||
|  |   | ||||||
|  |  #if __SIZEOF_PTRDIFF_T__  == 8 | ||||||
|  | diff -rup binutils.orig/gold/testsuite/gnu_property_b.S binutils-2.35/gold/testsuite/gnu_property_b.S
 | ||||||
|  | --- binutils.orig/gold/testsuite/gnu_property_b.S	2021-01-18 14:01:41.233809836 +0000
 | ||||||
|  | +++ binutils-2.35/gold/testsuite/gnu_property_b.S	2021-01-18 14:01:52.542736705 +0000
 | ||||||
|  | @@ -2,8 +2,8 @@
 | ||||||
|  |   | ||||||
|  |  #define GNU_PROPERTY_STACK_SIZE 1 | ||||||
|  |  #define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2 | ||||||
|  | -#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
 | ||||||
|  | -#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
 | ||||||
|  | +#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
 | ||||||
|  | +#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
 | ||||||
|  |  #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 | ||||||
|  |   | ||||||
|  |  #if __SIZEOF_PTRDIFF_T__  == 8 | ||||||
|  | diff -rup binutils.orig/gold/testsuite/gnu_property_c.S binutils-2.35/gold/testsuite/gnu_property_c.S
 | ||||||
|  | --- binutils.orig/gold/testsuite/gnu_property_c.S	2021-01-18 14:01:41.232809843 +0000
 | ||||||
|  | +++ binutils-2.35/gold/testsuite/gnu_property_c.S	2021-01-18 14:01:52.542736705 +0000
 | ||||||
|  | @@ -2,8 +2,8 @@
 | ||||||
|  |   | ||||||
|  |  #define GNU_PROPERTY_STACK_SIZE 1 | ||||||
|  |  #define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2 | ||||||
|  | -#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
 | ||||||
|  | -#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
 | ||||||
|  | +#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
 | ||||||
|  | +#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
 | ||||||
|  |  #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 | ||||||
|  |   | ||||||
|  |  #if __SIZEOF_PTRDIFF_T__  == 8 | ||||||
|  | diff -rup binutils.orig/gold/testsuite/gnu_property_test.sh binutils-2.35/gold/testsuite/gnu_property_test.sh
 | ||||||
|  | --- binutils.orig/gold/testsuite/gnu_property_test.sh	2021-01-18 14:01:41.236809817 +0000
 | ||||||
|  | +++ binutils-2.35/gold/testsuite/gnu_property_test.sh	2021-01-18 14:01:52.543736699 +0000
 | ||||||
|  | @@ -57,8 +57,8 @@ check_count gnu_property_test.stdout "GN
 | ||||||
|  |   | ||||||
|  |  check gnu_property_test.stdout "stack size: 0x111100" | ||||||
|  |  check gnu_property_test.stdout "no copy on protected" | ||||||
|  | -check gnu_property_test.stdout "x86 ISA used: i486, SSE2, SSE4_2, AVX512CD"
 | ||||||
|  | -check gnu_property_test.stdout "x86 ISA needed: i486, SSE2, SSE4_2, AVX512CD"
 | ||||||
|  | +check gnu_property_test.stdout "x86 ISA used: x86-64-v2, <unknown: 10>, <unknown: 100>, <unknown: 1000>"
 | ||||||
|  | +check gnu_property_test.stdout "x86 ISA needed: x86-64-v2, <unknown: 10>, <unknown: 100>, <unknown: 1000>"
 | ||||||
|  |  check gnu_property_test.stdout "x86 feature: IBT" | ||||||
|  |   | ||||||
|  |  exit 0 | ||||||
|  | diff -rup binutils.orig/gold/x86_64.cc binutils-2.35/gold/x86_64.cc
 | ||||||
|  | --- binutils.orig/gold/x86_64.cc	2021-01-18 14:01:41.225809888 +0000
 | ||||||
|  | +++ binutils-2.35/gold/x86_64.cc	2021-01-18 14:01:52.543736699 +0000
 | ||||||
|  | @@ -706,8 +706,9 @@ class Target_x86_64 : public Sized_targe
 | ||||||
|  |        rela_irelative_(NULL), copy_relocs_(elfcpp::R_X86_64_COPY), | ||||||
|  |        got_mod_index_offset_(-1U), tlsdesc_reloc_info_(), | ||||||
|  |        tls_base_symbol_defined_(false), isa_1_used_(0), isa_1_needed_(0), | ||||||
|  | -      feature_1_(0), object_isa_1_used_(0), object_feature_1_(0),
 | ||||||
|  | -      seen_first_object_(false)
 | ||||||
|  | +      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)
 | ||||||
|  |    { } | ||||||
|  |   | ||||||
|  |    // Hook for a new output section. | ||||||
|  | @@ -1382,6 +1383,8 @@ class Target_x86_64 : public Sized_targe
 | ||||||
|  |    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 | ||||||
|  | @@ -1391,6 +1394,7 @@ class Target_x86_64 : public Sized_targe
 | ||||||
|  |    // 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_; | ||||||
|  |  }; | ||||||
|  | @@ -1594,9 +1598,15 @@ Target_x86_64<size>::record_gnu_property
 | ||||||
|  |   | ||||||
|  |    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 " | ||||||
|  | @@ -1625,6 +1635,12 @@ Target_x86_64<size>::record_gnu_property
 | ||||||
|  |        // 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;
 | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -1642,15 +1658,23 @@ Target_x86_64<size>::merge_gnu_propertie
 | ||||||
|  |        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 | ||||||
|  | @@ -1676,6 +1700,12 @@ Target_x86_64<size>::do_finalize_gnu_pro
 | ||||||
|  |    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. | ||||||
|  | --- binutils.orig/elfcpp/elfcpp.h	2021-01-18 14:01:40.778812778 +0000
 | ||||||
|  | +++ binutils-2.35/elfcpp/elfcpp.h	2021-01-18 14:50:05.144035077 +0000
 | ||||||
|  | @@ -1009,9 +1009,21 @@ enum
 | ||||||
|  |    GNU_PROPERTY_STACK_SIZE = 1, | ||||||
|  |    GNU_PROPERTY_NO_COPY_ON_PROTECTED = 2, | ||||||
|  |    GNU_PROPERTY_LOPROC = 0xc0000000, | ||||||
|  | -  GNU_PROPERTY_X86_ISA_1_USED = 0xc0000000,
 | ||||||
|  | -  GNU_PROPERTY_X86_ISA_1_NEEDED = 0xc0000001,
 | ||||||
|  | -  GNU_PROPERTY_X86_FEATURE_1_AND = 0xc0000002,
 | ||||||
|  | +  GNU_PROPERTY_X86_COMPAT_ISA_1_USED = 0xc0000000,
 | ||||||
|  | +  GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED = 0xc0000001,
 | ||||||
|  | +  GNU_PROPERTY_X86_UINT32_AND_LO = 0xc0000002,
 | ||||||
|  | +  GNU_PROPERTY_X86_UINT32_AND_HI = 0xc0007fff,
 | ||||||
|  | +  GNU_PROPERTY_X86_UINT32_OR_LO = 0xc0008000,
 | ||||||
|  | +  GNU_PROPERTY_X86_UINT32_OR_HI = 0xc000ffff,
 | ||||||
|  | +  GNU_PROPERTY_X86_UINT32_OR_AND_LO = 0xc0010000,
 | ||||||
|  | +  GNU_PROPERTY_X86_UINT32_OR_AND_HI = 0xc0017fff,
 | ||||||
|  | +  GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 0,
 | ||||||
|  | +  GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0,
 | ||||||
|  | +  GNU_PROPERTY_X86_FEATURE_1_AND = GNU_PROPERTY_X86_UINT32_AND_LO + 0,
 | ||||||
|  | +  GNU_PROPERTY_X86_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 2,
 | ||||||
|  | +  GNU_PROPERTY_X86_FEATURE_2_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 1,
 | ||||||
|  | +  GNU_PROPERTY_X86_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2,
 | ||||||
|  | +  GNU_PROPERTY_X86_FEATURE_2_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1,
 | ||||||
|  |    GNU_PROPERTY_HIPROC = 0xdfffffff, | ||||||
|  |    GNU_PROPERTY_LOUSER = 0xe0000000, | ||||||
|  |    GNU_PROPERTY_HIUSER = 0xffffffff | ||||||
							
								
								
									
										193
									
								
								SOURCES/binutils-gold-i386-gnu-property-notes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								SOURCES/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
									
								
								SOURCES/binutils-gold-mismatched-section-flags.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								SOURCES/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
									
								
								SOURCES/binutils-gold-warn-unsupported.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								SOURCES/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 | ||||||
|  |      ;; | ||||||
							
								
								
									
										60
									
								
								SOURCES/binutils-ld-DWARF-5-sections.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								SOURCES/binutils-ld-DWARF-5-sections.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | |||||||
|  | --- binutils.orig/ld/scripttempl/DWARF.sc	2021-02-01 10:29:33.596729908 +0000
 | ||||||
|  | +++ binutils-2.35.1/ld/scripttempl/DWARF.sc	2021-02-01 10:30:00.454552083 +0000
 | ||||||
|  | @@ -1,4 +1,4 @@
 | ||||||
|  | -# Copyright (C) 2014-2020 Free Software Foundation, Inc.
 | ||||||
|  | +# Copyright (C) 2014-2021 Free Software Foundation, Inc.
 | ||||||
|  |  # | ||||||
|  |  # Copying and distribution of this file, with or without modification, | ||||||
|  |  # are permitted in any medium without royalty provided the copyright | ||||||
|  | @@ -9,19 +9,19 @@ cat <<EOF
 | ||||||
|  |       Symbols in the DWARF debugging sections are relative to the beginning | ||||||
|  |       of the section so we begin them at 0.  */ | ||||||
|  |   | ||||||
|  | -  /* DWARF 1 */
 | ||||||
|  | +  /* DWARF 1.  */
 | ||||||
|  |    .debug          0 : { *(.debug) } | ||||||
|  |    .line           0 : { *(.line) } | ||||||
|  |   | ||||||
|  | -  /* GNU DWARF 1 extensions */
 | ||||||
|  | +  /* GNU DWARF 1 extensions.  */
 | ||||||
|  |    .debug_srcinfo  0 : { *(.debug_srcinfo) } | ||||||
|  |    .debug_sfnames  0 : { *(.debug_sfnames) } | ||||||
|  |   | ||||||
|  | -  /* DWARF 1.1 and DWARF 2 */
 | ||||||
|  | +  /* DWARF 1.1 and DWARF 2.  */
 | ||||||
|  |    .debug_aranges  0 : { *(.debug_aranges) } | ||||||
|  |    .debug_pubnames 0 : { *(.debug_pubnames) } | ||||||
|  |   | ||||||
|  | -  /* DWARF 2 */
 | ||||||
|  | +  /* DWARF 2.  */
 | ||||||
|  |    .debug_info     0 : { *(.debug_info${RELOCATING+ .gnu.linkonce.wi.*}) } | ||||||
|  |    .debug_abbrev   0 : { *(.debug_abbrev) } | ||||||
|  |    .debug_line     0 : { *(.debug_line${RELOCATING+ .debug_line.* .debug_line_end}) } | ||||||
|  | @@ -30,17 +30,23 @@ cat <<EOF
 | ||||||
|  |    .debug_loc      0 : { *(.debug_loc) } | ||||||
|  |    .debug_macinfo  0 : { *(.debug_macinfo) } | ||||||
|  |   | ||||||
|  | -  /* SGI/MIPS DWARF 2 extensions */
 | ||||||
|  | +  /* SGI/MIPS DWARF 2 extensions.  */
 | ||||||
|  |    .debug_weaknames 0 : { *(.debug_weaknames) } | ||||||
|  |    .debug_funcnames 0 : { *(.debug_funcnames) } | ||||||
|  |    .debug_typenames 0 : { *(.debug_typenames) } | ||||||
|  |    .debug_varnames  0 : { *(.debug_varnames) } | ||||||
|  |   | ||||||
|  | -  /* DWARF 3 */
 | ||||||
|  | +  /* DWARF 3.  */
 | ||||||
|  |    .debug_pubtypes 0 : { *(.debug_pubtypes) } | ||||||
|  |    .debug_ranges   0 : { *(.debug_ranges) } | ||||||
|  |   | ||||||
|  | -  /* DWARF Extension.  */
 | ||||||
|  | -  .debug_macro    0 : { *(.debug_macro) }
 | ||||||
|  | +  /* DWARF 5.  */
 | ||||||
|  |    .debug_addr     0 : { *(.debug_addr) } | ||||||
|  | +  .debug_line_str 0 : { *(.debug_line_str) }
 | ||||||
|  | +  .debug_loclists 0 : { *(.debug_loclists) }
 | ||||||
|  | +  .debug_macro    0 : { *(.debug_macro) }
 | ||||||
|  | +  .debug_names    0 : { *(.debug_names) }
 | ||||||
|  | +  .debug_rnglists 0 : { *(.debug_rnglists) }
 | ||||||
|  | +  .debug_str_offsets 0 : { *(.debug_str_offsets) }
 | ||||||
|  | +  .debug_sup      0 : { *(.debug_sup) }
 | ||||||
|  |  EOF | ||||||
							
								
								
									
										11
									
								
								SOURCES/binutils-libiberty-sha1.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								SOURCES/binutils-libiberty-sha1.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | --- binutils.orig/libiberty/sha1.c	2021-05-07 10:47:11.572773217 +0100
 | ||||||
|  | +++ binutils-2.35.2/libiberty/sha1.c	2021-05-07 10:47:16.014741009 +0100
 | ||||||
|  | @@ -258,7 +258,7 @@ sha1_process_bytes (const void *buffer,
 | ||||||
|  |  	{ | ||||||
|  |  	  sha1_process_block (ctx->buffer, 64, ctx); | ||||||
|  |  	  left_over -= 64; | ||||||
|  | -	  memcpy (ctx->buffer, &ctx->buffer[16], left_over);
 | ||||||
|  | +	  memmove (ctx->buffer, &ctx->buffer[16], left_over);
 | ||||||
|  |  	} | ||||||
|  |        ctx->buflen = left_over; | ||||||
|  |      } | ||||||
							
								
								
									
										11
									
								
								SOURCES/binutils-linker-string-copy.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								SOURCES/binutils-linker-string-copy.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | --- binutils.orig/ld/pe-dll.c	2021-05-07 10:47:12.145769068 +0100
 | ||||||
|  | +++ binutils-2.35.2/ld/pe-dll.c	2021-05-07 11:01:43.000450119 +0100
 | ||||||
|  | @@ -3032,7 +3032,7 @@ pe_find_cdecl_alias_match (struct bfd_li
 | ||||||
|  |  	  if (pe_details->underscored) | ||||||
|  |  	    lname[0] = '_'; | ||||||
|  |  	  else | ||||||
|  | -	    strcpy (lname, lname + 1);
 | ||||||
|  | +	    memmove (lname, lname + 1, strlen (lname));
 | ||||||
|  |  	  key.key = lname; | ||||||
|  |  	  kv = bsearch (&key, udef_table, undef_count, | ||||||
|  |  			sizeof (struct key_value), undef_sort_cmp); | ||||||
							
								
								
									
										182
									
								
								SOURCES/binutils-plugin-as-needed.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								SOURCES/binutils-plugin-as-needed.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,182 @@ | |||||||
|  | --- binutils.orig/bfd/elflink.c	2020-11-03 11:59:59.966565009 +0000
 | ||||||
|  | +++ binutils-2.35.1/bfd/elflink.c	2020-11-03 12:07:34.691991602 +0000
 | ||||||
|  | @@ -4477,7 +4477,12 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  	      h = (struct elf_link_hash_entry *) p; | ||||||
|  |  	      entsize += htab->root.table.entsize; | ||||||
|  |  	      if (h->root.type == bfd_link_hash_warning) | ||||||
|  | -		entsize += htab->root.table.entsize;
 | ||||||
|  | +		{
 | ||||||
|  | +		  entsize += htab->root.table.entsize;
 | ||||||
|  | +		  h = (struct elf_link_hash_entry *) h->root.u.i.link;
 | ||||||
|  | +		}
 | ||||||
|  | +	      if (h->root.type == bfd_link_hash_common)
 | ||||||
|  | +		entsize += sizeof (*h->root.u.c.p);
 | ||||||
|  |  	    } | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | @@ -4521,14 +4526,20 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |   | ||||||
|  |  	  for (p = htab->root.table.table[i]; p != NULL; p = p->next) | ||||||
|  |  	    { | ||||||
|  | -	      memcpy (old_ent, p, htab->root.table.entsize);
 | ||||||
|  | -	      old_ent = (char *) old_ent + htab->root.table.entsize;
 | ||||||
|  |  	      h = (struct elf_link_hash_entry *) p; | ||||||
|  | +	      memcpy (old_ent, h, htab->root.table.entsize);
 | ||||||
|  | +	      old_ent = (char *) old_ent + htab->root.table.entsize;
 | ||||||
|  |  	      if (h->root.type == bfd_link_hash_warning) | ||||||
|  |  		{ | ||||||
|  | -		  memcpy (old_ent, h->root.u.i.link, htab->root.table.entsize);
 | ||||||
|  | +		  h = (struct elf_link_hash_entry *) h->root.u.i.link;
 | ||||||
|  | +		  memcpy (old_ent, h, htab->root.table.entsize);
 | ||||||
|  |  		  old_ent = (char *) old_ent + htab->root.table.entsize; | ||||||
|  |  		} | ||||||
|  | +	      if (h->root.type == bfd_link_hash_common)
 | ||||||
|  | +		{
 | ||||||
|  | +		  memcpy (old_ent, h->root.u.c.p, sizeof (*h->root.u.c.p));
 | ||||||
|  | +		  old_ent = (char *) old_ent + sizeof (*h->root.u.c.p);
 | ||||||
|  | +		}
 | ||||||
|  |  	    } | ||||||
|  |  	} | ||||||
|  |      } | ||||||
|  | @@ -4899,7 +4910,8 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |        if (! (_bfd_generic_link_add_one_symbol | ||||||
|  | -	     (info, abfd, name, flags, sec, value, NULL, FALSE, bed->collect,
 | ||||||
|  | +	     (info, abfd, name, flags, sec, value,
 | ||||||
|  | +	      NULL, FALSE, bed->collect,
 | ||||||
|  |  	      (struct bfd_link_hash_entry **) sym_hash))) | ||||||
|  |  	goto error_free_vers; | ||||||
|  |   | ||||||
|  | @@ -4970,11 +4982,10 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  	     object and a shared object.  */ | ||||||
|  |  	  bfd_boolean dynsym = FALSE; | ||||||
|  |   | ||||||
|  | -	  /* Plugin symbols aren't normal.  Don't set def_regular or
 | ||||||
|  | -	     ref_regular for them, or make them dynamic.  */
 | ||||||
|  | +	  /* Plugin symbols aren't normal.  Don't set def/ref flags.  */
 | ||||||
|  |  	  if ((abfd->flags & BFD_PLUGIN) != 0) | ||||||
|  |  	    ; | ||||||
|  | -	  else if (! dynamic)
 | ||||||
|  | +	  else if (!dynamic)
 | ||||||
|  |  	    { | ||||||
|  |  	      if (! definition) | ||||||
|  |  		{ | ||||||
|  | @@ -4991,14 +5002,6 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  		      h->ref_dynamic = 1; | ||||||
|  |  		    } | ||||||
|  |  		} | ||||||
|  | -
 | ||||||
|  | -	      /* If the indirect symbol has been forced local, don't
 | ||||||
|  | -		 make the real symbol dynamic.  */
 | ||||||
|  | -	      if ((h == hi || !hi->forced_local)
 | ||||||
|  | -		  && (bfd_link_dll (info)
 | ||||||
|  | -		      || h->def_dynamic
 | ||||||
|  | -		      || h->ref_dynamic))
 | ||||||
|  | -		dynsym = TRUE;
 | ||||||
|  |  	    } | ||||||
|  |  	  else | ||||||
|  |  	    { | ||||||
|  | @@ -5012,14 +5015,25 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  		  h->def_dynamic = 1; | ||||||
|  |  		  hi->def_dynamic = 1; | ||||||
|  |  		} | ||||||
|  | +	    }
 | ||||||
|  |   | ||||||
|  | -	      /* If the indirect symbol has been forced local, don't
 | ||||||
|  | -		 make the real symbol dynamic.  */
 | ||||||
|  | -	      if ((h == hi || !hi->forced_local)
 | ||||||
|  | -		  && (h->def_regular
 | ||||||
|  | -		      || h->ref_regular
 | ||||||
|  | -		      || (h->is_weakalias
 | ||||||
|  | -			  && weakdef (h)->dynindx != -1)))
 | ||||||
|  | +	  /* If an indirect symbol has been forced local, don't
 | ||||||
|  | +	     make the real symbol dynamic.  */
 | ||||||
|  | +	  if (h != hi && hi->forced_local)
 | ||||||
|  | +	    ;
 | ||||||
|  | +	  else if (!dynamic)
 | ||||||
|  | +	    {
 | ||||||
|  | +	      if (bfd_link_dll (info)
 | ||||||
|  | +		  || h->def_dynamic
 | ||||||
|  | +		  || h->ref_dynamic)
 | ||||||
|  | +		dynsym = TRUE;
 | ||||||
|  | +	    }
 | ||||||
|  | +	  else
 | ||||||
|  | +	    {
 | ||||||
|  | +	      if (h->def_regular
 | ||||||
|  | +		  || h->ref_regular
 | ||||||
|  | +		  || (h->is_weakalias
 | ||||||
|  | +		      && weakdef (h)->dynindx != -1))
 | ||||||
|  |  		dynsym = TRUE; | ||||||
|  |  	    } | ||||||
|  |   | ||||||
|  | @@ -5214,6 +5228,9 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  	      && definition | ||||||
|  |  	      && ((dynsym | ||||||
|  |  		   && h->ref_regular_nonweak) | ||||||
|  | +		  || (old_bfd != NULL
 | ||||||
|  | +		      && (old_bfd->flags & BFD_PLUGIN) != 0
 | ||||||
|  | +		      && bind != STB_WEAK)
 | ||||||
|  |  		  || (h->ref_dynamic_nonweak | ||||||
|  |  		      && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0 | ||||||
|  |  		      && !on_needed_list (elf_dt_name (abfd), | ||||||
|  | @@ -5338,49 +5355,31 @@ elf_link_add_object_symbols (bfd *abfd,
 | ||||||
|  |  	{ | ||||||
|  |  	  struct bfd_hash_entry *p; | ||||||
|  |  	  struct elf_link_hash_entry *h; | ||||||
|  | -	  bfd_size_type size;
 | ||||||
|  | -	  unsigned int alignment_power;
 | ||||||
|  |  	  unsigned int non_ir_ref_dynamic; | ||||||
|  |   | ||||||
|  |  	  for (p = htab->root.table.table[i]; p != NULL; p = p->next) | ||||||
|  |  	    { | ||||||
|  | -	      h = (struct elf_link_hash_entry *) p;
 | ||||||
|  | -	      if (h->root.type == bfd_link_hash_warning)
 | ||||||
|  | -		h = (struct elf_link_hash_entry *) h->root.u.i.link;
 | ||||||
|  | -
 | ||||||
|  | -	      /* Preserve the maximum alignment and size for common
 | ||||||
|  | -		 symbols even if this dynamic lib isn't on DT_NEEDED
 | ||||||
|  | -		 since it can still be loaded at run time by another
 | ||||||
|  | -		 dynamic lib.  */
 | ||||||
|  | -	      if (h->root.type == bfd_link_hash_common)
 | ||||||
|  | -		{
 | ||||||
|  | -		  size = h->root.u.c.size;
 | ||||||
|  | -		  alignment_power = h->root.u.c.p->alignment_power;
 | ||||||
|  | -		}
 | ||||||
|  | -	      else
 | ||||||
|  | -		{
 | ||||||
|  | -		  size = 0;
 | ||||||
|  | -		  alignment_power = 0;
 | ||||||
|  | -		}
 | ||||||
|  |  	      /* Preserve non_ir_ref_dynamic so that this symbol | ||||||
|  |  		 will be exported when the dynamic lib becomes needed | ||||||
|  |  		 in the second pass.  */ | ||||||
|  | +	      h = (struct elf_link_hash_entry *) p;
 | ||||||
|  | +	      if (h->root.type == bfd_link_hash_warning)
 | ||||||
|  | +		h = (struct elf_link_hash_entry *) h->root.u.i.link;
 | ||||||
|  |  	      non_ir_ref_dynamic = h->root.non_ir_ref_dynamic; | ||||||
|  | -	      memcpy (p, old_ent, htab->root.table.entsize);
 | ||||||
|  | -	      old_ent = (char *) old_ent + htab->root.table.entsize;
 | ||||||
|  | +
 | ||||||
|  |  	      h = (struct elf_link_hash_entry *) p; | ||||||
|  | +	      memcpy (h, old_ent, htab->root.table.entsize);
 | ||||||
|  | +	      old_ent = (char *) old_ent + htab->root.table.entsize;
 | ||||||
|  |  	      if (h->root.type == bfd_link_hash_warning) | ||||||
|  |  		{ | ||||||
|  | -		  memcpy (h->root.u.i.link, old_ent, htab->root.table.entsize);
 | ||||||
|  | -		  old_ent = (char *) old_ent + htab->root.table.entsize;
 | ||||||
|  |  		  h = (struct elf_link_hash_entry *) h->root.u.i.link; | ||||||
|  | +		  memcpy (h, old_ent, htab->root.table.entsize);
 | ||||||
|  | +		  old_ent = (char *) old_ent + htab->root.table.entsize;
 | ||||||
|  |  		} | ||||||
|  |  	      if (h->root.type == bfd_link_hash_common) | ||||||
|  |  		{ | ||||||
|  | -		  if (size > h->root.u.c.size)
 | ||||||
|  | -		    h->root.u.c.size = size;
 | ||||||
|  | -		  if (alignment_power > h->root.u.c.p->alignment_power)
 | ||||||
|  | -		    h->root.u.c.p->alignment_power = alignment_power;
 | ||||||
|  | +		  memcpy (h->root.u.c.p, old_ent, sizeof (*h->root.u.c.p));
 | ||||||
|  | +		  old_ent = (char *) old_ent + sizeof (*h->root.u.c.p);
 | ||||||
|  |  		} | ||||||
|  |  	      h->root.non_ir_ref_dynamic = non_ir_ref_dynamic; | ||||||
|  |  	    } | ||||||
							
								
								
									
										39
									
								
								SOURCES/binutils-ppc-annobin-disassembly.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								SOURCES/binutils-ppc-annobin-disassembly.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | |||||||
|  | --- binutils.orig/opcodes/ppc-dis.c	2020-09-11 10:55:56.243724026 +0100
 | ||||||
|  | +++ binutils-2.35/opcodes/ppc-dis.c	2020-09-11 10:57:51.363934217 +0100
 | ||||||
|  | @@ -399,12 +399,36 @@ static unsigned short vle_opcd_indices[V
 | ||||||
|  |  #define SPE2_OPCD_SEGS (1 + SPE2_XOP_TO_SEG (SPE2_XOP (-1))) | ||||||
|  |  static unsigned short spe2_opcd_indices[SPE2_OPCD_SEGS + 1]; | ||||||
|  |   | ||||||
|  | +static bfd_boolean
 | ||||||
|  | +ppc_symbol_is_valid (asymbol *sym,
 | ||||||
|  | +		     struct disassemble_info *info ATTRIBUTE_UNUSED)
 | ||||||
|  | +{
 | ||||||
|  | +  elf_symbol_type * est;
 | ||||||
|  | +
 | ||||||
|  | +  if (sym == NULL)
 | ||||||
|  | +    return FALSE;
 | ||||||
|  | +
 | ||||||
|  | +  est = elf_symbol_from (NULL, sym);
 | ||||||
|  | +  
 | ||||||
|  | +  /* Ignore ELF hidden, local, no-type symbols.
 | ||||||
|  | +     These are generated by annobin.  */
 | ||||||
|  | +  if (est != NULL
 | ||||||
|  | +      && ELF_ST_VISIBILITY (est->internal_elf_sym.st_other) == STV_HIDDEN
 | ||||||
|  | +      && ELF_ST_BIND (est->internal_elf_sym.st_info) == STB_LOCAL
 | ||||||
|  | +      && ELF_ST_TYPE (est->internal_elf_sym.st_info) == STT_NOTYPE)
 | ||||||
|  | +    return FALSE;
 | ||||||
|  | +
 | ||||||
|  | +  return TRUE;
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  /* Calculate opcode table indices to speed up disassembly, | ||||||
|  |     and init dialect.  */ | ||||||
|  |   | ||||||
|  |  void | ||||||
|  |  disassemble_init_powerpc (struct disassemble_info *info) | ||||||
|  |  { | ||||||
|  | +  info->symbol_is_valid = ppc_symbol_is_valid;
 | ||||||
|  | +
 | ||||||
|  |    if (powerpc_opcd_indices[PPC_OPCD_SEGS] == 0) | ||||||
|  |      { | ||||||
|  |        unsigned seg, idx, op; | ||||||
							
								
								
									
										36
									
								
								SOURCES/binutils-ppc-weak-undefined-plt-relocs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								SOURCES/binutils-ppc-weak-undefined-plt-relocs.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | Only in binutils-2.36.1/bfd: ChangeLog.orig | ||||||
|  | Only in binutils-2.36.1/bfd: ChangeLog.rej | ||||||
|  | diff -rup binutils.orig/bfd/elf32-ppc.c binutils-2.36.1/bfd/elf32-ppc.c
 | ||||||
|  | --- binutils.orig/bfd/elf32-ppc.c	2021-05-18 11:38:27.644364623 +0100
 | ||||||
|  | +++ binutils-2.36.1/bfd/elf32-ppc.c	2021-05-18 11:44:19.809184838 +0100
 | ||||||
|  | @@ -5289,7 +5289,12 @@ allocate_dynrelocs (struct elf_link_hash
 | ||||||
|  |        for (ent = h->plt.plist; ent != NULL; ent = ent->next) | ||||||
|  |  	if (ent->plt.refcount > 0) | ||||||
|  |  	  { | ||||||
|  | -	    asection *s = htab->elf.splt;
 | ||||||
|  | +	    asection *s;
 | ||||||
|  | +
 | ||||||
|  | +	    if (!ensure_undef_dynamic (info, h))
 | ||||||
|  | +	      return FALSE;
 | ||||||
|  | +
 | ||||||
|  | +	    s = htab->elf.splt;
 | ||||||
|  |   | ||||||
|  |  	    if (!dyn) | ||||||
|  |  	      { | ||||||
|  | Only in binutils-2.36.1/bfd: elf32-ppc.c.orig | ||||||
|  | Only in binutils-2.36.1/bfd: elf32-ppc.c.rej | ||||||
|  | diff -rup binutils.orig/bfd/elf64-ppc.c binutils-2.36.1/bfd/elf64-ppc.c
 | ||||||
|  | --- binutils.orig/bfd/elf64-ppc.c	2021-05-18 11:38:27.646364616 +0100
 | ||||||
|  | +++ binutils-2.36.1/bfd/elf64-ppc.c	2021-05-18 11:41:01.635847814 +0100
 | ||||||
|  | @@ -9819,6 +9819,9 @@ allocate_dynrelocs (struct elf_link_hash
 | ||||||
|  |        for (pent = h->plt.plist; pent != NULL; pent = pent->next) | ||||||
|  |  	if (pent->plt.refcount > 0) | ||||||
|  |  	  { | ||||||
|  | +	    if (!ensure_undef_dynamic (info, h))
 | ||||||
|  | +	      return FALSE;
 | ||||||
|  | +
 | ||||||
|  |  	    if (!htab->elf.dynamic_sections_created | ||||||
|  |  		|| h->dynindx == -1) | ||||||
|  |  	      { | ||||||
|  | Only in binutils-2.36.1/bfd: elf64-ppc.c.orig | ||||||
|  | Only in binutils-2.36.1/bfd: elf64-ppc.c.rej | ||||||
							
								
								
									
										42
									
								
								SOURCES/binutils-ppc64le-note-merge.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								SOURCES/binutils-ppc64le-note-merge.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | |||||||
|  | --- binutils.orig/binutils/objcopy.c	2021-02-18 11:35:48.062479490 +0000
 | ||||||
|  | +++ binutils-2.30/binutils/objcopy.c	2021-02-18 11:36:52.207071148 +0000
 | ||||||
|  | @@ -2224,6 +2224,11 @@ merge_gnu_build_notes (bfd *          ab
 | ||||||
|  |  	  goto done; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | +      if (start > end)
 | ||||||
|  | +	/* This can happen with PPC64LE binaries where empty notes are
 | ||||||
|  | +	   encoded as start = end + 4.  */
 | ||||||
|  | +	start = end;
 | ||||||
|  | +
 | ||||||
|  |        if (is_open_note (pnote)) | ||||||
|  |  	{ | ||||||
|  |  	  if (start) | ||||||
|  | --- binutils.orig/binutils/objcopy.c	2021-02-22 10:44:20.107263089 +0000
 | ||||||
|  | +++ binutils-2.35.1/binutils/objcopy.c	2021-02-22 16:07:12.134344229 +0000
 | ||||||
|  | @@ -2243,23 +2243,8 @@ merge_gnu_build_notes (bfd *          ab
 | ||||||
|  |  	  break; | ||||||
|  |   | ||||||
|  |  	case 8: | ||||||
|  | -	  if (! is_64bit (abfd))
 | ||||||
|  | -	    {
 | ||||||
|  | -	      start = bfd_get_32 (abfd, pnote->note.descdata);
 | ||||||
|  | -	      end = bfd_get_32 (abfd, pnote->note.descdata + 4);
 | ||||||
|  | -	    }
 | ||||||
|  | -	  else
 | ||||||
|  | -	    {
 | ||||||
|  | -	      start = bfd_get_64 (abfd, pnote->note.descdata);
 | ||||||
|  | -	      /* FIXME: For version 1 and 2 notes we should try to
 | ||||||
|  | -		 calculate the end address by finding a symbol whose
 | ||||||
|  | -		 value is START, and then adding in its size.
 | ||||||
|  | -
 | ||||||
|  | -		 For now though, since v1 and v2 was not intended to
 | ||||||
|  | -		 handle gaps, we chose an artificially large end
 | ||||||
|  | -		 address.  */
 | ||||||
|  | -	      end = (bfd_vma) -1;
 | ||||||
|  | -	    }
 | ||||||
|  | +	  start = bfd_get_32 (abfd, pnote->note.descdata);
 | ||||||
|  | +	  end = bfd_get_32 (abfd, pnote->note.descdata + 4);
 | ||||||
|  |  	  break; | ||||||
|  |   | ||||||
|  |  	case 16: | ||||||
							
								
								
									
										19
									
								
								SOURCES/binutils-readelf-no-warn-gaps.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								SOURCES/binutils-readelf-no-warn-gaps.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | --- binutils.orig/binutils/readelf.c	2021-02-22 10:44:20.142262864 +0000
 | ||||||
|  | +++ binutils-2.35.1/binutils/readelf.c	2021-02-22 10:45:25.646842120 +0000
 | ||||||
|  | @@ -19285,6 +19285,7 @@ print_gnu_build_attribute_description (E
 | ||||||
|  |   | ||||||
|  |    if (is_open_attr) | ||||||
|  |      { | ||||||
|  | +#if 0 /* Suppressed because these gaps are no longer significant.  */
 | ||||||
|  |        /* FIXME: Need to properly allow for section alignment. | ||||||
|  |  	 16 is just the alignment used on x86_64.  */ | ||||||
|  |        if (global_end > 0 | ||||||
|  | @@ -19295,7 +19296,7 @@ print_gnu_build_attribute_description (E
 | ||||||
|  |  	  && same_section (filedata, start, global_end)) | ||||||
|  |  	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; | ||||||
|  |   | ||||||
							
								
								
									
										35
									
								
								SOURCES/binutils-readelf-other-sym-info.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								SOURCES/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 | ||||||
							
								
								
									
										109
									
								
								SOURCES/binutils-recursive-debuglink-following.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								SOURCES/binutils-recursive-debuglink-following.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,109 @@ | |||||||
|  | --- binutils.orig/binutils/dwarf.c	2020-10-15 12:13:21.960799738 +0100
 | ||||||
|  | +++ binutils-2.35.1/binutils/dwarf.c	2020-10-15 13:02:39.454692627 +0100
 | ||||||
|  | @@ -10427,7 +10427,7 @@ load_separate_debug_info (const char *
 | ||||||
|  |      { | ||||||
|  |        warn (_("Corrupt debuglink section: %s\n"), | ||||||
|  |  	    xlink->name ? xlink->name : xlink->uncompressed_name); | ||||||
|  | -      return FALSE;
 | ||||||
|  | +      return NULL;
 | ||||||
|  |      } | ||||||
|  |       | ||||||
|  |    /* Attempt to locate the separate file. | ||||||
|  | @@ -10587,7 +10587,7 @@ load_separate_debug_info (const char *
 | ||||||
|  |      { | ||||||
|  |        warn (_("failed to open separate debug file: %s\n"), debug_filename); | ||||||
|  |        free (debug_filename); | ||||||
|  | -      return FALSE;
 | ||||||
|  | +      return NULL;
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |    /* FIXME: We do not check to see if there are any other separate debug info | ||||||
|  | @@ -10632,6 +10632,52 @@ load_dwo_file (const char * main_filenam
 | ||||||
|  |    return separate_handle; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +/* Load a debuglink section and/or a debugaltlink section, if either are present.
 | ||||||
|  | +   Recursively check the loaded files for more of these sections.
 | ||||||
|  | +   FIXME: Should also check for DWO_* entries in the newlu loaded files.  */
 | ||||||
|  | +
 | ||||||
|  | +static void
 | ||||||
|  | +check_for_and_load_links (void * file, const char * filename)
 | ||||||
|  | +{
 | ||||||
|  | +  void * handle = NULL;
 | ||||||
|  | +
 | ||||||
|  | +  if (load_debug_section (gnu_debugaltlink, file))
 | ||||||
|  | +    {
 | ||||||
|  | +      Build_id_data build_id_data;
 | ||||||
|  | +
 | ||||||
|  | +      handle = load_separate_debug_info (filename,
 | ||||||
|  | +					 & debug_displays[gnu_debugaltlink].section,
 | ||||||
|  | +					 parse_gnu_debugaltlink,
 | ||||||
|  | +					 check_gnu_debugaltlink,
 | ||||||
|  | +					 & build_id_data,
 | ||||||
|  | +					 file);
 | ||||||
|  | +      if (handle)
 | ||||||
|  | +	{
 | ||||||
|  | +	  assert (handle == first_separate_info->handle);
 | ||||||
|  | +	  check_for_and_load_links (first_separate_info->handle,
 | ||||||
|  | +				    first_separate_info->filename);
 | ||||||
|  | +	}
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  | +  if (load_debug_section (gnu_debuglink, file))
 | ||||||
|  | +    {
 | ||||||
|  | +      unsigned long crc32;
 | ||||||
|  | +
 | ||||||
|  | +      handle = load_separate_debug_info (filename,
 | ||||||
|  | +					 & debug_displays[gnu_debuglink].section,
 | ||||||
|  | +					 parse_gnu_debuglink,
 | ||||||
|  | +					 check_gnu_debuglink,
 | ||||||
|  | +					 & crc32,
 | ||||||
|  | +					 file);
 | ||||||
|  | +      if (handle)
 | ||||||
|  | +	{
 | ||||||
|  | +	  assert (handle == first_separate_info->handle);
 | ||||||
|  | +	  check_for_and_load_links (first_separate_info->handle,
 | ||||||
|  | +				    first_separate_info->filename);
 | ||||||
|  | +	}
 | ||||||
|  | +    }
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  /* Load the separate debug info file(s) attached to FILE, if any exist. | ||||||
|  |     Returns TRUE if any were found, FALSE otherwise. | ||||||
|  |     If TRUE is returned then the linked list starting at first_separate_info | ||||||
|  | @@ -10707,34 +10753,10 @@ load_separate_debug_files (void * file,
 | ||||||
|  |      return FALSE; | ||||||
|  |   | ||||||
|  |    /* FIXME: We do not check for the presence of both link sections in the same file.  */ | ||||||
|  | -  /* FIXME: We do not check the separate debug info file to see if it too contains debuglinks.  */
 | ||||||
|  |    /* FIXME: We do not check for the presence of multiple, same-name debuglink sections.  */ | ||||||
|  |    /* FIXME: We do not check for the presence of a dwo link as well as a debuglink.  */ | ||||||
|  |   | ||||||
|  | -  if (load_debug_section (gnu_debugaltlink, file))
 | ||||||
|  | -    {
 | ||||||
|  | -      Build_id_data * build_id_data;
 | ||||||
|  | -
 | ||||||
|  | -      load_separate_debug_info (filename,
 | ||||||
|  | -				& debug_displays[gnu_debugaltlink].section,
 | ||||||
|  | -				parse_gnu_debugaltlink,
 | ||||||
|  | -				check_gnu_debugaltlink,
 | ||||||
|  | -				& build_id_data,
 | ||||||
|  | -				file);
 | ||||||
|  | -    }
 | ||||||
|  | -
 | ||||||
|  | -  if (load_debug_section (gnu_debuglink, file))
 | ||||||
|  | -    {
 | ||||||
|  | -      unsigned long crc32;
 | ||||||
|  | -
 | ||||||
|  | -      load_separate_debug_info (filename,
 | ||||||
|  | -				& debug_displays[gnu_debuglink].section,
 | ||||||
|  | -				parse_gnu_debuglink,
 | ||||||
|  | -				check_gnu_debuglink,
 | ||||||
|  | -				& crc32,
 | ||||||
|  | -				file);
 | ||||||
|  | -    }
 | ||||||
|  | -
 | ||||||
|  | +  check_for_and_load_links (file, filename);
 | ||||||
|  |    if (first_separate_info != NULL) | ||||||
|  |      return TRUE; | ||||||
|  |   | ||||||
							
								
								
									
										223
									
								
								SOURCES/binutils-s390-arch14-insns.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										223
									
								
								SOURCES/binutils-s390-arch14-insns.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,223 @@ | |||||||
|  | diff -rup binutils.orig/gas/config/tc-s390.c binutils-2.35.1/gas/config/tc-s390.c
 | ||||||
|  | --- binutils.orig/gas/config/tc-s390.c	2021-02-19 11:44:24.240877612 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/config/tc-s390.c	2021-02-19 11:46:05.222554434 +0000
 | ||||||
|  | @@ -292,6 +292,8 @@ s390_parse_cpu (const char *         arg
 | ||||||
|  |      { STRING_COMMA_LEN ("z14"), STRING_COMMA_LEN ("arch12"), | ||||||
|  |        S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX }, | ||||||
|  |      { STRING_COMMA_LEN ("z15"), STRING_COMMA_LEN ("arch13"), | ||||||
|  | +      S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
 | ||||||
|  | +    { STRING_COMMA_LEN (""), STRING_COMMA_LEN ("arch14"),
 | ||||||
|  |        S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX } | ||||||
|  |    }; | ||||||
|  |    static struct | ||||||
|  | diff -rup binutils.orig/gas/doc/c-s390.texi binutils-2.35.1/gas/doc/c-s390.texi
 | ||||||
|  | --- binutils.orig/gas/doc/c-s390.texi	2021-02-19 11:44:24.236877625 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/doc/c-s390.texi	2021-02-19 11:46:05.223554431 +0000
 | ||||||
|  | @@ -18,7 +18,7 @@ and eleven chip levels. The architecture
 | ||||||
|  |  Architecture (ESA) and the newer z/Architecture mode. The chip levels | ||||||
|  |  are g5 (or arch3), g6, z900 (or arch5), z990 (or arch6), z9-109, z9-ec | ||||||
|  |  (or arch7), z10 (or arch8), z196 (or arch9), zEC12 (or arch10), z13 | ||||||
|  | -(or arch11), z14 (or arch12), and z15 (or arch13).
 | ||||||
|  | +(or arch11), z14 (or arch12), z15 (or arch13), or arch14.
 | ||||||
|  |   | ||||||
|  |  @menu | ||||||
|  |  * s390 Options::                Command-line Options. | ||||||
|  | @@ -70,8 +70,9 @@ are recognized:
 | ||||||
|  |  @code{z196} (or @code{arch9}), | ||||||
|  |  @code{zEC12} (or @code{arch10}), | ||||||
|  |  @code{z13} (or @code{arch11}), | ||||||
|  | -@code{z14} (or @code{arch12}), and
 | ||||||
|  | -@code{z15} (or @code{arch13}).
 | ||||||
|  | +@code{z14} (or @code{arch12}),
 | ||||||
|  | +@code{z15} (or @code{arch13}), and
 | ||||||
|  | +@code{arch14}.
 | ||||||
|  |   | ||||||
|  |  Assembling an instruction that is not supported on the target | ||||||
|  |  processor results in an error message. | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/s390.exp binutils-2.35.1/gas/testsuite/gas/s390/s390.exp
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/s390.exp	2021-02-19 11:44:24.338877299 +0000
 | ||||||
|  | +++ binutils-2.35.1/gas/testsuite/gas/s390/s390.exp	2021-02-19 11:46:05.223554431 +0000
 | ||||||
|  | @@ -31,6 +31,7 @@ if [expr [istarget "s390-*-*"] ||  [ista
 | ||||||
|  |      run_dump_test "zarch-z13" "{as -m64} {as -march=z13}" | ||||||
|  |      run_dump_test "zarch-arch12" "{as -m64} {as -march=arch12}" | ||||||
|  |      run_dump_test "zarch-arch13" "{as -m64} {as -march=arch13}" | ||||||
|  | +    run_dump_test "zarch-arch14" "{as -m64} {as -march=arch14}"
 | ||||||
|  |      run_dump_test "zarch-reloc" "{as -m64}" | ||||||
|  |      run_dump_test "zarch-operands" "{as -m64} {as -march=z9-109}" | ||||||
|  |      run_dump_test "zarch-machine" "{as -m64} {as -march=z900}" | ||||||
|  | diff -rup binutils.orig/include/opcode/s390.h binutils-2.35.1/include/opcode/s390.h
 | ||||||
|  | --- binutils.orig/include/opcode/s390.h	2021-02-19 11:44:23.926878617 +0000
 | ||||||
|  | +++ binutils-2.35.1/include/opcode/s390.h	2021-02-19 11:46:05.223554431 +0000
 | ||||||
|  | @@ -44,6 +44,7 @@ enum s390_opcode_cpu_val
 | ||||||
|  |      S390_OPCODE_Z13, | ||||||
|  |      S390_OPCODE_ARCH12, | ||||||
|  |      S390_OPCODE_ARCH13, | ||||||
|  | +    S390_OPCODE_ARCH14,
 | ||||||
|  |      S390_OPCODE_MAXCPU | ||||||
|  |    }; | ||||||
|  |   | ||||||
|  | diff -rup binutils.orig/opcodes/s390-mkopc.c binutils-2.35.1/opcodes/s390-mkopc.c
 | ||||||
|  | --- binutils.orig/opcodes/s390-mkopc.c	2021-02-19 11:44:23.947878550 +0000
 | ||||||
|  | +++ binutils-2.35.1/opcodes/s390-mkopc.c	2021-02-19 11:46:05.223554431 +0000
 | ||||||
|  | @@ -380,6 +380,8 @@ main (void)
 | ||||||
|  |        else if (strcmp (cpu_string, "z15") == 0 | ||||||
|  |  	       || strcmp (cpu_string, "arch13") == 0) | ||||||
|  |  	min_cpu = S390_OPCODE_ARCH13; | ||||||
|  | +      else if (strcmp (cpu_string, "arch14") == 0)
 | ||||||
|  | +	min_cpu = S390_OPCODE_ARCH14;
 | ||||||
|  |        else { | ||||||
|  |  	fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string); | ||||||
|  |  	exit (1); | ||||||
|  | diff -rup binutils.orig/opcodes/s390-opc.txt binutils-2.35.1/opcodes/s390-opc.txt
 | ||||||
|  | --- binutils.orig/opcodes/s390-opc.txt	2021-02-19 11:44:23.943878563 +0000
 | ||||||
|  | +++ binutils-2.35.1/opcodes/s390-opc.txt	2021-02-19 11:46:05.224554428 +0000
 | ||||||
|  | @@ -2000,3 +2000,31 @@ e60000000052 vcvbg VRR_RV0UU "vector con
 | ||||||
|  |  # Message Security Assist Extension 9 | ||||||
|  |   | ||||||
|  |  b93a kdsa RRE_RR "compute digital signature authentication" arch13 zarch | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  | +# arch14 instructions
 | ||||||
|  | +
 | ||||||
|  | +e60000000074 vschp VRR_VVV0U0U " " arch14 zarch
 | ||||||
|  | +e60000002074 vschsp VRR_VVV0U0 " " arch14 zarch
 | ||||||
|  | +e60000003074 vschdp VRR_VVV0U0 " " arch14 zarch
 | ||||||
|  | +e60000004074 vschxp VRR_VVV0U0 " " arch14 zarch
 | ||||||
|  | +e6000000007c vscshp VRR_VVV " " arch14 zarch
 | ||||||
|  | +e6000000007d vcsph VRR_VVV0U0 " " arch14 zarch
 | ||||||
|  | +e60000000051 vclzdp VRR_VV0U2 " " arch14 zarch
 | ||||||
|  | +e60000000070 vpkzr VRI_VVV0UU2 " " arch14 zarch
 | ||||||
|  | +e60000000072 vsrpr VRI_VVV0UU2 " " arch14 zarch
 | ||||||
|  | +e60000000054 vupkzh VRR_VV0U2 " " arch14 zarch
 | ||||||
|  | +e6000000005c vupkzl VRR_VV0U2 " " arch14 zarch
 | ||||||
|  | +
 | ||||||
|  | +b93b nnpa RRE_00 " " arch14 zarch
 | ||||||
|  | +e60000000056 vclfnh VRR_VV0UU2 " " arch14 zarch
 | ||||||
|  | +e6000000005e vclfnl VRR_VV0UU2 " " arch14 zarch
 | ||||||
|  | +e60000000075 vcrnf VRR_VVV0UU " " arch14 zarch
 | ||||||
|  | +e6000000005d vcfn VRR_VV0UU2 " " arch14 zarch
 | ||||||
|  | +e60000000055 vcnf VRR_VV0UU2 " " arch14 zarch
 | ||||||
|  | +
 | ||||||
|  | +b98B rdp RRF_RURR2 " " arch14 zarch optparm
 | ||||||
|  | +
 | ||||||
|  | +eb0000000071 lpswey SIY_URD " " arch14 zarch
 | ||||||
|  | +b200 lbear S_RD " " arch14 zarch
 | ||||||
|  | +b201 stbear S_RD " " arch14 zarch
 | ||||||
|  | --- /dev/null	2021-06-16 09:27:04.980898674 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/s390/zarch-arch14.s	2021-06-16 12:05:43.382025025 +0100
 | ||||||
|  | @@ -0,0 +1,24 @@
 | ||||||
|  | +.text
 | ||||||
|  | +foo:
 | ||||||
|  | +	vschp	%v15,%v17,%v20,13,12
 | ||||||
|  | +	vschsp	%v15,%v17,%v20,13
 | ||||||
|  | +	vschdp	%v15,%v17,%v20,13
 | ||||||
|  | +	vschxp	%v15,%v17,%v20,13
 | ||||||
|  | +	vscshp	%v15,%v17,%v20
 | ||||||
|  | +	vcsph	%v15,%v17,%v20,13
 | ||||||
|  | +	vclzdp	%v15,%v17,13
 | ||||||
|  | +	vpkzr	%v15,%v17,%v20,253,12
 | ||||||
|  | +	vsrpr	%v15,%v17,%v20,253,12
 | ||||||
|  | +	vupkzh	%v15,%v17,13
 | ||||||
|  | +	vupkzl	%v15,%v17,13
 | ||||||
|  | +	nnpa
 | ||||||
|  | +	vclfnh	%v15,%v17,13,12
 | ||||||
|  | +	vclfnl	%v15,%v17,13,12
 | ||||||
|  | +	vcrnf	%v15,%v17,%v20,13,12
 | ||||||
|  | +	vcfn	%v15,%v17,13,12
 | ||||||
|  | +	vcnf	%v15,%v17,13,12
 | ||||||
|  | +	rdp	%r6,%r9,%r11
 | ||||||
|  | +	rdp	%r6,%r9,%r11,13
 | ||||||
|  | +	lpswey	-10000(%r6),253
 | ||||||
|  | +	lbear	4000(%r6)
 | ||||||
|  | +	stbear	4000(%r6)
 | ||||||
|  | --- /dev/null	2021-06-16 09:27:04.980898674 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/s390/zarch-arch14.d	2021-06-16 12:05:43.367025112 +0100
 | ||||||
|  | @@ -0,0 +1,31 @@
 | ||||||
|  | +#name: s390x opcode
 | ||||||
|  | +#objdump: -dr
 | ||||||
|  | +
 | ||||||
|  | +.*: +file format .*
 | ||||||
|  | +
 | ||||||
|  | +Disassembly of section .text:
 | ||||||
|  | +
 | ||||||
|  | +.* <foo>:
 | ||||||
|  | +.*:	e6 f1 40 c0 d6 74 [	 ]*vschp	%v15,%v17,%v20,13,12
 | ||||||
|  | +.*:	e6 f1 40 d0 26 74 [	 ]*vschsp	%v15,%v17,%v20,13
 | ||||||
|  | +.*:	e6 f1 40 d0 36 74 [	 ]*vschdp	%v15,%v17,%v20,13
 | ||||||
|  | +.*:	e6 f1 40 d0 46 74 [	 ]*vschxp	%v15,%v17,%v20,13
 | ||||||
|  | +.*:	e6 f1 40 00 06 7c [	 ]*vscshp	%v15,%v17,%v20
 | ||||||
|  | +.*:	e6 f1 40 d0 06 7d [	 ]*vcsph	%v15,%v17,%v20,13
 | ||||||
|  | +.*:	e6 f1 00 d0 04 51 [	 ]*vclzdp	%v15,%v17,13
 | ||||||
|  | +.*:	e6 f1 40 cf d6 70 [	 ]*vpkzr	%v15,%v17,%v20,253,12
 | ||||||
|  | +.*:	e6 f1 40 cf d6 72 [	 ]*vsrpr	%v15,%v17,%v20,253,12
 | ||||||
|  | +.*:	e6 f1 00 d0 04 54 [	 ]*vupkzh	%v15,%v17,13
 | ||||||
|  | +.*:	e6 f1 00 d0 04 5c [	 ]*vupkzl	%v15,%v17,13
 | ||||||
|  | +.*:	b9 3b 00 00 [	 ]*nnpa
 | ||||||
|  | +.*:	e6 f1 00 0c d4 56 [	 ]*vclfnh	%v15,%v17,13,12
 | ||||||
|  | +.*:	e6 f1 00 0c d4 5e [	 ]*vclfnl	%v15,%v17,13,12
 | ||||||
|  | +.*:	e6 f1 40 0c d6 75 [	 ]*vcrnf	%v15,%v17,%v20,13,12
 | ||||||
|  | +.*:	e6 f1 00 0c d4 5d [	 ]*vcfn	%v15,%v17,13,12
 | ||||||
|  | +.*:	e6 f1 00 0c d4 55 [	 ]*vcnf	%v15,%v17,13,12
 | ||||||
|  | +.*:	b9 8b 90 6b [	 ]*rdp	%r6,%r9,%r11
 | ||||||
|  | +.*:	b9 8b 9d 6b [	 ]*rdp	%r6,%r9,%r11,13
 | ||||||
|  | +.*:	eb fd 68 f0 fd 71 [	 ]*lpswey	-10000\(%r6\),253
 | ||||||
|  | +.*:	b2 00 6f a0 [	 ]*lbear	4000\(%r6\)
 | ||||||
|  | +.*:	b2 01 6f a0 [	 ]*stbear	4000\(%r6\)
 | ||||||
|  | +.*:	07 07 [	 ]*nopr	%r7
 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-arch14.d binutils-2.35.2/gas/testsuite/gas/s390/zarch-arch14.d
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-arch14.d	2021-08-16 13:07:33.637204772 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/s390/zarch-arch14.d	2021-08-16 14:26:36.576187751 +0100
 | ||||||
|  | @@ -25,7 +25,8 @@ Disassembly of section .text:
 | ||||||
|  |  .*:	e6 f1 00 0c d4 55 [	 ]*vcnf	%v15,%v17,13,12 | ||||||
|  |  .*:	b9 8b 90 6b [	 ]*rdp	%r6,%r9,%r11 | ||||||
|  |  .*:	b9 8b 9d 6b [	 ]*rdp	%r6,%r9,%r11,13 | ||||||
|  | -.*:	eb fd 68 f0 fd 71 [	 ]*lpswey	-10000\(%r6\),253
 | ||||||
|  | +.*:	eb 00 68 f0 fd 71 [	 ]*lpswey	-10000\(%r6\)
 | ||||||
|  |  .*:	b2 00 6f a0 [	 ]*lbear	4000\(%r6\) | ||||||
|  |  .*:	b2 01 6f a0 [	 ]*stbear	4000\(%r6\) | ||||||
|  | +.*:	b2 8f 5f ff [	 ]*qpaci	4095\(%r5\)
 | ||||||
|  |  .*:	07 07 [	 ]*nopr	%r7 | ||||||
|  | diff -rup binutils.orig/gas/testsuite/gas/s390/zarch-arch14.s binutils-2.35.2/gas/testsuite/gas/s390/zarch-arch14.s
 | ||||||
|  | --- binutils.orig/gas/testsuite/gas/s390/zarch-arch14.s	2021-08-16 13:07:33.636204779 +0100
 | ||||||
|  | +++ binutils-2.35.2/gas/testsuite/gas/s390/zarch-arch14.s	2021-08-16 14:26:36.576187751 +0100
 | ||||||
|  | @@ -19,6 +19,7 @@ foo:
 | ||||||
|  |  	vcnf	%v15,%v17,13,12 | ||||||
|  |  	rdp	%r6,%r9,%r11 | ||||||
|  |  	rdp	%r6,%r9,%r11,13 | ||||||
|  | -	lpswey	-10000(%r6),253
 | ||||||
|  | +	lpswey	-10000(%r6)
 | ||||||
|  |  	lbear	4000(%r6) | ||||||
|  |  	stbear	4000(%r6) | ||||||
|  | +	qpaci	4095(%r5)
 | ||||||
|  | diff -rup binutils.orig/opcodes/s390-opc.c binutils-2.35.2/opcodes/s390-opc.c
 | ||||||
|  | --- binutils.orig/opcodes/s390-opc.c	2021-08-16 13:07:33.358206522 +0100
 | ||||||
|  | +++ binutils-2.35.2/opcodes/s390-opc.c	2021-08-16 14:26:36.600187594 +0100
 | ||||||
|  | @@ -442,6 +442,7 @@ const struct s390_operand s390_operands[
 | ||||||
|  |  #define INSTR_RX_URRD      4, { U4_8,D_20,X_12,B_16,0,0 }        /* e.g. bc    */ | ||||||
|  |  #define INSTR_SI_RD        4, { D_20,B_16,0,0,0,0 }              /* e.g. lpsw  */ | ||||||
|  |  #define INSTR_SI_URD       4, { D_20,B_16,U8_8,0,0,0 }           /* e.g. cli   */ | ||||||
|  | +#define INSTR_SIY_RD       6, { D20_20,B_16,0,0,0,0 }            /* e.g. lpswey*/
 | ||||||
|  |  #define INSTR_SIY_URD      6, { D20_20,B_16,U8_8,0,0,0 }         /* e.g. tmy   */ | ||||||
|  |  #define INSTR_SIY_IRD      6, { D20_20,B_16,I8_8,0,0,0 }         /* e.g. asi   */ | ||||||
|  |  #define INSTR_SIL_RDI      6, { D_20,B_16,I16_32,0,0,0 }         /* e.g. chhsi */ | ||||||
|  | @@ -664,6 +665,7 @@ const struct s390_operand s390_operands[
 | ||||||
|  |  #define MASK_RX_URRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  |  #define MASK_SI_RD        { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  |  #define MASK_SI_URD       { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  | +#define MASK_SIY_RD       { 0xff, 0xff, 0x00, 0x00, 0x00, 0xff }
 | ||||||
|  |  #define MASK_SIY_URD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff } | ||||||
|  |  #define MASK_SIY_IRD      { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff } | ||||||
|  |  #define MASK_SIL_RDI      { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } | ||||||
|  | diff -rup binutils.orig/opcodes/s390-opc.txt binutils-2.35.2/opcodes/s390-opc.txt
 | ||||||
|  | --- binutils.orig/opcodes/s390-opc.txt	2021-08-16 13:07:33.348206585 +0100
 | ||||||
|  | +++ binutils-2.35.2/opcodes/s390-opc.txt	2021-08-16 14:26:36.600187594 +0100
 | ||||||
|  | @@ -2041,6 +2041,8 @@ e60000000055 vcnf VRR_VV0UU2 " " arch14
 | ||||||
|  |   | ||||||
|  |  b98B rdp RRF_RURR2 " " arch14 zarch optparm | ||||||
|  |   | ||||||
|  | -eb0000000071 lpswey SIY_URD " " arch14 zarch
 | ||||||
|  | +eb0000000071 lpswey SIY_RD " " arch14 zarch
 | ||||||
|  |  b200 lbear S_RD " " arch14 zarch | ||||||
|  |  b201 stbear S_RD " " arch14 zarch | ||||||
|  | +
 | ||||||
|  | +b28f qpaci S_RD " " arch14 zarch
 | ||||||
							
								
								
									
										772
									
								
								SOURCES/binutils-s390-build.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										772
									
								
								SOURCES/binutils-s390-build.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,772 @@ | |||||||
|  | diff -rup binutils.orig/libctf/ctf-create.c binutils-2.34.0/libctf/ctf-create.c
 | ||||||
|  | --- binutils.orig/libctf/ctf-create.c	2020-06-16 12:06:28.466468753 +0100
 | ||||||
|  | +++ binutils-2.34.0/libctf/ctf-create.c	2020-06-16 12:16:19.744482839 +0100
 | ||||||
|  | @@ -871,7 +871,8 @@ ctf_add_encoded (ctf_file_t *fp, uint32_
 | ||||||
|  |   | ||||||
|  |    if ((type = ctf_add_generic (fp, flag, name, kind, &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | -
 | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (kind, flag, 0); | ||||||
|  |    dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, CHAR_BIT) | ||||||
|  |  				 / CHAR_BIT); | ||||||
|  | @@ -896,6 +897,8 @@ ctf_add_reftype (ctf_file_t *fp, uint32_
 | ||||||
|  |   | ||||||
|  |    if ((type = ctf_add_generic (fp, flag, NULL, kind, &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (kind, flag, 0); | ||||||
|  |    dtd->dtd_data.ctt_type = (uint32_t) ref; | ||||||
|  | @@ -958,6 +961,8 @@ ctf_add_slice (ctf_file_t *fp, uint32_t
 | ||||||
|  |   | ||||||
|  |    if ((type = ctf_add_generic (fp, flag, NULL, CTF_K_SLICE, &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_SLICE, flag, 0); | ||||||
|  |    dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, CHAR_BIT) | ||||||
|  | @@ -1008,6 +1013,8 @@ ctf_add_array (ctf_file_t *fp, uint32_t
 | ||||||
|  |   | ||||||
|  |    if ((type = ctf_add_generic (fp, flag, NULL, CTF_K_ARRAY, &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_ARRAY, flag, 0); | ||||||
|  |    dtd->dtd_data.ctt_size = 0; | ||||||
|  | @@ -1075,6 +1082,8 @@ ctf_add_function (ctf_file_t *fp, uint32
 | ||||||
|  |        free (vdat); | ||||||
|  |        return CTF_ERR;		   /* errno is set for us.  */ | ||||||
|  |      } | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_FUNCTION, flag, vlen); | ||||||
|  |    dtd->dtd_data.ctt_type = (uint32_t) ctc->ctc_return; | ||||||
|  | @@ -1104,6 +1113,8 @@ ctf_add_struct_sized (ctf_file_t *fp, ui
 | ||||||
|  |    else if ((type = ctf_add_generic (fp, flag, name, CTF_K_STRUCT, | ||||||
|  |  				    &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_STRUCT, flag, 0); | ||||||
|  |   | ||||||
|  | @@ -1141,6 +1152,8 @@ ctf_add_union_sized (ctf_file_t *fp, uin
 | ||||||
|  |    else if ((type = ctf_add_generic (fp, flag, name, CTF_K_UNION, | ||||||
|  |  				    &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_UNION, flag, 0); | ||||||
|  |   | ||||||
|  | @@ -1177,6 +1190,8 @@ ctf_add_enum (ctf_file_t *fp, uint32_t f
 | ||||||
|  |    else if ((type = ctf_add_generic (fp, flag, name, CTF_K_ENUM, | ||||||
|  |  				    &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_ENUM, flag, 0); | ||||||
|  |    dtd->dtd_data.ctt_size = fp->ctf_dmodel->ctd_int; | ||||||
|  | diff -rup binutils.orig/libctf/ctf-types.c binutils-2.34.0/libctf/ctf-types.c
 | ||||||
|  | --- binutils.orig/libctf/ctf-types.c	2020-06-16 12:06:28.466468753 +0100
 | ||||||
|  | +++ binutils-2.34.0/libctf/ctf-types.c	2020-06-16 12:10:58.033563365 +0100
 | ||||||
|  | @@ -748,7 +748,7 @@ ctf_type_encoding (ctf_file_t *fp, ctf_i
 | ||||||
|  |  	case CTF_K_SLICE: | ||||||
|  |  	  { | ||||||
|  |  	    const ctf_slice_t *slice; | ||||||
|  | -	    ctf_encoding_t underlying_en;
 | ||||||
|  | +	    ctf_encoding_t underlying_en = {0};
 | ||||||
|  |  	    slice = &dtd->dtd_u.dtu_slice; | ||||||
|  |   | ||||||
|  |  	    data = ctf_type_encoding (fp, slice->cts_type, &underlying_en); | ||||||
|  | diff -rup binutils.orig/opcodes/s390-mkopc.c binutils-2.34.0/opcodes/s390-mkopc.c
 | ||||||
|  | --- binutils.orig/opcodes/s390-mkopc.c	2020-06-16 12:06:28.447468816 +0100
 | ||||||
|  | +++ binutils-2.34.0/opcodes/s390-mkopc.c	2020-06-16 12:17:10.783311417 +0100
 | ||||||
|  | @@ -168,7 +168,7 @@ insertExpandedMnemonic (char *opcode, ch
 | ||||||
|  |    int mask_start, i = 0, tag_found = 0, reading_number = 0; | ||||||
|  |    int number_p = 0, suffix_p = 0, prefix_p = 0; | ||||||
|  |    const struct s390_cond_ext_format *ext_table; | ||||||
|  | -  int ext_table_length;
 | ||||||
|  | +  int ext_table_length = 0;
 | ||||||
|  |   | ||||||
|  |    if (!(tag = strpbrk (mnemonic, "*$"))) | ||||||
|  |      { | ||||||
|  | Only in binutils.orig/libctf: .#ctf-create.c | ||||||
|  | diff -rup binutils.orig/libctf/ctf-create.c binutils-2.34.0/libctf/ctf-create.c
 | ||||||
|  | --- binutils.orig/libctf/ctf-create.c	2020-06-16 14:49:06.080801319 +0100
 | ||||||
|  | +++ binutils-2.34.0/libctf/ctf-create.c	2020-06-16 14:49:08.046794113 +0100
 | ||||||
|  | @@ -798,6 +798,7 @@ ctf_add_generic (ctf_file_t *fp, uint32_
 | ||||||
|  |  { | ||||||
|  |    ctf_dtdef_t *dtd; | ||||||
|  |    ctf_id_t type; | ||||||
|  | +  *rp = NULL;
 | ||||||
|  |   | ||||||
|  |    if (flag != CTF_ADD_NONROOT && flag != CTF_ADD_ROOT) | ||||||
|  |      return (ctf_set_errno (fp, EINVAL)); | ||||||
|  | diff -rup binutils.orig/opcodes/fr30-ibld.c binutils-2.34.0/opcodes/fr30-ibld.c
 | ||||||
|  | --- binutils.orig/opcodes/fr30-ibld.c	2020-06-16 14:49:06.074801341 +0100
 | ||||||
|  | +++ binutils-2.34.0/opcodes/fr30-ibld.c	2020-06-16 16:43:31.428324833 +0100
 | ||||||
|  | @@ -810,7 +810,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_DIR10 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) << (2)); | ||||||
|  |          fields->f_dir10 = value; | ||||||
|  | @@ -821,7 +821,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_DIR9 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) << (1)); | ||||||
|  |          fields->f_dir9 = value; | ||||||
|  | @@ -829,7 +829,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_DISP10 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 4, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) * (4)); | ||||||
|  |          fields->f_disp10 = value; | ||||||
|  | @@ -840,7 +840,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_DISP9 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 4, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) * (2)); | ||||||
|  |          fields->f_disp9 = value; | ||||||
|  | @@ -865,7 +865,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_LABEL12 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 5, 11, 16, total_length, pc, & value); | ||||||
|  |          value = ((((value) * (2))) + (((pc) + (2)))); | ||||||
|  |          fields->f_rel12 = value; | ||||||
|  | @@ -873,7 +873,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_LABEL9 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 8, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((((value) * (2))) + (((pc) + (2)))); | ||||||
|  |          fields->f_rel9 = value; | ||||||
|  | @@ -881,7 +881,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_M4 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 4, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) | (-16)); | ||||||
|  |          fields->f_m4 = value; | ||||||
|  | @@ -911,7 +911,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_U10 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) << (2)); | ||||||
|  |          fields->f_u10 = value; | ||||||
|  | @@ -928,7 +928,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_UDISP6 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 4, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) << (2)); | ||||||
|  |          fields->f_udisp6 = value; | ||||||
|  | 
 | ||||||
|  | diff -rup binutils.orig/opcodes/fr30-ibld.c binutils-2.34.0/opcodes/fr30-ibld.c
 | ||||||
|  | --- binutils.orig/opcodes/fr30-ibld.c	2020-06-16 17:10:22.540563440 +0100
 | ||||||
|  | +++ binutils-2.34.0/opcodes/fr30-ibld.c	2020-06-16 17:10:48.966468906 +0100
 | ||||||
|  | @@ -903,7 +903,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case FR30_OPERAND_S10 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 8, 16, total_length, pc, & value); | ||||||
|  |          value = ((value) * (4)); | ||||||
|  |          fields->f_s10 = value; | ||||||
|  | Only in binutils-2.34.0/opcodes: fr30-ibld.c~ | ||||||
|  | --- binutils.orig/opcodes/m32c-ibld.c	2020-06-16 17:10:22.531563472 +0100
 | ||||||
|  | +++ binutils-2.34.0/opcodes/m32c-ibld.c	2020-06-16 17:25:48.612258094 +0100
 | ||||||
|  | @@ -1805,7 +1805,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_BIT32RNPREFIXED : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 2, 32, total_length, pc, & value); | ||||||
|  |          value = (((((~ (((USI) (value) >> (1))))) & (1))) | (((((value) << (1))) & (2)))); | ||||||
|  |          fields->f_dst32_rn_prefixed_QI = value; | ||||||
|  | @@ -1813,7 +1813,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_BIT32RNUNPREFIXED : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 2, 32, total_length, pc, & value); | ||||||
|  |          value = (((((~ (((USI) (value) >> (1))))) & (1))) | (((((value) << (1))) & (2)))); | ||||||
|  |          fields->f_dst32_rn_unprefixed_QI = value; | ||||||
|  | @@ -1824,7 +1824,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_BITBASE16_16_U16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  | @@ -1860,7 +1860,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 13, 3, 32, total_length, pc, & fields->f_bitno32_unprefixed); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_16_s16 = value; | ||||||
|  | @@ -1887,7 +1887,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 13, 3, 32, total_length, pc, & fields->f_bitno32_unprefixed); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  | @@ -1903,7 +1903,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 13, 3, 32, total_length, pc, & fields->f_bitno32_unprefixed); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  | @@ -1971,7 +1971,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 24, 8, 32, total_length, pc, & fields->f_dsp_24_u8); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_32_u16 = value; | ||||||
|  | @@ -1996,7 +1996,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_16_S16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_16_s16 = value; | ||||||
|  | @@ -2007,7 +2007,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_16_U16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  | @@ -2016,7 +2016,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_DSP_16_U20 : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  | @@ -2032,7 +2032,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_DSP_16_U24 : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  | @@ -2078,7 +2078,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 24, 8, 32, total_length, pc, & fields->f_dsp_24_u8); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_32_u16 = value; | ||||||
|  | @@ -2094,7 +2094,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 24, 8, 32, total_length, pc, & fields->f_dsp_24_u8); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_32_u16 = value; | ||||||
|  | @@ -2110,7 +2110,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_32_S16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_32_s16 = value; | ||||||
|  | @@ -2121,7 +2121,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_32_U16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_32_u16 = value; | ||||||
|  | @@ -2129,7 +2129,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_32_U20 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) << (16))) & (16711680)))); | ||||||
|  |          fields->f_dsp_32_u24 = value; | ||||||
|  | @@ -2137,7 +2137,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_32_U24 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) << (16))) & (16711680)))); | ||||||
|  |          fields->f_dsp_32_u24 = value; | ||||||
|  | @@ -2148,7 +2148,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_40_S16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 32, 8, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_40_s16 = value; | ||||||
|  | @@ -2159,7 +2159,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_40_U16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 8, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_40_u16 = value; | ||||||
|  | @@ -2167,7 +2167,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_40_U20 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 8, 20, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) << (16))) & (983040)))); | ||||||
|  |          fields->f_dsp_40_u20 = value; | ||||||
|  | @@ -2175,7 +2175,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_40_U24 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 8, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) << (16))) & (16711680)))); | ||||||
|  |          fields->f_dsp_40_u24 = value; | ||||||
|  | @@ -2186,7 +2186,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_48_S16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 32, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_48_s16 = value; | ||||||
|  | @@ -2197,7 +2197,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_48_U16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_48_u16 = value; | ||||||
|  | @@ -2206,7 +2206,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_DSP_48_U20 : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_48_u16 = value; | ||||||
|  | @@ -2222,7 +2222,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_DSP_48_U24 : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_48_u16 = value; | ||||||
|  | @@ -2240,7 +2240,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_8_S24 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) & (255))) << (16))))) ^ (8388608))) - (8388608)); | ||||||
|  |          fields->f_dsp_8_s24 = value; | ||||||
|  | @@ -2251,7 +2251,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_8_U16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_8_u16 = value; | ||||||
|  | @@ -2259,7 +2259,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DSP_8_U24 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((USI) (value) >> (16))) | (((value) & (65280))))) | (((((value) & (255))) << (16)))); | ||||||
|  |          fields->f_dsp_8_u24 = value; | ||||||
|  | @@ -2343,7 +2343,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DST32RNPREFIXEDHI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((((value) + (2))) % (4)); | ||||||
|  |          fields->f_dst32_rn_prefixed_HI = value; | ||||||
|  | @@ -2351,7 +2351,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DST32RNPREFIXEDQI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 2, 32, total_length, pc, & value); | ||||||
|  |          value = (((((~ (((USI) (value) >> (1))))) & (1))) | (((((value) << (1))) & (2)))); | ||||||
|  |          fields->f_dst32_rn_prefixed_QI = value; | ||||||
|  | @@ -2359,7 +2359,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DST32RNPREFIXEDSI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) - (2)); | ||||||
|  |          fields->f_dst32_rn_prefixed_SI = value; | ||||||
|  | @@ -2367,7 +2367,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DST32RNUNPREFIXEDHI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((((value) + (2))) % (4)); | ||||||
|  |          fields->f_dst32_rn_unprefixed_HI = value; | ||||||
|  | @@ -2375,7 +2375,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DST32RNUNPREFIXEDQI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 2, 32, total_length, pc, & value); | ||||||
|  |          value = (((((~ (((USI) (value) >> (1))))) & (1))) | (((((value) << (1))) & (2)))); | ||||||
|  |          fields->f_dst32_rn_unprefixed_QI = value; | ||||||
|  | @@ -2383,7 +2383,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_DST32RNUNPREFIXEDSI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) - (2)); | ||||||
|  |          fields->f_dst32_rn_unprefixed_SI = value; | ||||||
|  | @@ -2402,7 +2402,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_IMM_16_HI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_16_s16 = value; | ||||||
|  | @@ -2414,14 +2414,14 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_IMM_16_SI : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_16_u16 = value; | ||||||
|  |        } | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_32_u16 = value; | ||||||
|  | @@ -2454,7 +2454,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 24, 8, 32, total_length, pc, & fields->f_dsp_24_u8); | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 0, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) << (16))) & (16711680)))); | ||||||
|  |          fields->f_dsp_32_u24 = value; | ||||||
|  | @@ -2467,7 +2467,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_IMM_32_HI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 32, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_32_s16 = value; | ||||||
|  | @@ -2486,7 +2486,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_IMM_40_HI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 32, 8, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_40_s16 = value; | ||||||
|  | @@ -2498,7 +2498,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_IMM_40_SI : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 8, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((((value) << (16))) & (16711680)))); | ||||||
|  |          fields->f_dsp_40_u24 = value; | ||||||
|  | @@ -2513,7 +2513,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_IMM_48_HI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 32, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_48_s16 = value; | ||||||
|  | @@ -2525,14 +2525,14 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |      case M32C_OPERAND_IMM_48_SI : | ||||||
|  |        { | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 32, 16, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_48_u16 = value; | ||||||
|  |        } | ||||||
|  |          if (length <= 0) break; | ||||||
|  |          { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 64, 0, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((UHI) (value) >> (8))) & (255))) | (((((value) & (255))) << (8)))); | ||||||
|  |          fields->f_dsp_64_u16 = value; | ||||||
|  | @@ -2567,7 +2567,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_IMM_8_HI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 16, 32, total_length, pc, & value); | ||||||
|  |          value = EXTHISI (((HI) (INT) (((((((UINT) (value) >> (8))) & (255))) | (((((value) & (255))) << (8))))))); | ||||||
|  |          fields->f_dsp_8_s16 = value; | ||||||
|  | @@ -2593,7 +2593,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_IMM1_S : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 2, 1, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (1)); | ||||||
|  |          fields->f_imm1_S = value; | ||||||
|  | @@ -2612,7 +2612,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_16_8 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 16, 8, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (((pc) + (2)))); | ||||||
|  |          fields->f_lab_16_8 = value; | ||||||
|  | @@ -2620,7 +2620,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_24_8 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 24, 8, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (((pc) + (2)))); | ||||||
|  |          fields->f_lab_24_8 = value; | ||||||
|  | @@ -2628,7 +2628,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_32_8 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 32, 0, 8, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (((pc) + (2)))); | ||||||
|  |          fields->f_lab_32_8 = value; | ||||||
|  | @@ -2636,7 +2636,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_40_8 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 32, 8, 8, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (((pc) + (2)))); | ||||||
|  |          fields->f_lab_40_8 = value; | ||||||
|  | @@ -2644,7 +2644,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_5_3 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_PCREL_ADDR), 0, 5, 3, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (((pc) + (2)))); | ||||||
|  |          fields->f_lab_5_3 = value; | ||||||
|  | @@ -2652,7 +2652,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_8_16 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGN_OPT)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 8, 16, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((((((USI) (((value) & (65280))) >> (8))) | (((((value) & (255))) << (8))))) ^ (32768))) - (32768))) + (((pc) + (1)))); | ||||||
|  |          fields->f_lab_8_16 = value; | ||||||
|  | @@ -2660,7 +2660,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_8_24 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_ABS_ADDR), 0, 8, 24, 32, total_length, pc, & value); | ||||||
|  |          value = ((((((USI) (value) >> (16))) | (((value) & (65280))))) | (((((value) & (255))) << (16)))); | ||||||
|  |          fields->f_lab_8_24 = value; | ||||||
|  | @@ -2668,7 +2668,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_LAB_8_8 : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 8, 8, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) + (((pc) + (1)))); | ||||||
|  |          fields->f_lab_8_8 = value; | ||||||
|  | @@ -2757,7 +2757,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_SRC32RNPREFIXEDHI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 18, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((((value) + (2))) % (4)); | ||||||
|  |          fields->f_src32_rn_prefixed_HI = value; | ||||||
|  | @@ -2765,7 +2765,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_SRC32RNPREFIXEDQI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 18, 2, 32, total_length, pc, & value); | ||||||
|  |          value = (((((~ (((USI) (value) >> (1))))) & (1))) | (((((value) << (1))) & (2)))); | ||||||
|  |          fields->f_src32_rn_prefixed_QI = value; | ||||||
|  | @@ -2773,7 +2773,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_SRC32RNPREFIXEDSI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 18, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) - (2)); | ||||||
|  |          fields->f_src32_rn_prefixed_SI = value; | ||||||
|  | @@ -2781,7 +2781,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_SRC32RNUNPREFIXEDHI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 10, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((((value) + (2))) % (4)); | ||||||
|  |          fields->f_src32_rn_unprefixed_HI = value; | ||||||
|  | @@ -2789,7 +2789,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_SRC32RNUNPREFIXEDQI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 10, 2, 32, total_length, pc, & value); | ||||||
|  |          value = (((((~ (((USI) (value) >> (1))))) & (1))) | (((((value) << (1))) & (2)))); | ||||||
|  |          fields->f_src32_rn_unprefixed_QI = value; | ||||||
|  | @@ -2797,7 +2797,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC
 | ||||||
|  |        break; | ||||||
|  |      case M32C_OPERAND_SRC32RNUNPREFIXEDSI : | ||||||
|  |        { | ||||||
|  | -        long value;
 | ||||||
|  | +        long value = 0;
 | ||||||
|  |          length = extract_normal (cd, ex_info, insn_value, 0, 0, 10, 2, 32, total_length, pc, & value); | ||||||
|  |          value = ((value) - (2)); | ||||||
|  |          fields->f_src32_rn_unprefixed_SI = value; | ||||||
|  | --- binutils.orig/binutils/srconv.c	2020-06-16 17:10:22.251564474 +0100
 | ||||||
|  | +++ binutils-2.34.0/binutils/srconv.c	2020-06-16 20:07:51.670025912 +0100
 | ||||||
|  | @@ -492,6 +492,8 @@ wr_rl (struct coff_ofile *ptr ATTRIBUTE_
 | ||||||
|  |        rl.addr = r->offset; | ||||||
|  |        rl.bitloc = 0; | ||||||
|  |        rl.flen = 32;		/* SH Specific.  */ | ||||||
|  | +      rl.dunno = 0;
 | ||||||
|  | +      rl.symn = 0;
 | ||||||
|  |   | ||||||
|  |        /* What sort of reloc ? Look in the section to find out.  */ | ||||||
|  |        ref = r->symbol; | ||||||
|  | --- binutils.orig/libctf/ctf-create.c	2020-07-24 15:33:26.100996335 +0100
 | ||||||
|  | +++ binutils-2.35/libctf/ctf-create.c	2020-07-24 15:33:29.042977475 +0100
 | ||||||
|  | @@ -1257,6 +1257,8 @@ ctf_add_forward (ctf_file_t *fp, uint32_
 | ||||||
|  |   | ||||||
|  |    if ((type = ctf_add_generic (fp, flag, name, kind, &dtd)) == CTF_ERR) | ||||||
|  |      return CTF_ERR;		/* errno is set for us.  */ | ||||||
|  | +  if (dtd == NULL)
 | ||||||
|  | +    return CTF_ERR;
 | ||||||
|  |   | ||||||
|  |    dtd->dtd_data.ctt_info = CTF_TYPE_INFO (CTF_K_FORWARD, flag, 0); | ||||||
|  |    dtd->dtd_data.ctt_type = kind; | ||||||
							
								
								
									
										27
									
								
								SOURCES/binutils-special-sections-in-groups.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								SOURCES/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 | ||||||
							
								
								
									
										19
									
								
								SOURCES/binutils-strip-merge.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								SOURCES/binutils-strip-merge.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | --- binutils.orig/binutils/objcopy.c	2020-10-06 14:53:19.264943750 +0100
 | ||||||
|  | +++ binutils-2.35.1/binutils/objcopy.c	2020-10-06 14:53:47.002761889 +0100
 | ||||||
|  | @@ -3313,14 +3313,12 @@ copy_object (bfd *ibfd, bfd *obfd, const
 | ||||||
|  |  	  /* It is likely that output sections are in the same order | ||||||
|  |  	     as the input sections, but do not assume that this is | ||||||
|  |  	     the case.  */ | ||||||
|  | -	  if (strcmp (bfd_section_name (merged->sec),
 | ||||||
|  | -		      bfd_section_name (osec)) != 0)
 | ||||||
|  | +	  if (merged->sec->output_section != osec)
 | ||||||
|  |  	    { | ||||||
|  |  	      for (merged = merged_note_sections; | ||||||
|  |  		   merged != NULL; | ||||||
|  |  		   merged = merged->next) | ||||||
|  | -		if (strcmp (bfd_section_name (merged->sec),
 | ||||||
|  | -			    bfd_section_name (osec)) == 0)
 | ||||||
|  | +		if (merged->sec->output_section == osec)
 | ||||||
|  |  		  break; | ||||||
|  |   | ||||||
|  |  	      if (merged == NULL) | ||||||
							
								
								
									
										2071
									
								
								SOURCES/binutils-testsuite-failures.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2071
									
								
								SOURCES/binutils-testsuite-failures.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										10
									
								
								SOURCES/binutils-unexpected-form-20.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								SOURCES/binutils-unexpected-form-20.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | --- binutils.orig/binutils/dwarf.c	2021-03-05 09:25:43.850258361 +0000
 | ||||||
|  | +++ binutils-2.35.1/binutils/dwarf.c	2021-03-05 09:26:35.861895776 +0000
 | ||||||
|  | @@ -2115,6 +2115,7 @@ get_type_abbrev_from_form (unsigned long
 | ||||||
|  |    switch (form) | ||||||
|  |      { | ||||||
|  |      case DW_FORM_GNU_ref_alt: | ||||||
|  | +    case DW_FORM_ref_sig8:
 | ||||||
|  |        /* FIXME: We are unable to handle this form at the moment.  */ | ||||||
|  |        return NULL; | ||||||
|  |   | ||||||
							
								
								
									
										38
									
								
								SOURCES/binutils-use-long-long.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								SOURCES/binutils-use-long-long.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | diff -up binutils-2.25.orig/bfd/configure.ac binutils-2.25/bfd/configure.ac
 | ||||||
|  | --- binutils-2.25.orig/bfd/configure.ac	2014-12-24 10:34:45.590491143 +0000
 | ||||||
|  | +++ binutils-2.25/bfd/configure.ac	2014-12-24 10:36:12.997981992 +0000
 | ||||||
|  | @@ -183,11 +183,13 @@ if test "x${ac_cv_sizeof_long}" = "x8";
 | ||||||
|  |    BFD_HOST_64BIT_LONG=1 | ||||||
|  |    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long" | ||||||
|  |    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long" | ||||||
|  | -elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
 | ||||||
|  | +fi
 | ||||||
|  | +if test "x${ac_cv_sizeof_long_long}" = "x8"; then
 | ||||||
|  |    BFD_HOST_64BIT_LONG_LONG=1 | ||||||
|  |    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long" | ||||||
|  |    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long" | ||||||
|  | -  if test "x${ac_cv_sizeof_void_p}" = "x8"; then
 | ||||||
|  | +  if test "x${ac_cv_sizeof_void_p}" = "x8" \
 | ||||||
|  | +          -a "x${ac_cv_sizeof_long}" != "x8"; then
 | ||||||
|  |      BFD_HOSTPTR_T="unsigned long long" | ||||||
|  |    fi | ||||||
|  |  fi | ||||||
|  | diff -up ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
 | ||||||
|  | --- a/bfd/configure	2010-04-08 15:23:58.000000000 +0100
 | ||||||
|  | +++ b/bfd/configure	2010-04-08 15:24:06.000000000 +0100
 | ||||||
|  | @@ -12819,11 +12819,13 @@
 | ||||||
|  |    BFD_HOST_64BIT_LONG=1 | ||||||
|  |    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long" | ||||||
|  |    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long" | ||||||
|  | -elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
 | ||||||
|  | +fi
 | ||||||
|  | +if test "x${ac_cv_sizeof_long_long}" = "x8"; then
 | ||||||
|  |    BFD_HOST_64BIT_LONG_LONG=1 | ||||||
|  |    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long" | ||||||
|  |    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long" | ||||||
|  | -  if test "x${ac_cv_sizeof_void_p}" = "x8"; then
 | ||||||
|  | +  if test "x${ac_cv_sizeof_void_p}" = "x8" \
 | ||||||
|  | +          -a "x${ac_cv_sizeof_long}" != "x8"; then
 | ||||||
|  |      BFD_HOSTPTR_T="unsigned long long" | ||||||
|  |    fi | ||||||
|  |  fi | ||||||
							
								
								
									
										158
									
								
								SOURCES/binutils-warnings.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								SOURCES/binutils-warnings.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,158 @@ | |||||||
|  | diff --git a/binutils/dwarf.c b/binutils/dwarf.c
 | ||||||
|  | index 6ecfab5d..f8698213 100644
 | ||||||
|  | --- a/binutils/dwarf.c
 | ||||||
|  | +++ b/binutils/dwarf.c
 | ||||||
|  | @@ -4914,7 +4914,7 @@ display_debug_lines_decoded (struct dwarf_section *  section,
 | ||||||
|  |  	      else | ||||||
|  |  		{ | ||||||
|  |  		  newFileName = (char *) xmalloc (fileNameLength + 1); | ||||||
|  | -		  strncpy (newFileName, fileName, fileNameLength + 1);
 | ||||||
|  | +		  strcpy (newFileName, fileName);
 | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  |  	      if (!do_wide || (fileNameLength <= MAX_FILENAME_LENGTH)) | ||||||
|  | diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
 | ||||||
|  | index 3639bfbf..ed080a1a 100644
 | ||||||
|  | --- a/libiberty/cp-demangle.c
 | ||||||
|  | +++ b/libiberty/cp-demangle.c
 | ||||||
|  | @@ -185,20 +185,6 @@ static void d_init_info (const char *, int, size_t, struct d_info *);
 | ||||||
|  |  #define CP_STATIC_IF_GLIBCPP_V3 | ||||||
|  |  #endif /* ! defined(IN_GLIBCPP_V3) */ | ||||||
|  |   | ||||||
|  | -/* See if the compiler supports dynamic arrays.  */
 | ||||||
|  | -
 | ||||||
|  | -#ifdef __GNUC__
 | ||||||
|  | -#define CP_DYNAMIC_ARRAYS
 | ||||||
|  | -#else
 | ||||||
|  | -#ifdef __STDC__
 | ||||||
|  | -#ifdef __STDC_VERSION__
 | ||||||
|  | -#if __STDC_VERSION__ >= 199901L && !__STDC_NO_VLA__
 | ||||||
|  | -#define CP_DYNAMIC_ARRAYS
 | ||||||
|  | -#endif /* __STDC_VERSION__ >= 199901L && !__STDC_NO_VLA__ */
 | ||||||
|  | -#endif /* defined (__STDC_VERSION__) */
 | ||||||
|  | -#endif /* defined (__STDC__) */
 | ||||||
|  | -#endif /* ! defined (__GNUC__) */
 | ||||||
|  | -
 | ||||||
|  |  /* We avoid pulling in the ctype tables, to prevent pulling in | ||||||
|  |     additional unresolved symbols when this code is used in a library. | ||||||
|  |     FIXME: Is this really a valid reason?  This comes from the original | ||||||
|  | @@ -4343,29 +4329,21 @@ cplus_demangle_print_callback (int options,
 | ||||||
|  |    d_print_init (&dpi, callback, opaque, dc); | ||||||
|  |   | ||||||
|  |    { | ||||||
|  | -#ifdef CP_DYNAMIC_ARRAYS
 | ||||||
|  | -    /* Avoid zero-length VLAs, which are prohibited by the C99 standard
 | ||||||
|  | -       and flagged as errors by Address Sanitizer.  */
 | ||||||
|  | -    __extension__ struct d_saved_scope scopes[(dpi.num_saved_scopes > 0)
 | ||||||
|  | -                                              ? dpi.num_saved_scopes : 1];
 | ||||||
|  | -    __extension__ struct d_print_template temps[(dpi.num_copy_templates > 0)
 | ||||||
|  | -                                                ? dpi.num_copy_templates : 1];
 | ||||||
|  | -
 | ||||||
|  | -    dpi.saved_scopes = scopes;
 | ||||||
|  | -    dpi.copy_templates = temps;
 | ||||||
|  | -#else
 | ||||||
|  | -    dpi.saved_scopes = alloca (dpi.num_saved_scopes
 | ||||||
|  | -			       * sizeof (*dpi.saved_scopes));
 | ||||||
|  | -    dpi.copy_templates = alloca (dpi.num_copy_templates
 | ||||||
|  | -				 * sizeof (*dpi.copy_templates));
 | ||||||
|  | -#endif
 | ||||||
|  | -
 | ||||||
|  | +    dpi.saved_scopes
 | ||||||
|  | +      = (struct d_saved_scope *) xmalloc (dpi.num_saved_scopes
 | ||||||
|  | +					  * sizeof (*dpi.saved_scopes));
 | ||||||
|  | +    dpi.copy_templates
 | ||||||
|  | +      = (struct d_print_template *) xmalloc (dpi.num_copy_templates
 | ||||||
|  | +					     * sizeof (*dpi.copy_templates));
 | ||||||
|  |      d_print_comp (&dpi, options, dc); | ||||||
|  |    } | ||||||
|  |   | ||||||
|  |    d_print_flush (&dpi); | ||||||
|  |   | ||||||
|  | -  return ! d_print_saw_error (&dpi);
 | ||||||
|  | +  int retval = ! d_print_saw_error (&dpi);
 | ||||||
|  | +  free (dpi.saved_scopes);
 | ||||||
|  | +  free (dpi.copy_templates);
 | ||||||
|  | +  return retval;
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* Turn components into a human readable string.  OPTIONS is the | ||||||
|  | @@ -6307,16 +6285,12 @@ d_demangle_callback (const char *mangled, int options,
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |    { | ||||||
|  | -#ifdef CP_DYNAMIC_ARRAYS
 | ||||||
|  | -    __extension__ struct demangle_component comps[di.num_comps];
 | ||||||
|  | -    __extension__ struct demangle_component *subs[di.num_subs];
 | ||||||
|  | -
 | ||||||
|  | -    di.comps = comps;
 | ||||||
|  | -    di.subs = subs;
 | ||||||
|  | -#else
 | ||||||
|  | -    di.comps = alloca (di.num_comps * sizeof (*di.comps));
 | ||||||
|  | -    di.subs = alloca (di.num_subs * sizeof (*di.subs));
 | ||||||
|  | -#endif
 | ||||||
|  | +    di.comps
 | ||||||
|  | +      = (struct demangle_component *) xmalloc (di.num_comps
 | ||||||
|  | +					       * sizeof (*di.comps));
 | ||||||
|  | +    di.subs
 | ||||||
|  | +      = (struct demangle_component **) xmalloc (di.num_subs
 | ||||||
|  | +						* sizeof (*di.subs));
 | ||||||
|  |   | ||||||
|  |      switch (type) | ||||||
|  |        { | ||||||
|  | @@ -6357,6 +6331,8 @@ d_demangle_callback (const char *mangled, int options,
 | ||||||
|  |               : 0; | ||||||
|  |    } | ||||||
|  |   | ||||||
|  | +  free (di.comps);
 | ||||||
|  | +  free (di.subs);
 | ||||||
|  |    return status; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -6588,16 +6564,12 @@ is_ctor_or_dtor (const char *mangled,
 | ||||||
|  |    cplus_demangle_init_info (mangled, DMGL_GNU_V3, strlen (mangled), &di); | ||||||
|  |   | ||||||
|  |    { | ||||||
|  | -#ifdef CP_DYNAMIC_ARRAYS
 | ||||||
|  | -    __extension__ struct demangle_component comps[di.num_comps];
 | ||||||
|  | -    __extension__ struct demangle_component *subs[di.num_subs];
 | ||||||
|  | -
 | ||||||
|  | -    di.comps = comps;
 | ||||||
|  | -    di.subs = subs;
 | ||||||
|  | -#else
 | ||||||
|  | -    di.comps = alloca (di.num_comps * sizeof (*di.comps));
 | ||||||
|  | -    di.subs = alloca (di.num_subs * sizeof (*di.subs));
 | ||||||
|  | -#endif
 | ||||||
|  | +    di.comps
 | ||||||
|  | +      = (struct demangle_component *) xmalloc (di.num_comps
 | ||||||
|  | +					       * sizeof (*di.comps));
 | ||||||
|  | +    di.subs
 | ||||||
|  | +      = (struct demangle_component **) xmalloc (di.num_subs
 | ||||||
|  | +						* sizeof (*di.subs));
 | ||||||
|  |   | ||||||
|  |      dc = cplus_demangle_mangled_name (&di, 1); | ||||||
|  |   | ||||||
|  | @@ -6640,6 +6612,8 @@ is_ctor_or_dtor (const char *mangled,
 | ||||||
|  |        } | ||||||
|  |    } | ||||||
|  |   | ||||||
|  | +  free (di.comps);
 | ||||||
|  | +  free (di.subs);
 | ||||||
|  |    return ret; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
 | ||||||
|  | index e3f9f920..5dbe6f89 100644
 | ||||||
|  | --- a/libiberty/make-relative-prefix.c
 | ||||||
|  | +++ b/libiberty/make-relative-prefix.c
 | ||||||
|  | @@ -259,10 +259,7 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix,
 | ||||||
|  |  #ifdef HAVE_HOST_EXECUTABLE_SUFFIX | ||||||
|  |  	  len += strlen (HOST_EXECUTABLE_SUFFIX); | ||||||
|  |  #endif | ||||||
|  | -	  if (len < MAX_ALLOCA_SIZE)
 | ||||||
|  | -	    nstore = (char *) alloca (len);
 | ||||||
|  | -	  else
 | ||||||
|  | -	    alloc_ptr = nstore = (char *) malloc (len);
 | ||||||
|  | +	  alloc_ptr = nstore = (char *) malloc (len);
 | ||||||
|  |   | ||||||
|  |  	  startp = endp = temp; | ||||||
|  |  	  while (1) | ||||||
							
								
								
									
										78304
									
								
								SOURCES/binutils-x86-AMX-insns.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78304
									
								
								SOURCES/binutils-x86-AMX-insns.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2694
									
								
								SOURCES/binutils.unicode.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2694
									
								
								SOURCES/binutils.unicode.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3712
									
								
								SPECS/binutils.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3712
									
								
								SPECS/binutils.spec
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user