commit
09f4a90c9f
@ -0,0 +1,2 @@
|
|||||||
|
6bdd090ce268b6d6c3442516021c4e4b5019e303 SOURCES/binutils-2.35.tar.xz
|
||||||
|
d3e5c9fc829ed40648110da6fe46c2fb1ed8aadb SOURCES/standards.info.gz
|
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/binutils-2.35.tar.xz
|
||||||
|
SOURCES/standards.info.gz
|
@ -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 @@
|
|||||||
|
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 @@
|
|||||||
|
--- 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,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,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 @@
|
|||||||
|
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,14 @@
|
|||||||
|
diff -rup binutils.orig/ld/ldmain.c binutils-2.28/ld/ldmain.c
|
||||||
|
--- binutils.orig/ld/ldmain.c 2017-06-09 09:08:26.954016429 +0100
|
||||||
|
+++ binutils-2.28/ld/ldmain.c 2017-06-09 09:09:11.307490976 +0100
|
||||||
|
@@ -923,6 +923,10 @@ multiple_definition (struct bfd_link_inf
|
||||||
|
obfd = h->u.def.section->owner;
|
||||||
|
break;
|
||||||
|
case bfd_link_hash_indirect:
|
||||||
|
+ /* PR 21074: The GOLD linker can produce multiple indirect
|
||||||
|
+ refences to the same symbol. These can be ignored. */
|
||||||
|
+ if (bfd_is_ind_section (nsec))
|
||||||
|
+ return;
|
||||||
|
osec = bfd_ind_section_ptr;
|
||||||
|
oval = 0;
|
||||||
|
obfd = NULL;
|
@ -0,0 +1,123 @@
|
|||||||
|
--- 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;
|
@ -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 @@
|
|||||||
|
--- 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,9 @@
|
|||||||
|
--- binutils.orig/gold/ftruncate.c 2020-07-24 15:12:47.000947859 +0100
|
||||||
|
+++ binutils-2.35/gold/ftruncate.c 2020-07-24 15:19:17.602438295 +0100
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
-/* ftruncate emulations that work on some System V's.
|
||||||
|
- This file is in the public domain. */
|
||||||
|
+/* ftruncate emulations that work on some System V's. */
|
||||||
|
|
||||||
|
/* Copyright (C) 2012-2020 Free Software Foundation, Inc.
|
||||||
|
|
@ -0,0 +1,200 @@
|
|||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d binutils-2.35/ld/testsuite/ld-aarch64/variant_pcs-now.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d 2020-07-28 13:07:26.192507117 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-aarch64/variant_pcs-now.d 2020-07-28 13:09:47.205905999 +0100
|
||||||
|
@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri
|
||||||
|
Num: Value Size Type Bind Vis Ndx Name
|
||||||
|
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||||
|
1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
|
||||||
|
- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
|
||||||
|
- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
|
||||||
|
+ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
+ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT .*
|
||||||
|
4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
|
||||||
|
- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
|
||||||
|
+ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
|
||||||
|
|
||||||
|
Symbol table '\.symtab' contains 35 entries:
|
||||||
|
@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr
|
||||||
|
7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7
|
||||||
|
8: 0000000000011270 0 SECTION LOCAL DEFAULT 8
|
||||||
|
9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
|
||||||
|
- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
|
||||||
|
- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
|
||||||
|
+ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
+ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
|
||||||
|
13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
|
||||||
|
14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x
|
||||||
|
15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
|
||||||
|
- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
|
||||||
|
- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
|
||||||
|
+ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
+ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
|
||||||
|
19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
|
||||||
|
20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x
|
||||||
|
21: 0000000000000000 0 FILE LOCAL DEFAULT ABS
|
||||||
|
22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
|
||||||
|
- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def
|
||||||
|
+ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc
|
||||||
|
25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def
|
||||||
|
26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
|
||||||
|
- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
|
||||||
|
+ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x
|
||||||
|
29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
|
||||||
|
- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
|
||||||
|
- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
|
||||||
|
+ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
+ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .*
|
||||||
|
32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
|
||||||
|
- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
|
||||||
|
+ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-r.d binutils-2.35/ld/testsuite/ld-aarch64/variant_pcs-r.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-r.d 2020-07-28 13:07:26.184507150 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-aarch64/variant_pcs-r.d 2020-07-28 13:08:20.069277447 +0100
|
||||||
|
@@ -37,24 +37,24 @@ Symbol table '\.symtab' contains 26 entr
|
||||||
|
2: 0000000000000000 0 SECTION LOCAL DEFAULT 3
|
||||||
|
3: 0000000000000000 0 SECTION LOCAL DEFAULT 4
|
||||||
|
4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
|
||||||
|
- 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
|
||||||
|
- 6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
|
||||||
|
+ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
+ 6: 0000000000000000 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
7: 0000000000000000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
|
||||||
|
8: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
|
||||||
|
9: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 \$x
|
||||||
|
10: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
|
||||||
|
- 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
|
||||||
|
- 12: 0000000000000038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
|
||||||
|
+ 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
+ 12: 0000000000000038 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
13: 0000000000000038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
|
||||||
|
14: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
|
||||||
|
15: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 \$x
|
||||||
|
16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
|
||||||
|
- 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
|
||||||
|
- 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_def
|
||||||
|
+ 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
+ 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN .*
|
||||||
|
19: 0000000000000000 0 IFUNC GLOBAL HIDDEN 1 f_base_global_hidden_ifunc
|
||||||
|
- 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
|
||||||
|
+ 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT .*
|
||||||
|
21: 0000000000000000 0 NOTYPE GLOBAL HIDDEN 1 f_base_global_hidden_def
|
||||||
|
- 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
|
||||||
|
+ 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN .*
|
||||||
|
23: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
|
||||||
|
- 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
|
||||||
|
+ 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
25: 0000000000000000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2.35/ld/testsuite/ld-aarch64/variant_pcs-shared.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2020-07-28 13:07:26.183507154 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2020-07-28 13:09:00.519105015 +0100
|
||||||
|
@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri
|
||||||
|
Num: Value Size Type Bind Vis Ndx Name
|
||||||
|
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||||
|
1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
|
||||||
|
- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
|
||||||
|
- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
|
||||||
|
+ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
+ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT .*
|
||||||
|
4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
|
||||||
|
- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
|
||||||
|
+ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
|
||||||
|
|
||||||
|
Symbol table '\.symtab' contains 35 entries:
|
||||||
|
@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr
|
||||||
|
7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7
|
||||||
|
8: 0000000000011270 0 SECTION LOCAL DEFAULT 8
|
||||||
|
9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
|
||||||
|
- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
|
||||||
|
- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
|
||||||
|
+ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
+ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
|
||||||
|
13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
|
||||||
|
14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x
|
||||||
|
15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
|
||||||
|
- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
|
||||||
|
- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
|
||||||
|
+ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
+ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
|
||||||
|
19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
|
||||||
|
20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x
|
||||||
|
21: 0000000000000000 0 FILE LOCAL DEFAULT ABS
|
||||||
|
22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
|
||||||
|
- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def
|
||||||
|
+ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .*
|
||||||
|
24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc
|
||||||
|
25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def
|
||||||
|
26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
|
||||||
|
- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
|
||||||
|
+ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .*
|
||||||
|
28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x
|
||||||
|
29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
|
||||||
|
- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
|
||||||
|
- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
|
||||||
|
+ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
+ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .*
|
||||||
|
32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
|
||||||
|
- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
|
||||||
|
+ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .*
|
||||||
|
34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-12.d binutils-2.35/ld/testsuite/ld-plugin/plugin-12.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-12.d 2020-07-28 13:07:26.246506887 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-12.d 2020-07-28 13:10:51.694631104 +0100
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
#...
|
||||||
|
-.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DEF
|
||||||
|
-.*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY
|
||||||
|
-.*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY
|
||||||
|
-.*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY
|
||||||
|
+.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.*
|
||||||
|
+.*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DE.*
|
||||||
|
+.*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DE.*
|
||||||
|
+.*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DE.*
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-elf/indirect.exp binutils-2.35/ld/testsuite/ld-elf/indirect.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/indirect.exp 2020-07-28 13:37:46.473794149 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elf/indirect.exp 2020-07-28 14:10:44.867990380 +0100
|
||||||
|
@@ -229,7 +229,7 @@ set pie_tests {
|
||||||
|
|
||||||
|
run_ld_link_exec_tests $pie_tests
|
||||||
|
|
||||||
|
-foreach t [list indirect5c indirect5d indirect6c indirect6d] {
|
||||||
|
+foreach t [list indirect6c indirect6d] {
|
||||||
|
set testname [concat $t "dynsym"]
|
||||||
|
if { [check_dynamic_syms tmpdir/$t] } {
|
||||||
|
pass $testname
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-12.d binutils-2.35/ld/testsuite/ld-plugin/plugin-12.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-12.d 2020-07-28 13:37:46.393794486 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-12.d 2020-07-28 14:14:14.632159645 +0100
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
#...
|
||||||
|
-.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.*
|
||||||
|
-.*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DE.*
|
||||||
|
-.*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DE.*
|
||||||
|
-.*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DE.*
|
||||||
|
+.*func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.*
|
||||||
|
+.*func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DE.*
|
||||||
|
+.*func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DE.*
|
||||||
|
+.*func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DE.*
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin.exp binutils-2.35/ld/testsuite/ld-plugin/plugin.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2020-07-28 15:07:51.601384963 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin.exp 2020-07-28 15:11:38.753471155 +0100
|
||||||
|
@@ -301,6 +301,9 @@ if { !$can_compile || $failed_compile }
|
||||||
|
run_ld_link_tests $plugin_tests
|
||||||
|
|
||||||
|
if { [is_elf_format] \
|
||||||
|
+ && ![istarget "aarch64*-*-*"] \
|
||||||
|
+ && ![istarget "s390*-*-*"] \
|
||||||
|
+ && ![istarget "i686*-*-*"] \
|
||||||
|
&& [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func1p.c tmpdir/func1p.o] \
|
||||||
|
&& [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func2i.c tmpdir/func2i.o] \
|
||||||
|
&& [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func3h.c tmpdir/func3h.o] } {
|
@ -0,0 +1,27 @@
|
|||||||
|
diff -rup binutils.orig/bfd/elfnn-aarch64.c binutils-2.35/bfd/elfnn-aarch64.c
|
||||||
|
--- binutils.orig/bfd/elfnn-aarch64.c 2020-07-30 17:20:30.607580720 +0100
|
||||||
|
+++ binutils-2.35/bfd/elfnn-aarch64.c 2020-07-30 17:22:45.629741124 +0100
|
||||||
|
@@ -9513,8 +9513,10 @@ elfNN_aarch64_init_small_plt0_entry (bfd
|
||||||
|
|
||||||
|
memcpy (htab->root.splt->contents, htab->plt0_entry,
|
||||||
|
htab->plt_header_size);
|
||||||
|
- elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize =
|
||||||
|
- htab->plt_header_size;
|
||||||
|
+ /* PR 26312: Explicitly set the sh_entsize to 0 so that
|
||||||
|
+ consumers do not think that the section contains fixed
|
||||||
|
+ sized objects. */
|
||||||
|
+ elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
|
||||||
|
|
||||||
|
plt_got_2nd_ent = (htab->root.sgotplt->output_section->vma
|
||||||
|
+ htab->root.sgotplt->output_offset
|
||||||
|
@@ -9616,10 +9618,6 @@ elfNN_aarch64_finish_dynamic_sections (b
|
||||||
|
{
|
||||||
|
elfNN_aarch64_init_small_plt0_entry (output_bfd, htab);
|
||||||
|
|
||||||
|
- elf_section_data (htab->root.splt->output_section)->
|
||||||
|
- this_hdr.sh_entsize = htab->plt_entry_size;
|
||||||
|
-
|
||||||
|
-
|
||||||
|
if (htab->root.tlsdesc_plt && !(info->flags & DF_BIND_NOW))
|
||||||
|
{
|
||||||
|
BFD_ASSERT (htab->root.tlsdesc_got != (bfd_vma)-1);
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,66 @@
|
|||||||
|
diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.30/gas/config/obj-elf.c
|
||||||
|
--- binutils.orig/gas/config/obj-elf.c 2018-09-24 17:50:06.974172867 +0100
|
||||||
|
+++ binutils-2.30/gas/config/obj-elf.c 2018-09-25 15:19:33.559830794 +0100
|
||||||
|
@@ -82,9 +82,11 @@ static void obj_elf_gnu_attribute (int);
|
||||||
|
static void obj_elf_tls_common (int);
|
||||||
|
static void obj_elf_lcomm (int);
|
||||||
|
static void obj_elf_struct (int);
|
||||||
|
+static void obj_elf_attach_to_group (int);
|
||||||
|
|
||||||
|
static const pseudo_typeS elf_pseudo_table[] =
|
||||||
|
{
|
||||||
|
+ {"attach_to_group", obj_elf_attach_to_group, 0},
|
||||||
|
{"comm", obj_elf_common, 0},
|
||||||
|
{"common", obj_elf_common, 1},
|
||||||
|
{"ident", obj_elf_ident, 0},
|
||||||
|
@@ -1007,6 +1009,27 @@ obj_elf_section_name (void)
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED)
|
||||||
|
+{
|
||||||
|
+ const char * gname = obj_elf_section_name ();
|
||||||
|
+
|
||||||
|
+ if (gname == NULL)
|
||||||
|
+ {
|
||||||
|
+ as_warn ("group name not parseable");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (elf_group_name (now_seg))
|
||||||
|
+ {
|
||||||
|
+ as_warn ("already has a group");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ elf_group_name (now_seg) = xstrdup (gname);
|
||||||
|
+ elf_section_flags (now_seg) |= SHF_GROUP;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
obj_elf_section (int push)
|
||||||
|
{
|
||||||
|
--- binutils.orig/gas/doc/as.texi 2020-07-24 15:12:46.452951381 +0100
|
||||||
|
+++ binutils-2.35/gas/doc/as.texi 2020-07-24 15:15:41.742825163 +0100
|
||||||
|
@@ -4373,6 +4373,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}}
|
||||||
|
@@ -4670,6 +4671,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}]]]}
|
||||||
|
|
@ -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 @@
|
|||||||
|
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,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 @@
|
|||||||
|
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,269 @@
|
|||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/lto.exp binutils-2.35/ld/testsuite/ld-plugin/lto.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/lto.exp 2020-07-28 08:49:07.129503894 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/lto.exp 2020-07-28 08:54:50.102224314 +0100
|
||||||
|
@@ -31,8 +31,6 @@ if { ![check_plugin_api_available]
|
||||||
|
|
||||||
|
set saved_CFLAGS "$CFLAGS"
|
||||||
|
set saved_CXXFLAGS "$CXXFLAGS"
|
||||||
|
-regsub -all "(\\-Wp,)?-D_FORTIFY_SOURCE=\[0-9\]+" $CFLAGS "" CFLAGS
|
||||||
|
-regsub -all "(\\-Wp,)?-D_FORTIFY_SOURCE=\[0-9\]+" $CXXFLAGS "" CXXFLAGS
|
||||||
|
|
||||||
|
proc restore_notify { } {
|
||||||
|
global saved_CFLAGS
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.35/ld/testsuite/ld-plugin/plugin-10.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-10.d 2020-07-28 08:49:07.128503898 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-10.d 2020-07-28 10:07:50.675963507 +0100
|
||||||
|
@@ -32,8 +32,8 @@ 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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-11.d binutils-2.35/ld/testsuite/ld-plugin/plugin-11.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-11.d 2020-07-28 08:49:07.128503898 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-11.d 2020-07-28 10:08:07.540898427 +0100
|
||||||
|
@@ -35,9 +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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?text' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-16.d binutils-2.35/ld/testsuite/ld-plugin/plugin-16.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-16.d 2020-07-28 08:49:07.133503879 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-16.d 2020-07-28 10:07:10.525118454 +0100
|
||||||
|
@@ -30,8 +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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-17.d binutils-2.35/ld/testsuite/ld-plugin/plugin-17.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-17.d 2020-07-28 08:49:07.129503894 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-17.d 2020-07-28 10:07:28.119050562 +0100
|
||||||
|
@@ -31,8 +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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-18.d binutils-2.35/ld/testsuite/ld-plugin/plugin-18.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-18.d 2020-07-28 08:49:07.132503883 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-18.d 2020-07-28 10:08:56.503709477 +0100
|
||||||
|
@@ -32,8 +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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-19.d binutils-2.35/ld/testsuite/ld-plugin/plugin-19.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-19.d 2020-07-28 08:49:07.128503898 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-19.d 2020-07-28 10:08:24.053834702 +0100
|
||||||
|
@@ -35,9 +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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?text' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.35/ld/testsuite/ld-plugin/plugin-8.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-8.d 2020-07-28 08:49:07.131503887 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-8.d 2020-07-28 10:06:08.440358037 +0100
|
||||||
|
@@ -30,8 +30,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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-9.d binutils-2.35/ld/testsuite/ld-plugin/plugin-9.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin-9.d 2020-07-28 08:49:07.133503879 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/plugin-9.d 2020-07-28 10:06:36.839248442 +0100
|
||||||
|
@@ -31,8 +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_IRONLY
|
||||||
|
-Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
+Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-plugin/pr20070.d binutils-2.35/ld/testsuite/ld-plugin/pr20070.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/pr20070.d 2020-07-28 08:49:07.129503894 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-plugin/pr20070.d 2020-07-28 09:39:31.619488398 +0100
|
||||||
|
@@ -1,10 +1,10 @@
|
||||||
|
hook called: all symbols read.
|
||||||
|
Input: pr20070b.c \(tmpdir/libpr20070.a\)
|
||||||
|
-Sym: 'def' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
-Sym: 'weakdef' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: 'def' Resolution: LDPR_PREVAILING_DEF_.*
|
||||||
|
+Sym: 'weakdef' Resolution: LDPR_PREVAILING_DEF_.*
|
||||||
|
Sym: 'undef' Resolution: LDPR_UNDEF
|
||||||
|
Sym: 'weakundef' Resolution: LDPR_UNDEF
|
||||||
|
-Sym: 'common' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
||||||
|
+Sym: 'common' Resolution: LDPR_PREVAILING_DEF_.*
|
||||||
|
#...
|
||||||
|
hook called: cleanup.
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-1a.r binutils-2.35/ld/testsuite/ld-x86-64/property-1a.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-1a.r 2020-07-28 08:49:07.203503617 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-1a.r 2020-07-28 10:09:29.622581671 +0100
|
||||||
|
@@ -3,6 +3,7 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: no copy on protected
|
||||||
|
+#...
|
||||||
|
x86 ISA used: <None>
|
||||||
|
x86 feature used: x86
|
||||||
|
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-2a.r binutils-2.35/ld/testsuite/ld-x86-64/property-2a.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-2a.r 2020-07-28 08:49:07.196503643 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-2a.r 2020-07-28 09:42:30.825802177 +0100
|
||||||
|
@@ -3,6 +3,7 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x800000
|
||||||
|
+#...
|
||||||
|
x86 ISA used: <None>
|
||||||
|
x86 feature used: x86
|
||||||
|
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-3.r binutils-2.35/ld/testsuite/ld-x86-64/property-3.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-3.r 2020-07-28 08:49:07.192503658 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-3.r 2020-07-28 09:43:59.247463593 +0100
|
||||||
|
@@ -3,5 +3,5 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x800000
|
||||||
|
- x86 ISA needed: CMOV, SSE
|
||||||
|
+ x86 ISA needed: SSE, SSE2
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-3a.r binutils-2.35/ld/testsuite/ld-x86-64/property-3a.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-3a.r 2020-07-28 08:49:07.197503639 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-3a.r 2020-07-28 09:44:34.145329965 +0100
|
||||||
|
@@ -3,6 +3,7 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x800000
|
||||||
|
+#...
|
||||||
|
x86 ISA needed: CMOV, SSE
|
||||||
|
x86 ISA used: SSE, SSE3
|
||||||
|
x86 feature used: x86
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-4.r binutils-2.35/ld/testsuite/ld-x86-64/property-4.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-4.r 2020-07-28 08:49:07.192503658 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-4.r 2020-07-28 09:45:09.585194255 +0100
|
||||||
|
@@ -3,5 +3,5 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x800000
|
||||||
|
- x86 ISA needed: CMOV, SSE, SSE3
|
||||||
|
+ x86 ISA needed: .*
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-4a.r binutils-2.35/ld/testsuite/ld-x86-64/property-4a.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-4a.r 2020-07-28 08:49:07.195503647 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-4a.r 2020-07-28 11:48:01.518912704 +0100
|
||||||
|
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x800000
|
||||||
|
- x86 ISA needed: CMOV, SSE, SSE3
|
||||||
|
+#...
|
||||||
|
x86 ISA used: CMOV, SSE, SSE3
|
||||||
|
x86 feature used: x86
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-5.r binutils-2.35/ld/testsuite/ld-x86-64/property-5.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-5.r 2020-07-28 08:49:07.196503643 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-5.r 2020-07-28 10:10:35.206328582 +0100
|
||||||
|
@@ -3,5 +3,5 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x900000
|
||||||
|
- x86 ISA needed: CMOV, SSE, SSE3
|
||||||
|
+ x86 ISA needed: .*
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/property-5a.r binutils-2.35/ld/testsuite/ld-x86-64/property-5a.r
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/property-5a.r 2020-07-28 08:49:07.187503677 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/property-5a.r 2020-07-28 11:48:24.220790926 +0100
|
||||||
|
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.pro
|
||||||
|
[ ]+Owner[ ]+Data size[ ]+Description
|
||||||
|
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: stack size: 0x900000
|
||||||
|
- x86 ISA needed: CMOV, SSE, SSE3
|
||||||
|
+#...
|
||||||
|
x86 ISA used: CMOV, SSE, SSE3
|
||||||
|
x86 feature used: x86
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.35/ld/testsuite/ld-x86-64/x86-64.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2020-07-28 08:49:07.192503658 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-x86-64/x86-64.exp 2020-07-28 10:17:29.571700687 +0100
|
||||||
|
@@ -1399,24 +1399,6 @@ if { [isnative] && [check_compiler_avail
|
||||||
|
] \
|
||||||
|
]
|
||||||
|
} else {
|
||||||
|
- run_cc_link_tests [list \
|
||||||
|
- [list \
|
||||||
|
- "Build pr22001-1b" \
|
||||||
|
- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \
|
||||||
|
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||||
|
- { pr22001-1c.c } \
|
||||||
|
- {{error_output "pr22001-1b.err"}} \
|
||||||
|
- "pr22001-1b" \
|
||||||
|
- ] \
|
||||||
|
- [list \
|
||||||
|
- "Build pr21997-1b" \
|
||||||
|
- "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
|
||||||
|
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||||
|
- { pr21997-1c.c } \
|
||||||
|
- {{error_output "pr21997-1b.err"}} \
|
||||||
|
- "pr21997-1b" \
|
||||||
|
- ] \
|
||||||
|
- ]
|
||||||
|
}
|
||||||
|
|
||||||
|
run_ld_link_exec_tests [list \
|
||||||
|
@@ -2052,7 +2034,7 @@ if { [isnative] && [check_compiler_avail
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
|
||||||
|
+ # undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
|
||||||
|
undefined_weak "-fPIE" ""
|
||||||
|
undefined_weak "-fPIE" "-pie"
|
||||||
|
undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak"
|
@ -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,11 @@
|
|||||||
|
--- binutils.orig/gas/as.c 2020-07-30 08:41:25.034236441 +0100
|
||||||
|
+++ binutils-2.35/gas/as.c 2020-07-30 08:41:52.197058041 +0100
|
||||||
|
@@ -103,7 +103,7 @@ int verbose = 0;
|
||||||
|
int flag_dwarf_cie_version = -1;
|
||||||
|
|
||||||
|
/* The maximum level of DWARF DEBUG information we should manufacture. */
|
||||||
|
-unsigned int dwarf_level = 0;
|
||||||
|
+unsigned int dwarf_level = 3;
|
||||||
|
|
||||||
|
#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
|
||||||
|
int flag_use_elf_stt_common = DEFAULT_GENERATE_ELF_STT_COMMON;
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,170 @@
|
|||||||
|
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;
|
@ -0,0 +1,99 @@
|
|||||||
|
diff -rup binutils.orig/gold/layout.cc binutils-2.30/gold/layout.cc
|
||||||
|
--- binutils.orig/gold/layout.cc 2018-10-09 15:24:05.987282736 +0100
|
||||||
|
+++ binutils-2.30/gold/layout.cc 2018-10-09 16:08:29.445946736 +0100
|
||||||
|
@@ -2052,12 +2052,15 @@ Layout::attach_allocated_section_to_segm
|
||||||
|
// segment.
|
||||||
|
if (os->type() == elfcpp::SHT_NOTE)
|
||||||
|
{
|
||||||
|
+ uint64_t os_align = os->addralign();
|
||||||
|
+
|
||||||
|
// See if we already have an equivalent PT_NOTE segment.
|
||||||
|
for (p = this->segment_list_.begin();
|
||||||
|
p != segment_list_.end();
|
||||||
|
++p)
|
||||||
|
{
|
||||||
|
if ((*p)->type() == elfcpp::PT_NOTE
|
||||||
|
+ && (*p)->align() == os_align
|
||||||
|
&& (((*p)->flags() & elfcpp::PF_W)
|
||||||
|
== (seg_flags & elfcpp::PF_W)))
|
||||||
|
{
|
||||||
|
@@ -2071,6 +2074,7 @@ Layout::attach_allocated_section_to_segm
|
||||||
|
Output_segment* oseg = this->make_output_segment(elfcpp::PT_NOTE,
|
||||||
|
seg_flags);
|
||||||
|
oseg->add_output_section_to_nonload(os, seg_flags);
|
||||||
|
+ oseg->set_align(os_align);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3171,6 +3175,10 @@ Layout::create_note(const char* name, in
|
||||||
|
#else
|
||||||
|
const int size = 32;
|
||||||
|
#endif
|
||||||
|
+ // The NT_GNU_PROPERTY_TYPE_0 note conforms to gABI.
|
||||||
|
+ const int addralign = ((note_type == elfcpp::NT_GNU_PROPERTY_TYPE_0
|
||||||
|
+ ? parameters->target().get_size()
|
||||||
|
+ : size) / 8);
|
||||||
|
|
||||||
|
// The contents of the .note section.
|
||||||
|
size_t namesz = strlen(name) + 1;
|
||||||
|
@@ -3234,7 +3242,7 @@ Layout::create_note(const char* name, in
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
Output_section_data* posd = new Output_data_const_buffer(buffer, notehdrsz,
|
||||||
|
- size / 8,
|
||||||
|
+ addralign,
|
||||||
|
"** note header");
|
||||||
|
os->add_output_section_data(posd);
|
||||||
|
|
||||||
|
@@ -3692,6 +3700,11 @@ Layout::segment_precedes(const Output_se
|
||||||
|
{
|
||||||
|
if (type1 != type2)
|
||||||
|
return type1 < type2;
|
||||||
|
+ uint64_t align1 = seg1->align();
|
||||||
|
+ uint64_t align2 = seg2->align();
|
||||||
|
+ // Place segments with larger alignments first.
|
||||||
|
+ if (align1 != align2)
|
||||||
|
+ return align1 > align2;
|
||||||
|
gold_assert(flags1 != flags2
|
||||||
|
|| this->script_options_->saw_phdrs_clause());
|
||||||
|
return flags1 < flags2;
|
||||||
|
diff -rup binutils.orig/gold/output.cc binutils-2.30/gold/output.cc
|
||||||
|
--- binutils.orig/gold/output.cc 2018-10-09 15:24:05.986282744 +0100
|
||||||
|
+++ binutils-2.30/gold/output.cc 2018-10-09 16:09:03.749670846 +0100
|
||||||
|
@@ -4107,6 +4107,7 @@ Output_segment::Output_segment(elfcpp::E
|
||||||
|
: vaddr_(0),
|
||||||
|
paddr_(0),
|
||||||
|
memsz_(0),
|
||||||
|
+ align_(0),
|
||||||
|
max_align_(0),
|
||||||
|
min_p_align_(0),
|
||||||
|
offset_(0),
|
||||||
|
diff -rup binutils.orig/gold/output.h binutils-2.30/gold/output.h
|
||||||
|
--- binutils.orig/gold/output.h 2018-10-09 15:24:05.984282760 +0100
|
||||||
|
+++ binutils-2.30/gold/output.h 2018-10-09 16:09:45.665333727 +0100
|
||||||
|
@@ -4676,6 +4676,16 @@ class Output_segment
|
||||||
|
offset() const
|
||||||
|
{ return this->offset_; }
|
||||||
|
|
||||||
|
+ // Return the segment alignment.
|
||||||
|
+ uint64_t
|
||||||
|
+ align() const
|
||||||
|
+ { return this->align_; }
|
||||||
|
+
|
||||||
|
+ // Set the segment alignment.
|
||||||
|
+ void
|
||||||
|
+ set_align(uint64_t align)
|
||||||
|
+ { this->align_ = align; }
|
||||||
|
+
|
||||||
|
// Whether this is a segment created to hold large data sections.
|
||||||
|
bool
|
||||||
|
is_large_data_segment() const
|
||||||
|
@@ -4898,6 +4908,8 @@ class Output_segment
|
||||||
|
uint64_t paddr_;
|
||||||
|
// The size of the segment in memory.
|
||||||
|
uint64_t memsz_;
|
||||||
|
+ // The segment alignment.
|
||||||
|
+ uint64_t align_;
|
||||||
|
// The maximum section alignment. The is_max_align_known_ field
|
||||||
|
// indicates whether this has been finalized.
|
||||||
|
uint64_t max_align_;
|
@ -0,0 +1,36 @@
|
|||||||
|
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)
|
||||||
|
diff -rup binutils.orig/gold/object.cc binutils-2.32/gold/object.cc
|
||||||
|
--- binutils.orig/gold/object.cc 2019-06-24 14:37:36.012086906 +0100
|
||||||
|
+++ binutils-2.32/gold/object.cc 2019-06-24 14:39:59.287165501 +0100
|
||||||
|
@@ -1644,6 +1644,13 @@ Sized_relobj_file<size, big_endian>::do_
|
||||||
|
omit[i] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Skip empty sections without flags.
|
||||||
|
+ if (!(shdr.get_sh_flags() & ~elfcpp::SHF_GROUP)
|
||||||
|
+ && !shdr.get_sh_size())
|
||||||
|
+ {
|
||||||
|
+ omit[i] = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
bool discard = omit[i];
|
||||||
|
if (!discard)
|
||||||
|
{
|
@ -0,0 +1,29 @@
|
|||||||
|
diff -rup binutils.orig/ld/testsuite/ld-elfvsb/elfvsb.exp binutils-2.35/ld/testsuite/ld-elfvsb/elfvsb.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elfvsb/elfvsb.exp 2020-07-28 13:07:26.277506755 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elfvsb/elfvsb.exp 2020-07-28 13:29:32.252877646 +0100
|
||||||
|
@@ -264,6 +264,7 @@ proc visibility_run {visibility} {
|
||||||
|
remote_file host delete $tmpdir/sh1p.o $tmpdir/sh2p.o $tmpdir/sh1np.o $tmpdir/sh2np.o
|
||||||
|
|
||||||
|
if { [istarget powerpc*-*-linux*] \
|
||||||
|
+ || [istarget i686*-*-*] \
|
||||||
|
|| ( [istarget mips*-*-linux*] && [at_least_gcc_version 4 3] )} {
|
||||||
|
# Testing non-PIC libraries is a waste of effort on any target.
|
||||||
|
# If you don't pass -fpic or -fPIC to gcc, gcc will assume quite
|
||||||
|
@@ -345,6 +346,7 @@ proc visibility_run {visibility} {
|
||||||
|
|| [ string match $visibility "protected_undef_def" ]
|
||||||
|
|| [ string match $visibility "protected_weak" ]
|
||||||
|
|| [ string match $visibility "normal" ] } {
|
||||||
|
+ setup_xfail "i686-*-*"
|
||||||
|
setup_xfail "powerpc-*-linux*"
|
||||||
|
setup_xfail "s390x-*-linux*"
|
||||||
|
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
|
||||||
|
@@ -393,7 +395,8 @@ proc visibility_run {visibility} {
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
|
- if { [istarget powerpc*-*-linux*] } {
|
||||||
|
+ if { [istarget powerpc*-*-linux*]
|
||||||
|
+ || [istarget i686*-*-*] } {
|
||||||
|
# Don't bother.
|
||||||
|
} else {
|
||||||
|
# Now do the same tests again, but this time compile main.c PIC.
|
@ -0,0 +1,24 @@
|
|||||||
|
--- binutils-2.32.orig/bfd/elf-eh-frame.c 2019-06-26 07:05:43.839194746 -0400
|
||||||
|
+++ binutils-2.32/bfd/elf-eh-frame.c 2019-06-26 07:32:37.124219479 -0400
|
||||||
|
@@ -2478,11 +2478,16 @@ write_dwarf_eh_frame_hdr (bfd *abfd, str
|
||||||
|
!= sec->output_section->vma + val))
|
||||||
|
overflow = TRUE;
|
||||||
|
bfd_put_32 (abfd, val, contents + EH_FRAME_HDR_SIZE + i * 8 + 8);
|
||||||
|
- if (i != 0
|
||||||
|
- && (hdr_info->u.dwarf.array[i].initial_loc
|
||||||
|
- < (hdr_info->u.dwarf.array[i - 1].initial_loc
|
||||||
|
- + hdr_info->u.dwarf.array[i - 1].range)))
|
||||||
|
- overlap = TRUE;
|
||||||
|
+ if (i != 0)
|
||||||
|
+ {
|
||||||
|
+ struct eh_frame_array_ent * this_entry = hdr_info->u.dwarf.array + i;
|
||||||
|
+ struct eh_frame_array_ent * prev_entry = hdr_info->u.dwarf.array + (i - 1);
|
||||||
|
+
|
||||||
|
+ if (this_entry->initial_loc < prev_entry->initial_loc + prev_entry->range
|
||||||
|
+ && (this_entry->initial_loc != prev_entry->initial_loc
|
||||||
|
+ || this_entry->range != prev_entry->range))
|
||||||
|
+ overlap = TRUE;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
if (overflow)
|
||||||
|
_bfd_error_handler (_(".eh_frame_hdr entry overflow"));
|
@ -0,0 +1,19 @@
|
|||||||
|
--- binutils.orig/bfd/configure 2019-06-24 14:37:35.984087086 +0100
|
||||||
|
+++ binutils-2.32/bfd/configure 2019-06-24 17:32:52.515541752 +0100
|
||||||
|
@@ -18865,11 +18865,11 @@ _LT_EOF
|
||||||
|
esac
|
||||||
|
done ;;
|
||||||
|
"bfd_stdint.h":C)
|
||||||
|
-if test "$GCC" = yes; then
|
||||||
|
- echo "/* generated for " `$CC --version | sed 1q` "*/" > tmp-stdint.h
|
||||||
|
-else
|
||||||
|
- echo "/* generated for $CC */" > tmp-stdint.h
|
||||||
|
-fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
|
||||||
|
sed 's/^ *//' >> tmp-stdint.h <<EOF
|
||||||
|
|
@ -0,0 +1,107 @@
|
|||||||
|
diff -rup binutils.orig/gas/config/tc-ppc.c binutils-2.35/gas/config/tc-ppc.c
|
||||||
|
--- binutils.orig/gas/config/tc-ppc.c 2022-02-03 11:10:42.835719394 +0000
|
||||||
|
+++ binutils-2.35/gas/config/tc-ppc.c 2022-02-03 11:13:04.298724661 +0000
|
||||||
|
@@ -1738,12 +1738,12 @@ ppc_setup_opcodes (void)
|
||||||
|
|
||||||
|
if ((ppc_cpu & op->flags) != 0
|
||||||
|
&& !(ppc_cpu & op->deprecated))
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ppc_cpu & PPC_OPCODE_ANY) != 0)
|
||||||
|
for (op = powerpc_opcodes; op < op_end; op++)
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
|
||||||
|
op_end = prefix_opcodes + prefix_num_opcodes;
|
||||||
|
for (op = prefix_opcodes; op < op_end; op++)
|
||||||
|
@@ -1772,12 +1772,12 @@ ppc_setup_opcodes (void)
|
||||||
|
|
||||||
|
if ((ppc_cpu & op->flags) != 0
|
||||||
|
&& !(ppc_cpu & op->deprecated))
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ppc_cpu & PPC_OPCODE_ANY) != 0)
|
||||||
|
for (op = prefix_opcodes; op < op_end; op++)
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
|
||||||
|
op_end = vle_opcodes + vle_num_opcodes;
|
||||||
|
for (op = vle_opcodes; op < op_end; op++)
|
||||||
|
@@ -1807,7 +1807,7 @@ ppc_setup_opcodes (void)
|
||||||
|
|
||||||
|
if ((ppc_cpu & op->flags) != 0
|
||||||
|
&& !(ppc_cpu & op->deprecated))
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* SPE2 instructions */
|
||||||
|
@@ -1841,11 +1841,11 @@ ppc_setup_opcodes (void)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ppc_cpu & op->flags) != 0 && !(ppc_cpu & op->deprecated))
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (op = spe2_opcodes; op < op_end; op++)
|
||||||
|
- str_hash_insert (ppc_hash, op->name, (void *) op);
|
||||||
|
+ str_hash_insert_or_replace (ppc_hash, op->name, (void *) op, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Insert the macros into a hash table. */
|
||||||
|
diff -rup binutils.orig/gas/hash.c binutils-2.35/gas/hash.c
|
||||||
|
--- binutils.orig/gas/hash.c 2022-02-03 11:10:42.827719448 +0000
|
||||||
|
+++ binutils-2.35/gas/hash.c 2022-02-03 11:12:00.506175797 +0000
|
||||||
|
@@ -32,6 +32,24 @@ htab_insert (htab_t htab, PTR element)
|
||||||
|
*slot = element;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void **
|
||||||
|
+htab_insert_or_replace (htab_t htab, void *element, int replace)
|
||||||
|
+{
|
||||||
|
+ void **slot = htab_find_slot (htab, element, INSERT);
|
||||||
|
+ if (*slot != NULL)
|
||||||
|
+ {
|
||||||
|
+ if (replace)
|
||||||
|
+ {
|
||||||
|
+ if (htab->del_f)
|
||||||
|
+ (*htab->del_f) (*slot);
|
||||||
|
+ *slot = element;
|
||||||
|
+ }
|
||||||
|
+ return slot;
|
||||||
|
+ }
|
||||||
|
+ *slot = element;
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Print statistics about a hash table. */
|
||||||
|
|
||||||
|
void
|
||||||
|
diff -rup binutils.orig/gas/hash.h binutils-2.35/gas/hash.h
|
||||||
|
--- binutils.orig/gas/hash.h 2022-02-03 11:10:42.830719428 +0000
|
||||||
|
+++ binutils-2.35/gas/hash.h 2022-02-03 11:12:25.002002561 +0000
|
||||||
|
@@ -103,6 +103,19 @@ str_hash_insert (htab_t table, const cha
|
||||||
|
htab_insert (table, string_tuple_alloc (key, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
+extern void ** htab_insert_or_replace (htab_t, void *, int);
|
||||||
|
+
|
||||||
|
+static inline void **
|
||||||
|
+str_hash_insert_or_replace (htab_t table, const char *key, void *value, int replace)
|
||||||
|
+{
|
||||||
|
+ string_tuple_t *elt = string_tuple_alloc (key, value);
|
||||||
|
+ void **slot = htab_insert_or_replace (table, elt, replace);
|
||||||
|
+ if (slot && !replace)
|
||||||
|
+ free (elt);
|
||||||
|
+ return slot;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static inline htab_t
|
||||||
|
str_htab_create (void)
|
||||||
|
{
|
@ -0,0 +1,101 @@
|
|||||||
|
Only in binutils-2.35/ld/testsuite/ld-ifunc: #ifunc.exp#
|
||||||
|
Only in binutils-2.35/ld/testsuite/ld-ifunc: .#ifunc.exp
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 13:07:26.232506947 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 13:33:16.090934011 +0100
|
||||||
|
@@ -309,6 +309,7 @@ if {! [check_osabi tmpdir/static_nonifun
|
||||||
|
# should not.
|
||||||
|
|
||||||
|
if {[contains_ifunc_symbol tmpdir/libshared_ifunc.so] != 1} {
|
||||||
|
+ setup_xfail "powerpc*-*-*"
|
||||||
|
fail "Shared libraries containing ifunc does not contain an IFUNC symbol"
|
||||||
|
set fails [expr $fails + 1]
|
||||||
|
}
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 15:07:51.587385019 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 15:16:19.629341219 +0100
|
||||||
|
@@ -314,11 +314,13 @@ if {[contains_ifunc_symbol tmpdir/libsha
|
||||||
|
set fails [expr $fails + 1]
|
||||||
|
}
|
||||||
|
if {[contains_ifunc_symbol tmpdir/local_prog] != 1} {
|
||||||
|
+ setup_xfail "powerpc*-*-*"
|
||||||
|
fail "Local ifunc-using executable does not contain an IFUNC symbol"
|
||||||
|
set fails [expr $fails + 1]
|
||||||
|
}
|
||||||
|
if { ![string match "" $STATIC_LDFLAGS] \
|
||||||
|
&& [contains_ifunc_symbol tmpdir/static_prog] != 1} {
|
||||||
|
+ setup_xfail "powerpc*-*-*"
|
||||||
|
fail "Static ifunc-using executable does not contain an IFUNC symbol"
|
||||||
|
set fails [expr $fails + 1]
|
||||||
|
}
|
||||||
|
@@ -531,7 +533,8 @@ run_ld_link_exec_tests [list \
|
||||||
|
if { ![check_ifunc_attribute_available] } {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
-if { [istarget "s390*-*-*"] } {
|
||||||
|
+if { [istarget "s390*-*-*"]
|
||||||
|
+ || [istarget "ppc*-*-*"] } {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
run_cc_link_tests [list \
|
||||||
|
Only in binutils-2.35/ld/testsuite/ld-powerpc/: #powerpc.exp#
|
||||||
|
Only in binutils-2.35/ld/testsuite/ld-powerpc/: .#powerpc.exp
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-powerpc/notoc3.d binutils-2.35/ld/testsuite/ld-powerpc/notoc3.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-powerpc/notoc3.d 2020-07-28 15:07:51.607384938 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-powerpc/notoc3.d 2020-07-28 15:18:47.912744686 +0100
|
||||||
|
@@ -58,7 +58,7 @@ Disassembly of section \.text:
|
||||||
|
|
||||||
|
.* <f2>:
|
||||||
|
.*: (02 10 40 3c|3c 40 10 02) lis r2,4098
|
||||||
|
-.*: (00 90 42 38|38 42 90 00) addi r2,r2,-28672
|
||||||
|
+#...
|
||||||
|
.*: (.. .. ff 4b|4b ff .. ..) bl .* <.*\.long_branch\.f1>
|
||||||
|
.*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\)
|
||||||
|
.*: (.. .. ff 4b|4b ff .. ..) bl .* <f2\+0x8>
|
||||||
|
@@ -73,7 +73,7 @@ Disassembly of section \.text:
|
||||||
|
|
||||||
|
.* <g2>:
|
||||||
|
.*: (02 10 40 3c|3c 40 10 02) lis r2,4098
|
||||||
|
-.*: (00 90 42 38|38 42 90 00) addi r2,r2,-28672
|
||||||
|
+#...
|
||||||
|
.*: (.. .. ff 4b|4b ff .. ..) bl .* <f2\+0x8>
|
||||||
|
.*: (00 00 00 60|60 00 00 00) nop
|
||||||
|
.*: (.. .. ff 4b|4b ff .. ..) bl .* <.*\.long_branch\.f1>
|
||||||
|
@@ -92,6 +92,6 @@ Disassembly of section \.text\.ext:
|
||||||
|
|
||||||
|
8000000000000000 <ext>:
|
||||||
|
8000000000000000: (02 10 40 3c|3c 40 10 02) lis r2,4098
|
||||||
|
-8000000000000004: (00 90 42 38|38 42 90 00) addi r2,r2,-28672
|
||||||
|
+#...
|
||||||
|
8000000000000008: (00 00 00 60|60 00 00 00) nop
|
||||||
|
800000000000000c: (20 00 80 4e|4e 80 00 20) blr
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-powerpc/pr23937.d binutils-2.35/ld/testsuite/ld-powerpc/pr23937.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-powerpc/pr23937.d 2020-07-28 15:07:51.612384918 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-powerpc/pr23937.d 2020-07-28 15:19:32.764564253 +0100
|
||||||
|
@@ -6,5 +6,4 @@
|
||||||
|
#...
|
||||||
|
.* R_PPC64_IRELATIVE +10000180
|
||||||
|
#...
|
||||||
|
-.*: 0+10000180 +20 IFUNC +LOCAL +DEFAULT .* magic
|
||||||
|
#pass
|
||||||
|
Only in binutils-2.35/ld/testsuite/ld-powerpc/: #powerpc.exp#
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-powerpc/pr23937.d binutils-2.35/ld/testsuite/ld-powerpc/pr23937.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-powerpc/pr23937.d 2020-07-28 15:59:15.887927038 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-powerpc/pr23937.d 2020-07-28 16:04:44.120594140 +0100
|
||||||
|
@@ -5,5 +5,4 @@
|
||||||
|
|
||||||
|
#...
|
||||||
|
.* R_PPC64_IRELATIVE +10000180
|
||||||
|
-#...
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 15:59:15.867927119 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 16:05:49.751327625 +0100
|
||||||
|
@@ -534,6 +534,7 @@ if { ![check_ifunc_attribute_available]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if { [istarget "s390*-*-*"]
|
||||||
|
+ || [istarget "powerpc*-*-*"]
|
||||||
|
|| [istarget "ppc*-*-*"] } {
|
||||||
|
return
|
||||||
|
} else {
|
@ -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,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,120 @@
|
|||||||
|
--- binutils.orig/ld/testsuite/ld-elf/indirect.exp 2020-07-28 13:07:26.371506355 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elf/indirect.exp 2020-07-28 13:19:16.109480917 +0100
|
||||||
|
@@ -151,12 +151,6 @@ set run_tests {
|
||||||
|
{"Run with libindirect4c.so 4"
|
||||||
|
"-Wl,--no-as-needed tmpdir/libindirect4c.so tmpdir/indirect4b.o tmpdir/indirect4a.o" ""
|
||||||
|
{dummy.c} "indirect4d" "indirect4.out"}
|
||||||
|
- {"Run indirect5 1"
|
||||||
|
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libindirect5.so" ""
|
||||||
|
- {indirect5a.c} "indirect5a" "indirect5.out" "$NOPIE_CFLAGS"}
|
||||||
|
- {"Run indirect5 2"
|
||||||
|
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/indirect5a.o tmpdir/libindirect5.so" ""
|
||||||
|
- {dummy.c} "indirect5b" "indirect5.out" "$NOPIE_CFLAGS"}
|
||||||
|
{"Run indirect6 1"
|
||||||
|
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libindirect5.so" ""
|
||||||
|
{indirect6a.c} "indirect6a" "indirect5.out" "$NOPIE_CFLAGS"}
|
||||||
|
@@ -208,7 +202,7 @@ proc check_dynamic_syms { test } {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
-foreach t [list indirect5a indirect5b indirect6a indirect6b] {
|
||||||
|
+foreach t [list indirect6a indirect6b] {
|
||||||
|
set testname [concat $t "dynsym"]
|
||||||
|
if { [check_dynamic_syms tmpdir/$t] } {
|
||||||
|
pass $testname
|
||||||
|
@@ -225,12 +219,6 @@ if { ! [string match "" $exec_output] }
|
||||||
|
}
|
||||||
|
|
||||||
|
set pie_tests {
|
||||||
|
- {"Run indirect5 3"
|
||||||
|
- "-pie -Wl,--no-as-needed tmpdir/libindirect5.so" ""
|
||||||
|
- {indirect5a.c} "indirect5c" "indirect5.out" "-fPIE"}
|
||||||
|
- {"Run indirect5 4"
|
||||||
|
- "-pie -Wl,--no-as-needed tmpdir/indirect5a.o tmpdir/libindirect5.so" ""
|
||||||
|
- {dummy.c} "indirect5d" "indirect5.out" "-fPIE"}
|
||||||
|
{"Run indirect6 3"
|
||||||
|
"-pie -Wl,--no-as-needed tmpdir/libindirect5.so" ""
|
||||||
|
{indirect6a.c} "indirect6c" "indirect5.out" "-fPIE"}
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-elf/shared.exp binutils-2.35/ld/testsuite/ld-elf/shared.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2020-07-28 14:15:41.646811416 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elf/shared.exp 2020-07-28 14:19:13.606963162 +0100
|
||||||
|
@@ -1380,18 +1380,6 @@ if { [istarget *-*-linux*]
|
||||||
|
"pr22393-2-static" \
|
||||||
|
"pass.out" \
|
||||||
|
] \
|
||||||
|
- [list \
|
||||||
|
- "Run pr21964-4" \
|
||||||
|
- "" \
|
||||||
|
- "" \
|
||||||
|
- {pr21964-4.c} \
|
||||||
|
- "pr21964-4" \
|
||||||
|
- "pass.out" \
|
||||||
|
- "" \
|
||||||
|
- "" \
|
||||||
|
- "" \
|
||||||
|
- "-ldl" \
|
||||||
|
- ] \
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-elf/tls.exp binutils-2.35/ld/testsuite/ld-elf/tls.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/tls.exp 2020-07-28 14:15:41.635811460 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elf/tls.exp 2020-07-28 14:21:04.086521032 +0100
|
||||||
|
@@ -49,5 +49,6 @@ run_ld_link_tests [list \
|
||||||
|
{{readelf -r pr22263-1.rd}} \
|
||||||
|
"pr22263-1" \
|
||||||
|
"-fPIE -O2 $NOSANTIZE_CFLAGS" \
|
||||||
|
- ] \
|
||||||
|
+ ] \
|
||||||
|
+ { s390*-*-* } \
|
||||||
|
]
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 14:15:41.532811873 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-ifunc/ifunc.exp 2020-07-28 14:22:37.768146123 +0100
|
||||||
|
@@ -531,7 +531,9 @@ run_ld_link_exec_tests [list \
|
||||||
|
if { ![check_ifunc_attribute_available] } {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+if { [istarget "s390*-*-*"] } {
|
||||||
|
+ return
|
||||||
|
+} else {
|
||||||
|
run_cc_link_tests [list \
|
||||||
|
[list \
|
||||||
|
"Build pr18808a.o" \
|
||||||
|
@@ -668,6 +670,7 @@ run_cc_link_tests [list \
|
||||||
|
"pr23169f" \
|
||||||
|
] \
|
||||||
|
]
|
||||||
|
+}
|
||||||
|
|
||||||
|
run_ld_link_exec_tests [list \
|
||||||
|
[list \
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/tls.exp 2020-07-28 15:07:51.733384431 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elf/tls.exp 2020-07-28 15:10:08.096835851 +0100
|
||||||
|
@@ -50,5 +50,5 @@ run_ld_link_tests [list \
|
||||||
|
"pr22263-1" \
|
||||||
|
"-fPIE -O2 $NOSANTIZE_CFLAGS" \
|
||||||
|
] \
|
||||||
|
- { s390*-*-* } \
|
||||||
|
+ [list "s390*-*-*"] \
|
||||||
|
]
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/tls.exp 2020-07-28 15:59:15.964926725 +0100
|
||||||
|
+++ binutils-2.35/ld/testsuite/ld-elf/tls.exp 2020-07-28 15:59:55.898764564 +0100
|
||||||
|
@@ -39,6 +39,9 @@ if [istarget "sparc*-*-*"] {
|
||||||
|
append AFLAGS_PIC " -K PIC"
|
||||||
|
}
|
||||||
|
|
||||||
|
+if [istarget "s390*-*-*"] {
|
||||||
|
+ return
|
||||||
|
+} else {
|
||||||
|
run_ld_link_tests [list \
|
||||||
|
[list \
|
||||||
|
"Build pr22263-1" \
|
||||||
|
@@ -50,5 +53,5 @@ run_ld_link_tests [list \
|
||||||
|
"pr22263-1" \
|
||||||
|
"-fPIE -O2 $NOSANTIZE_CFLAGS" \
|
||||||
|
] \
|
||||||
|
- [list "s390*-*-*"] \
|
||||||
|
]
|
||||||
|
+}
|
@ -0,0 +1,62 @@
|
|||||||
|
diff -rup binutils.orig/bfd/elf-bfd.h binutils-2.35/bfd/elf-bfd.h
|
||||||
|
--- binutils.orig/bfd/elf-bfd.h 2021-06-23 15:00:33.913477324 +0100
|
||||||
|
+++ binutils-2.35/bfd/elf-bfd.h 2021-06-23 15:03:42.300235019 +0100
|
||||||
|
@@ -1748,6 +1748,11 @@ struct bfd_elf_section_data
|
||||||
|
/* Link from a text section to its .eh_frame_entry section. */
|
||||||
|
asection *eh_frame_entry;
|
||||||
|
|
||||||
|
+ /* TRUE if the section has secondary reloc sections associated with it.
|
||||||
|
+ FIXME: In the future it might be better to change this into a list
|
||||||
|
+ of secondary reloc sections, making lookup easier and faster. */
|
||||||
|
+ bfd_boolean has_secondary_relocs;
|
||||||
|
+
|
||||||
|
/* A pointer used for various section optimizations. */
|
||||||
|
void *sec_info;
|
||||||
|
};
|
||||||
|
diff -rup binutils.orig/bfd/elf.c binutils-2.35/bfd/elf.c
|
||||||
|
--- binutils.orig/bfd/elf.c 2021-06-23 15:00:33.902477396 +0100
|
||||||
|
+++ binutils-2.35/bfd/elf.c 2021-06-23 15:02:36.269672347 +0100
|
||||||
|
@@ -12672,6 +12672,7 @@ _bfd_elf_copy_special_section_fields (co
|
||||||
|
{
|
||||||
|
asection * isec;
|
||||||
|
asection * osec;
|
||||||
|
+ struct bfd_elf_section_data * esd;
|
||||||
|
|
||||||
|
if (isection == NULL)
|
||||||
|
return FALSE;
|
||||||
|
@@ -12687,8 +12688,9 @@ _bfd_elf_copy_special_section_fields (co
|
||||||
|
if (osec == NULL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
- BFD_ASSERT (elf_section_data (osec)->sec_info == NULL);
|
||||||
|
- elf_section_data (osec)->sec_info = elf_section_data (isec)->sec_info;
|
||||||
|
+ esd = elf_section_data (osec);
|
||||||
|
+ BFD_ASSERT (esd->sec_info == NULL);
|
||||||
|
+ esd->sec_info = elf_section_data (isec)->sec_info;
|
||||||
|
osection->sh_type = SHT_RELA;
|
||||||
|
osection->sh_link = elf_onesymtab (obfd);
|
||||||
|
if (osection->sh_link == 0)
|
||||||
|
@@ -12731,6 +12733,10 @@ _bfd_elf_copy_special_section_fields (co
|
||||||
|
osection->sh_info =
|
||||||
|
elf_section_data (isection->bfd_section->output_section)->this_idx;
|
||||||
|
|
||||||
|
+ esd = elf_section_data (isection->bfd_section->output_section);
|
||||||
|
+ BFD_ASSERT (esd != NULL);
|
||||||
|
+ osection->sh_info = esd->this_idx;
|
||||||
|
+ esd->has_secondary_relocs = TRUE;
|
||||||
|
#if DEBUG_SECONDARY_RELOCS
|
||||||
|
fprintf (stderr, "update header of %s, sh_link = %u, sh_info = %u\n",
|
||||||
|
osec->name, osection->sh_link, osection->sh_info);
|
||||||
|
diff -rup binutils.orig/bfd/elfcode.h binutils-2.35/bfd/elfcode.h
|
||||||
|
--- binutils.orig/bfd/elfcode.h 2021-06-23 15:00:33.910477344 +0100
|
||||||
|
+++ binutils-2.35/bfd/elfcode.h 2021-06-23 15:04:32.506902070 +0100
|
||||||
|
@@ -987,7 +987,8 @@ elf_write_relocs (bfd *abfd, asection *s
|
||||||
|
(*swap_out) (abfd, &src_rela, dst_rela);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!bed->write_secondary_relocs (abfd, sec))
|
||||||
|
+ if (elf_section_data (sec)->has_secondary_relocs
|
||||||
|
+ && !bed->write_secondary_relocs (abfd, sec))
|
||||||
|
{
|
||||||
|
*failedp = TRUE;
|
||||||
|
return;
|
@ -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,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)
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue