Toshaan Bharvani
3 years ago
commit
991bb2200d
44 changed files with 10458 additions and 0 deletions
@ -0,0 +1,38 @@
@@ -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 |
@ -0,0 +1,236 @@
@@ -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 |
@ -0,0 +1,28 @@
@@ -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 |
@ -0,0 +1,44 @@
@@ -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 |
@ -0,0 +1,11 @@
@@ -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; |
@ -0,0 +1,145 @@
@@ -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; |
||||
} |
||||
|
@ -0,0 +1,265 @@
@@ -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 |
@ -0,0 +1,15 @@
@@ -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) |
||||
{ |
@ -0,0 +1,53 @@
@@ -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; |
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,58 @@
@@ -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; |
@ -0,0 +1,34 @@
@@ -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); |
@ -0,0 +1,223 @@
@@ -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. */ |
@ -0,0 +1,93 @@
@@ -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 |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,70 @@
@@ -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 |
@ -0,0 +1,44 @@
@@ -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 |
@ -0,0 +1,83 @@
@@ -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 |
||||
|
@ -0,0 +1,34 @@
@@ -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 |
@ -0,0 +1,186 @@
@@ -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 |
||||
+ |
||||
+ |
@ -0,0 +1,36 @@
@@ -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), |
@ -0,0 +1,33 @@
@@ -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 |
@ -0,0 +1,657 @@
@@ -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 |
@ -0,0 +1,330 @@
@@ -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" |
@ -0,0 +1,180 @@
@@ -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 |
@ -0,0 +1,181 @@
@@ -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 |
@ -0,0 +1,19 @@
@@ -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) |
@ -0,0 +1,66 @@
@@ -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 |
||||
;; |
@ -0,0 +1,60 @@
@@ -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 |
@ -0,0 +1,182 @@
@@ -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; |
||||
} |
@ -0,0 +1,39 @@
@@ -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; |
@ -0,0 +1,42 @@
@@ -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: |
@ -0,0 +1,19 @@
@@ -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; |
||||
|
@ -0,0 +1,35 @@
@@ -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 |
@ -0,0 +1,109 @@
@@ -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; |
||||
|
@ -0,0 +1,109 @@
@@ -0,0 +1,109 @@
|
||||
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}" |
||||
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/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); |
||||
Only in binutils-2.35.1/opcodes: s390-mkopc.c.orig |
||||
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 |
||||
Only in binutils-2.35.1/opcodes: s390-opc.txt.orig |
@ -0,0 +1,772 @@
@@ -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; |
@ -0,0 +1,27 @@
@@ -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 |
@ -0,0 +1,19 @@
@@ -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) |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,10 @@
@@ -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; |
||||
|
@ -0,0 +1,38 @@
@@ -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 |
@ -0,0 +1,158 @@
@@ -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) |
Loading…
Reference in new issue