!7 升级mingw-binutils版本到2.37

From: @niko_yhc 
Reviewed-by: @jianminw 
Signed-off-by: @jianminw
This commit is contained in:
openeuler-ci-bot 2024-02-06 00:26:41 +00:00 committed by Gitee
commit b1bca4e81c
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
28 changed files with 1713 additions and 2211 deletions

View File

@ -1,58 +0,0 @@
diff -rupN --no-dereference binutils-2.34/bfd/dwarf2.c binutils-2.34-new/bfd/dwarf2.c
--- binutils-2.34/bfd/dwarf2.c 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/bfd/dwarf2.c 2021-04-12 11:40:29.676218279 +0200
@@ -523,22 +523,24 @@ read_section (bfd * abfd,
bfd_byte ** section_buffer,
bfd_size_type * section_size)
{
- asection *msec;
const char *section_name = sec->uncompressed_name;
bfd_byte *contents = *section_buffer;
- bfd_size_type amt;
/* The section may have already been read. */
if (contents == NULL)
{
+ bfd_size_type amt;
+ asection *msec;
+ ufile_ptr filesize;
+
msec = bfd_get_section_by_name (abfd, section_name);
- if (! msec)
+ if (msec == NULL)
{
section_name = sec->compressed_name;
if (section_name != NULL)
msec = bfd_get_section_by_name (abfd, section_name);
}
- if (! msec)
+ if (msec == NULL)
{
_bfd_error_handler (_("DWARF error: can't find %s section."),
sec->uncompressed_name);
@@ -546,12 +548,23 @@ read_section (bfd * abfd,
return FALSE;
}
- *section_size = msec->rawsize ? msec->rawsize : msec->size;
+ amt = bfd_get_section_limit_octets (abfd, msec);
+ filesize = bfd_get_file_size (abfd);
+ if (amt >= filesize)
+ {
+ /* PR 26946 */
+ _bfd_error_handler (_("DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)"),
+ section_name, (long) amt, (long) filesize);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
+ *section_size = amt;
/* Paranoia - alloc one extra so that we can make sure a string
section is NUL terminated. */
- amt = *section_size + 1;
+ amt += 1;
if (amt == 0)
{
+ /* Paranoia - this should never happen. */
bfd_set_error (bfd_error_no_memory);
return FALSE;
}

View File

@ -0,0 +1,11 @@
diff -rupN --no-dereference binutils-2.37/bfd/elfnn-aarch64.c binutils-2.37-new/bfd/elfnn-aarch64.c
--- binutils-2.37/bfd/elfnn-aarch64.c 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/elfnn-aarch64.c 2021-07-24 21:59:12.398868364 +0200
@@ -5473,6 +5473,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;

View File

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.34/gold/fileread.cc binutils-2.34-new/gold/fileread.cc
--- binutils-2.34/gold/fileread.cc 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/gold/fileread.cc 2020-12-18 02:57:23.485023881 +0100
@@ -381,6 +381,12 @@ File_read::do_read(off_t start, section_
diff -rupN --no-dereference binutils-2.37/gold/fileread.cc binutils-2.37-new/gold/fileread.cc
--- binutils-2.37/gold/fileread.cc 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/gold/fileread.cc 2021-07-24 21:59:22.937765719 +0200
@@ -385,6 +385,12 @@ File_read::do_read(off_t start, section_
ssize_t bytes;
if (this->whole_file_view_ != NULL)
{

View File

@ -1,42 +0,0 @@
diff -rupN --no-dereference binutils-2.34/config/intdiv0.m4 binutils-2.34-new/config/intdiv0.m4
--- binutils-2.34/config/intdiv0.m4 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/config/intdiv0.m4 2020-12-18 02:57:26.339013830 +0100
@@ -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 -rupN --no-dereference binutils-2.34/libiberty/aclocal.m4 binutils-2.34-new/libiberty/aclocal.m4
--- binutils-2.34/libiberty/aclocal.m4 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/libiberty/aclocal.m4 2020-12-18 02:57:26.339013830 +0100
@@ -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 -rupN --no-dereference binutils-2.34/libiberty/configure.ac binutils-2.34-new/libiberty/configure.ac
--- binutils-2.34/libiberty/configure.ac 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/libiberty/configure.ac 2020-12-18 02:57:26.339013830 +0100
@@ -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

View File

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.34/configure binutils-2.34-new/configure
--- binutils-2.34/configure 2020-01-18 15:01:13.000000000 +0100
+++ binutils-2.34-new/configure 2020-12-18 02:57:17.364045443 +0100
@@ -5103,49 +5103,6 @@ if test -z "$LD"; then
diff -rupN --no-dereference binutils-2.37/configure binutils-2.37-new/configure
--- binutils-2.37/configure 2021-07-18 18:36:27.000000000 +0200
+++ binutils-2.37-new/configure 2021-07-24 21:59:14.582847093 +0200
@@ -5257,49 +5257,6 @@ if test -z "$LD"; then
fi
fi
@ -51,10 +51,10 @@ diff -rupN --no-dereference binutils-2.34/configure binutils-2.34-new/configure
if test -n "$ac_tool_prefix"; then
diff -rupN --no-dereference binutils-2.34/configure.ac binutils-2.34-new/configure.ac
--- binutils-2.34/configure.ac 2020-02-01 13:02:56.000000000 +0100
+++ binutils-2.34-new/configure.ac 2020-12-18 02:57:17.364045443 +0100
@@ -1284,26 +1284,6 @@ if test -z "$LD"; then
diff -rupN --no-dereference binutils-2.37/configure.ac binutils-2.37-new/configure.ac
--- binutils-2.37/configure.ac 2021-07-18 18:48:58.000000000 +0200
+++ binutils-2.37-new/configure.ac 2021-07-24 21:59:14.583847083 +0200
@@ -1300,26 +1300,6 @@ if test -z "$LD"; then
fi
fi

View File

@ -1,33 +1,33 @@
diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/Makefile.am
--- binutils-2.34/bfd/Makefile.am 2020-12-18 02:57:13.290059799 +0100
+++ binutils-2.34-new/bfd/Makefile.am 2020-12-18 02:57:13.293059789 +0100
diff -rupN --no-dereference binutils-2.37/bfd/Makefile.am binutils-2.37-new/bfd/Makefile.am
--- binutils-2.37/bfd/Makefile.am 2021-07-24 21:59:01.980969825 +0200
+++ binutils-2.37-new/bfd/Makefile.am 2021-07-24 21:59:01.986969767 +0200
@@ -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
- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h
+ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h
else !INSTALL_LIBBFD
# Empty these so that the respective installation directories will not be created.
bfdlibdir =
diff -rupN --no-dereference binutils-2.34/bfd/Makefile.in binutils-2.34-new/bfd/Makefile.in
--- binutils-2.34/bfd/Makefile.in 2020-12-18 02:57:13.290059799 +0100
+++ binutils-2.34-new/bfd/Makefile.in 2020-12-18 02:57:13.294059785 +0100
diff -rupN --no-dereference binutils-2.37/bfd/Makefile.in binutils-2.37-new/bfd/Makefile.in
--- binutils-2.37/bfd/Makefile.in 2021-07-24 21:59:01.980969825 +0200
+++ binutils-2.37-new/bfd/Makefile.in 2021-07-24 21:59:01.987969757 +0200
@@ -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)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h
+ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h
HEADERS = $(bfdinclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
@@ -468,7 +468,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel
@@ -469,7 +469,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)/diagnostics.h \
+@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \
@INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2)
@INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@
@INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la

View File

@ -1,12 +1,10 @@
diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/binutils/readelf.c
--- binutils-2.34/binutils/readelf.c 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/binutils/readelf.c 2020-12-18 02:57:15.341052571 +0100
@@ -20350,75 +20350,85 @@ process_file (char * file_name)
Filedata * filedata = NULL;
diff -rupN --no-dereference binutils-2.37/binutils/readelf.c binutils-2.37-new/binutils/readelf.c
--- binutils-2.37/binutils/readelf.c 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/binutils/readelf.c 2021-07-24 21:59:05.781932809 +0200
@@ -21873,45 +21873,52 @@ process_file (char * file_name)
struct stat statbuf;
char armag[SARMAG];
- bfd_boolean ret = TRUE;
+ bfd_boolean ret = FALSE;
bool ret = true;
+ char * name;
+ char * saved_program_name;
+
@ -26,7 +24,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b
else
- error (_("Could not locate '%s'. System error message: %s\n"),
- file_name, strerror (errno));
- return FALSE;
- return false;
+ error (_("Could not locate file. System error message: %s\n"),
+ strerror (errno));
+ goto done;
@ -35,7 +33,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b
if (! S_ISREG (statbuf.st_mode))
{
- error (_("'%s' is not an ordinary file\n"), file_name);
- return FALSE;
- return false;
+ error (_("Not an ordinary file\n"));
+ goto done;
}
@ -44,7 +42,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b
if (filedata == NULL)
{
error (_("Out of memory allocating file data structure\n"));
- return FALSE;
- return false;
+ goto done;
}
@ -54,7 +52,7 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b
{
- error (_("Input file '%s' is not readable.\n"), file_name);
- free (filedata);
- return FALSE;
- return false;
+ error (_("Not readable\n"));
+ goto done;
}
@ -64,62 +62,63 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b
- error (_("%s: Failed to read file's magic number\n"), file_name);
- fclose (filedata->handle);
- free (filedata);
- return FALSE;
- }
-
- filedata->file_size = (bfd_size_type) statbuf.st_size;
-
- if (memcmp (armag, ARMAG, SARMAG) == 0)
- {
- if (! process_archive (filedata, FALSE))
- ret = FALSE;
- }
- else if (memcmp (armag, ARMAGT, SARMAG) == 0)
- {
- if ( ! process_archive (filedata, TRUE))
- ret = FALSE;
- return false;
+ error (_("Failed to read file's magic number\n"));
+ goto done;
}
filedata->file_size = (bfd_size_type) statbuf.st_size;
@@ -21919,33 +21926,39 @@ process_file (char * file_name)
if (memcmp (armag, ARMAG, SARMAG) == 0)
{
- if (! process_archive (filedata, false))
- ret = false;
+ if (process_archive (filedata, false))
+ ret = true;
}
else if (memcmp (armag, ARMAGT, SARMAG) == 0)
{
- if ( ! process_archive (filedata, true))
- ret = false;
+ if (process_archive (filedata, true))
+ ret = true;
}
else
{
- if (do_archive_index)
if (do_archive_index && !check_all)
- error (_("File %s is not an archive so its index cannot be displayed.\n"),
- file_name);
+ filedata->file_size = (bfd_size_type) statbuf.st_size;
+ error (_("Not an archive so its index cannot be displayed.\n"));
rewind (filedata->handle);
filedata->archive_file_size = filedata->archive_file_offset = 0;
- rewind (filedata->handle);
- archive_file_size = archive_file_offset = 0;
-
- if (! process_object (filedata))
- ret = FALSE;
+ if (memcmp (armag, ARMAG, SARMAG) == 0)
+ {
+ if (process_archive (filedata, FALSE))
+ ret = TRUE;
+ }
+ else if (memcmp (armag, ARMAGT, SARMAG) == 0)
+ {
+ if (process_archive (filedata, TRUE))
+ ret = TRUE;
+ }
+ else
+ {
+ if (do_archive_index)
+ error (_("Not an archive so its index cannot be displayed.\n"));
+
+ rewind (filedata->handle);
+ archive_file_size = archive_file_offset = 0;
+
+ if (process_object (filedata))
+ ret = TRUE;
+ }
- ret = false;
+ if (process_object (filedata))
+ ret = true;
}
fclose (filedata->handle);
- fclose (filedata->handle);
- free (filedata->section_headers);
- free (filedata->program_headers);
- free (filedata->string_table);
- free (filedata->dump.dump_sects);
- free (filedata);
+ done:
free (filedata);
+ if (filedata)
+ {
+ if (filedata->handle != NULL)
+ fclose (filedata->handle);
+ free (filedata->section_headers);
+ free (filedata->program_headers);
+ free (filedata->string_table);
+ free (filedata->dump.dump_sects);
+ free (filedata);
+ }
+ free (program_name);
+ program_name = saved_program_name;
return ret;
}
free (ba_cache.strtab);
ba_cache.strtab = NULL;

View File

@ -1,6 +1,21 @@
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-10.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-10.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-10.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-10.d 2020-12-18 02:57:20.370034853 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elfvers/vers24.rd binutils-2.37-new/ld/testsuite/ld-elfvers/vers24.rd
--- binutils-2.37/ld/testsuite/ld-elfvers/vers24.rd 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-elfvers/vers24.rd 2021-07-24 21:59:18.647807502 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d 2021-07-24 21:59:18.648807492 +0200
@@ -32,7 +32,8 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
#...
@ -11,9 +26,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-10.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-11.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-11.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-11.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-11.d 2020-12-18 02:57:20.371034849 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d 2021-07-24 21:59:18.648807492 +0200
@@ -35,8 +35,9 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
#...
@ -26,18 +41,18 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-11.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-13.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-13.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-13.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-13.d 2020-12-18 02:57:20.371034849 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-13.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-13.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-13.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-13.d 2021-07-24 21:59:18.648807492 +0200
@@ -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 -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-14.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-14.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-14.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-14.d 2020-12-18 02:57:20.371034849 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-14.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-14.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-14.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-14.d 2021-07-24 21:59:18.649807482 +0200
@@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -47,9 +62,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-14.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-15.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-15.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-15.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-15.d 2020-12-18 02:57:20.371034849 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-15.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-15.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-15.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-15.d 2021-07-24 21:59:18.649807482 +0200
@@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -59,9 +74,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-15.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-16.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-16.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-16.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-16.d 2020-12-18 02:57:20.372034846 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d 2021-07-24 21:59:18.649807482 +0200
@@ -30,9 +30,8 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -74,9 +89,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-16.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-17.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-17.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-17.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-17.d 2020-12-18 02:57:20.372034846 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d 2021-07-24 21:59:18.649807482 +0200
@@ -31,7 +31,8 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -87,9 +102,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-17.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-18.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-18.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-18.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-18.d 2020-12-18 02:57:20.372034846 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d 2021-07-24 21:59:18.650807473 +0200
@@ -32,7 +32,8 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
#...
@ -100,9 +115,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-18.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-19.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-19.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-19.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-19.d 2020-12-18 02:57:20.372034846 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d 2021-07-24 21:59:18.650807473 +0200
@@ -35,8 +35,9 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
#...
@ -115,9 +130,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-19.d bin
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-20.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-20.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-20.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-20.d 2020-12-18 02:57:20.372034846 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-20.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-20.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-20.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-20.d 2021-07-24 21:59:18.650807473 +0200
@@ -2,6 +2,5 @@ hook called: all symbols read.
Input: func.c \(tmpdir/libfunc.a\)
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
@ -126,9 +141,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-20.d bin
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-21.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-21.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-21.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-21.d 2020-12-18 02:57:20.372034846 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-21.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-21.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-21.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-21.d 2021-07-24 21:59:18.650807473 +0200
@@ -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.*
@ -137,9 +152,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-21.d bin
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-22.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-22.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-22.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-22.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-22.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-22.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-22.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-22.d 2021-07-24 21:59:18.650807473 +0200
@@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.*
hook called: all symbols read.
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
@ -148,9 +163,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-22.d bin
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-23.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-23.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-23.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-23.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-23.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-23.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-23.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-23.d 2021-07-24 21:59:18.651807463 +0200
@@ -2,6 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func.
hook called: all symbols read.
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
@ -159,47 +174,47 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-23.d bin
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-24.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-24.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-24.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-24.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-24.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-24.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-24.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-24.d 2021-07-24 21:59:18.651807463 +0200
@@ -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 -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-25.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-25.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-25.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-25.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-25.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-25.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-25.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-25.d 2021-07-24 21:59:18.651807463 +0200
@@ -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 -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-28.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-28.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-28.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-28.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-28.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-28.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-28.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-28.d 2021-07-24 21:59:18.651807463 +0200
@@ -1 +1,2 @@
.*: error: Error
+#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-29.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-29.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-29.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-29.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-29.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-29.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-29.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-29.d 2021-07-24 21:59:18.652807453 +0200
@@ -1 +1,2 @@
.*: warning: Warning
+#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-30.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-30.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-30.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-30.d 2020-12-18 02:57:20.373034842 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-30.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-30.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-30.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-30.d 2021-07-24 21:59:18.652807453 +0200
@@ -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 -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-6.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-6.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-6.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-6.d 2020-12-18 02:57:20.374034839 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-6.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-6.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-6.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-6.d 2021-07-24 21:59:18.652807453 +0200
@@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -209,9 +224,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-6.d binu
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-7.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-7.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-7.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-7.d 2020-12-18 02:57:20.374034839 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-7.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-7.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-7.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-7.d 2021-07-24 21:59:18.652807453 +0200
@@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -221,9 +236,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-7.d binu
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-8.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-8.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-8.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-8.d 2020-12-18 02:57:20.374034839 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d 2021-07-24 21:59:18.653807444 +0200
@@ -30,9 +30,8 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -236,9 +251,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-8.d binu
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-9.d binutils-2.34-new/ld/testsuite/ld-plugin/plugin-9.d
--- binutils-2.34/ld/testsuite/ld-plugin/plugin-9.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/plugin-9.d 2020-12-18 02:57:20.374034839 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d 2021-07-24 21:59:18.653807444 +0200
@@ -31,7 +31,8 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
@ -249,9 +264,25 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/plugin-9.d binu
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/pr20070.d binutils-2.34-new/ld/testsuite/ld-plugin/pr20070.d
--- binutils-2.34/ld/testsuite/ld-plugin/pr20070.d 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-plugin/pr20070.d 2020-12-18 02:57:20.374034839 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin.exp binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp
--- binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp 2021-07-24 21:59:18.653807444 +0200
@@ -117,6 +117,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"
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/pr20070.d binutils-2.37-new/ld/testsuite/ld-plugin/pr20070.d
--- binutils-2.37/ld/testsuite/ld-plugin/pr20070.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/pr20070.d 2021-07-24 21:59:18.653807444 +0200
@@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI
Sym: 'undef' Resolution: LDPR_UNDEF
Sym: 'weakundef' Resolution: LDPR_UNDEF
@ -259,9 +290,9 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-plugin/pr20070.d binut
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-srec/srec.exp binutils-2.34-new/ld/testsuite/ld-srec/srec.exp
--- binutils-2.34/ld/testsuite/ld-srec/srec.exp 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-srec/srec.exp 2020-12-18 02:57:20.374034839 +0100
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-srec/srec.exp binutils-2.37-new/ld/testsuite/ld-srec/srec.exp
--- binutils-2.37/ld/testsuite/ld-srec/srec.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-srec/srec.exp 2021-07-24 21:59:18.654807434 +0200
@@ -21,6 +21,8 @@
# Get the offset from an S-record line to the start of the data.
@ -271,32 +302,3 @@ diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-srec/srec.exp binutils
proc srec_off { l } {
if [string match "S1*" $l] {
return 8
diff -rupN --no-dereference binutils-2.34/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.34-new/ld/testsuite/ld-x86-64/x86-64.exp
--- binutils-2.34/ld/testsuite/ld-x86-64/x86-64.exp 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/ld/testsuite/ld-x86-64/x86-64.exp 2020-12-18 02:57:20.374034839 +0100
@@ -1322,25 +1322,6 @@ if { [isnative] && [check_compiler_avail
"$NOPIE_CFLAGS" \
] \
]
- } else {
- run_cc_link_tests [list \
- [list \
- "Build pr22001-1b" \
- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed 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 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 \

View File

@ -1,368 +0,0 @@
From 014cc7f849e8209623fc99264814bce7b3b6faf2 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@gotplt.org>
Date: Mon, 7 Dec 2020 20:48:33 +0530
Subject: [PATCH] binutils: Make smart_rename safe too
smart_rename is capable of handling symlinks by copying and it also
tries to preserve ownership and permissions of files when they're
overwritten during the rename. This is useful in objcopy where the
file properties need to be preserved.
However because smart_rename does this using file names, it leaves a
race window between renames and permission fixes. This change removes
this race window by using file descriptors from the original BFDs that
were used to manipulate these files wherever possible.
The file that is to be renamed is also passed as a file descriptor so
that we use fchown/fchmod on the file descriptor, thus making sure
that we only modify the file we have opened to write. Further, in
case the file is to be overwritten (as is the case in ar or objcopy),
the permissions that need to be restored are taken from the file
descriptor that was opened for input so that integrity of the file
status is maintained all the way through to the rename.
binutils/
* rename.c
* ar.c
(write_archive) [!defined (_WIN32) || defined (__CYGWIN32__)]:
Initialize TARGET_STAT and OFD to pass to SMART_RENAME.
* arsup.c
(ar_save) [defined (_WIN32) || defined (__CYGWIN32__)]:
Likewise.
* bucomm.h (smart_rename): Add new arguments to declaration.
* objcopy.c
(strip_main)[defined (_WIN32) || defined (__CYGWIN32__)]:
Initialize COPYFD and pass to SMART_RENAME.
(copy_main) [defined (_WIN32) || defined (__CYGWIN32__)]:
Likewise.
* rename.c (try_preserve_permissions): New function.
(smart_rename): Use it and add new arguments.
---
binutils/ChangeLog | 18 ++++++++
binutils/ar.c | 12 +++++-
binutils/arsup.c | 14 ++++++-
binutils/bucomm.h | 3 +-
binutils/objcopy.c | 42 +++++++++++++++----
binutils/rename.c | 101 +++++++++++++++++++++++++++++++--------------
6 files changed, 148 insertions(+), 42 deletions(-)
diff --git a/binutils/ar.c b/binutils/ar.c
index 225324208bd..6598dd9012c 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -1254,6 +1254,8 @@ write_archive (bfd *iarch)
char *old_name, *new_name;
bfd *contents_head = iarch->archive_next;
int ofd = -1;
+ struct stat target_stat;
+ bfd_boolean skip_stat = FALSE;
old_name = (char *) xmalloc (strlen (bfd_get_filename (iarch)) + 1);
strcpy (old_name, bfd_get_filename (iarch));
@@ -1299,6 +1301,14 @@ write_archive (bfd *iarch)
if (!bfd_set_archive_head (obfd, contents_head))
bfd_fatal (old_name);
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+ ofd = dup (ofd);
+ if (iarch == NULL || iarch->iostream == NULL)
+ skip_stat = TRUE;
+ else if (ofd == -1 || fstat (fileno (iarch->iostream), &target_stat) != 0)
+ bfd_fatal (old_name);
+#endif
+
if (!bfd_close (obfd))
bfd_fatal (old_name);
@@ -1308,7 +1318,7 @@ write_archive (bfd *iarch)
/* We don't care if this fails; we might be creating the archive. */
bfd_close (iarch);
- if (smart_rename (new_name, old_name, 0) != 0)
+ if (smart_rename (new_name, old_name, ofd, skip_stat ? NULL : &target_stat, 0) != 0)
xexit (1);
free (old_name);
free (new_name);
diff --git a/binutils/arsup.c b/binutils/arsup.c
index a668f270f1a..8b4437ff417 100644
--- a/binutils/arsup.c
+++ b/binutils/arsup.c
@@ -345,13 +345,25 @@ ar_save (void)
else
{
char *ofilename = xstrdup (bfd_get_filename (obfd));
+ bfd_boolean skip_stat = FALSE;
+ struct stat target_stat;
+ int ofd = -1;
if (deterministic > 0)
obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+ /* It's OK to fail; at worst it will result in SMART_RENAME using a slow
+ copy fallback to write the output. */
+ ofd = dup (fileno (obfd->iostream));
+ if (lstat (real_name, &target_stat) != 0)
+ skip_stat = TRUE;
+#endif
+
bfd_close (obfd);
- smart_rename (ofilename, real_name, 0);
+ smart_rename (ofilename, real_name, ofd,
+ skip_stat ? NULL : &target_stat, 0);
obfd = 0;
free (ofilename);
}
diff --git a/binutils/bucomm.h b/binutils/bucomm.h
index afb8e09c2fd..9613b922d5d 100644
--- a/binutils/bucomm.h
+++ b/binutils/bucomm.h
@@ -71,7 +71,8 @@ extern void print_version (const char *);
/* In rename.c. */
extern void set_times (const char *, const struct stat *);
-extern int smart_rename (const char *, const char *, int);
+extern int smart_rename (const char *, const char *, int, struct stat *, int);
+
/* In libiberty. */
void *xmalloc (size_t);
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index b6cf6ea4baa..04ba95ec140 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -4815,6 +4815,7 @@ strip_main (int argc, char *argv[])
struct stat statbuf;
char *tmpname;
int tmpfd = -1;
+ int copyfd = -1;
if (get_file_size (argv[i]) < 1)
{
@@ -4828,7 +4829,12 @@ strip_main (int argc, char *argv[])
else
tmpname = output_file;
- if (tmpname == NULL)
+ if (tmpname == NULL
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+ /* Retain a copy of TMPFD since we will need it for SMART_RENAME. */
+ || (tmpfd >= 0 && (copyfd = dup (tmpfd)) == -1)
+#endif
+ )
{
bfd_nonfatal_message (argv[i], NULL, NULL,
_("could not create temporary file to hold stripped copy"));
@@ -4846,12 +4852,18 @@ strip_main (int argc, char *argv[])
if (output_file != tmpname)
status = (smart_rename (tmpname,
output_file ? output_file : argv[i],
- preserve_dates) != 0);
+ copyfd, &statbuf, preserve_dates) != 0);
if (status == 0)
status = hold_status;
}
else
- unlink_if_ordinary (tmpname);
+ {
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+ if (copyfd >= 0)
+ close (copyfd);
+#endif
+ unlink_if_ordinary (tmpname);
+ }
if (output_file != tmpname)
free (tmpname);
}
@@ -5059,6 +5071,7 @@ copy_main (int argc, char *argv[])
bfd_boolean use_globalize = FALSE;
bfd_boolean use_keep_global = FALSE;
int c, tmpfd = -1;
+ int copyfd = -1;
struct stat statbuf;
const bfd_arch_info_type *input_arch = NULL;
@@ -5903,9 +5916,16 @@ copy_main (int argc, char *argv[])
else
tmpname = output_filename;
- if (tmpname == NULL)
- fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"),
- input_filename, strerror (errno));
+ if (tmpname == NULL
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+ /* Retain a copy of TMPFD since we will need it for SMART_RENAME. */
+ || (tmpfd >= 0 && (copyfd = dup (tmpfd)) == -1)
+#endif
+ )
+ {
+ fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"),
+ input_filename, strerror (errno));
+ }
copy_file (input_filename, tmpname, tmpfd, &statbuf, input_target,
output_target, input_arch);
@@ -5914,11 +5934,17 @@ copy_main (int argc, char *argv[])
if (preserve_dates)
set_times (tmpname, &statbuf);
if (tmpname != output_filename)
- status = (smart_rename (tmpname, input_filename,
+ status = (smart_rename (tmpname, input_filename, copyfd, &statbuf,
preserve_dates) != 0);
}
else
- unlink_if_ordinary (tmpname);
+ {
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+ if (copyfd >= 0)
+ close (copyfd);
+#endif
+ unlink_if_ordinary (tmpname);
+ }
if (tmpname != output_filename)
free (tmpname);
diff --git a/binutils/rename.c b/binutils/rename.c
index bf3b68d0462..6b9165ea1c9 100644
--- a/binutils/rename.c
+++ b/binutils/rename.c
@@ -131,17 +131,55 @@ set_times (const char *destination, const struct stat *statbuf)
#endif
#endif
-/* Rename FROM to TO, copying if TO is a link.
- Return 0 if ok, -1 if error. */
+#if !defined (_WIN32) || defined (__CYGWIN32__)
+/* Try to preserve the permission bits and ownership of an existing file when
+ rename overwrites it. FD is the file being renamed and TARGET_STAT has the
+ status of the file that was overwritten. */
+static void
+try_preserve_permissions (int fd, struct stat *target_stat)
+{
+ struct stat from_stat;
+ int ret = 0;
+
+ if (fstat (fd, &from_stat) != 0)
+ return;
+
+ int from_mode = from_stat.st_mode & 0777;
+ int to_mode = target_stat->st_mode & 0777;
+
+ /* Fix up permissions before we potentially lose ownership with fchown.
+ Clear the setxid bits because in case the fchown below fails then we don't
+ want to end up with a sxid file owned by the invoking user. If the user
+ hasn't changed or if fchown succeeded, we add back the sxid bits at the
+ end. */
+ if (from_mode != to_mode)
+ fchmod (fd, to_mode);
+
+ /* Fix up ownership, this will clear the setxid bits. */
+ if (from_stat.st_uid != target_stat->st_uid
+ || from_stat.st_gid != target_stat->st_gid)
+ ret = fchown (fd, target_stat->st_uid, target_stat->st_gid);
+
+ /* Fix up the sxid bits if either the fchown wasn't needed or it
+ succeeded. */
+ if (ret == 0)
+ fchmod (fd, target_stat->st_mode & 07777);
+}
+#endif
+
+/* Rename FROM to TO, copying if TO is either a link or is not a regular file.
+ FD is an open file descriptor pointing to FROM that we can use to safely fix
+ up permissions of the file after renaming. TARGET_STAT has the file status
+ that is used to fix up permissions and timestamps after rename. Return 0 if
+ ok, -1 if error and FD is closed before returning. */
int
-smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNUSED)
+smart_rename (const char *from, const char *to, int fd ATTRIBUTE_UNUSED,
+ struct stat *target_stat ATTRIBUTE_UNUSED,
+ int preserve_dates ATTRIBUTE_UNUSED)
{
- bfd_boolean exists;
- struct stat s;
int ret = 0;
-
- exists = lstat (to, &s) == 0;
+ bfd_boolean exists = target_stat != NULL;
#if defined (_WIN32) && !defined (__CYGWIN32__)
/* Win32, unlike unix, will not erase `to' in `rename(from, to)' but
@@ -158,36 +196,35 @@ smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNU
unlink (from);
}
#else
- /* Use rename only if TO is not a symbolic link and has
- only one hard link, and we have permission to write to it. */
+ /* Avoid a full copy and use rename if we can fix up permissions of the
+ file after renaming, i.e.:
+
+ - TO is not a symbolic link
+ - TO is a regular file with only one hard link
+ - We have permission to write to TO
+ - FD is available to safely fix up permissions to be the same as the file
+ we overwrote with the rename.
+
+ Note though that the actual file on disk that TARGET_STAT describes may
+ have changed and we're only trying to preserve the status we know about.
+ At no point do we try to interact with the new file changes, so there can
+ only be two outcomes, i.e. either the external file change survives
+ without knowledge of our change (if it happens after the rename syscall)
+ or our rename and permissions fixup survive without any knowledge of the
+ external change. */
if (! exists
- || (!S_ISLNK (s.st_mode)
- && S_ISREG (s.st_mode)
- && (s.st_mode & S_IWUSR)
- && s.st_nlink == 1)
+ || (fd >= 0
+ && !S_ISLNK (target_stat->st_mode)
+ && S_ISREG (target_stat->st_mode)
+ && (target_stat->st_mode & S_IWUSR)
+ && target_stat->st_nlink == 1)
)
{
ret = rename (from, to);
if (ret == 0)
{
if (exists)
- {
- /* Try to preserve the permission bits and ownership of
- TO. First get the mode right except for the setuid
- bit. Then change the ownership. Then fix the setuid
- bit. We do the chmod before the chown because if the
- chown succeeds, and we are a normal user, we won't be
- able to do the chmod afterward. We don't bother to
- fix the setuid bit first because that might introduce
- a fleeting security problem, and because the chown
- will clear the setuid bit anyhow. We only fix the
- setuid bit if the chown succeeds, because we don't
- want to introduce an unexpected setuid file owned by
- the user running objcopy. */
- chmod (to, s.st_mode & 0777);
- if (chown (to, s.st_uid, s.st_gid) >= 0)
- chmod (to, s.st_mode & 07777);
- }
+ try_preserve_permissions (fd, target_stat);
}
else
{
@@ -203,9 +240,11 @@ smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNU
non_fatal (_("unable to copy file '%s'; reason: %s"), to, strerror (errno));
if (preserve_dates)
- set_times (to, &s);
+ set_times (to, target_stat);
unlink (from);
}
+ if (fd >= 0)
+ close (fd);
#endif /* _WIN32 && !__CYGWIN32__ */
return ret;
--
2.27.0

View File

@ -1,96 +0,0 @@
From 1a1c3b4cc17687091cff5a368bd6f13742bcfdf8 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@gotplt.org>
Date: Mon, 7 Dec 2020 20:48:28 +0530
Subject: [PATCH] objcopy: Get input file stat after BFD open
Get file state from the descriptor opened by copy_file for the input
BFD. This ensures continuity in the view of the input file through
the descriptor. At the moment it is only to preserve timestamps
recorded at the point that we opened the file for input but in the
next patch this state will also be used to preserve ownership and
permissions wherever applicable.
binutils/
* objcopy.c (copy_file): New argument IN_STAT. Return stat of
ibfd through it.
(strip_main): Remove redundant stat calls. adjust copy_file
calls.
(copy_main): Likewise.
---
binutils/ChangeLog | 9 +++++++++
binutils/objcopy.c | 23 +++++++----------------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 2eb083c3769..b6cf6ea4baa 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -3729,8 +3729,8 @@ set_long_section_mode (bfd *output_bfd, bfd *input_bfd, enum long_section_name_h
static void
copy_file (const char *input_filename, const char *output_filename, int ofd,
- const char *input_target, const char *output_target,
- const bfd_arch_info_type *input_arch)
+ struct stat *in_stat, const char *input_target,
+ const char *output_target, const bfd_arch_info_type *input_arch)
{
bfd *ibfd;
char **obj_matching;
@@ -3749,7 +3749,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
/* To allow us to do "strip *" without dying on the first
non-object file, failures are nonfatal. */
ibfd = bfd_openr (input_filename, input_target);
- if (ibfd == NULL)
+ if (ibfd == NULL || fstat (fileno (ibfd->iostream), in_stat) != 0)
{
bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
status = 1;
@@ -4822,11 +4822,6 @@ strip_main (int argc, char *argv[])
continue;
}
- if (preserve_dates)
- /* No need to check the return value of stat().
- It has already been checked in get_file_size(). */
- stat (argv[i], &statbuf);
-
if (output_file == NULL
|| filename_cmp (argv[i], output_file) == 0)
tmpname = make_tempname (argv[i], &tmpfd);
@@ -4842,7 +4837,8 @@ strip_main (int argc, char *argv[])
}
status = 0;
- copy_file (argv[i], tmpname, tmpfd, input_target, output_target, NULL);
+ copy_file (argv[i], tmpname, tmpfd, &statbuf, input_target,
+ output_target, NULL);
if (status == 0)
{
if (preserve_dates)
@@ -5899,11 +5895,6 @@ copy_main (int argc, char *argv[])
convert_efi_target (efi);
}
- if (preserve_dates)
- if (stat (input_filename, & statbuf) < 0)
- fatal (_("warning: could not locate '%s'. System error message: %s"),
- input_filename, strerror (errno));
-
/* If there is no destination file, or the source and destination files
are the same, then create a temp and rename the result into the input. */
if (output_filename == NULL
@@ -5916,8 +5907,8 @@ copy_main (int argc, char *argv[])
fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"),
input_filename, strerror (errno));
- copy_file (input_filename, tmpname, tmpfd, input_target, output_target,
- input_arch);
+ copy_file (input_filename, tmpname, tmpfd, &statbuf, input_target,
+ output_target, input_arch);
if (status == 0)
{
if (preserve_dates)
--
2.27.0

View File

@ -1,287 +0,0 @@
From 365f5fb6d0f0da83817431a275e99e6f6babbe04 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@gotplt.org>
Date: Mon, 7 Dec 2020 20:48:23 +0530
Subject: [PATCH] binutils: Use file descriptors from make_tempname
The purpose of creating a temporary file securely using mkstemp is
defeated if it is closed in make_tempname and reopened later for use;
it is as good as using mktemp. Get the file descriptor instead and
then use it to create the BFD object.
bfd/
* opncls.c (bfd_fdopenw): New function.
* bfd-in2.h: Regenerate.
binutils/
* bucomm.c (make_tempname): Add argument to return file
descriptor.
* bucomm.h (make_tempname): Likewise.
* ar.c: Include libbfd.h.
(write_archive): Adjust for change in make_tempname. Call
bfd_fdopenw instead of bfd_openw.
* objcopy.c: Include libbfd.h.
(copy_file): New argument OFD. Use bfd_fdopenw instead of
bfd_openw.
(strip_main): Adjust for change in make_tempname and
copy_file.
(copy_main): Likewise.
---
bfd/ChangeLog | 6 ++++++
bfd/bfd-in2.h | 2 ++
bfd/opncls.c | 33 +++++++++++++++++++++++++++++++++
binutils/ChangeLog | 17 +++++++++++++++++
binutils/ar.c | 11 ++++++++---
binutils/bucomm.c | 4 ++--
binutils/bucomm.h | 2 +-
binutils/objcopy.c | 30 ++++++++++++++++++++++--------
8 files changed, 91 insertions(+), 14 deletions(-)
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 935ba535b54..48e3d9b6647 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -588,6 +588,8 @@ bfd *bfd_openr (const char *filename, const char *target);
bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
+bfd *bfd_fdopenw (const char *filename, const char *target, int fd);
+
bfd *bfd_openstreamr (const char * filename, const char * target,
void * stream);
diff --git a/bfd/opncls.c b/bfd/opncls.c
index c2a1d2fa4df..f7696b658ca 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -393,6 +393,39 @@ bfd_fdopenr (const char *filename, const char *target, int fd)
return bfd_fopen (filename, target, mode, fd);
}
+/*
+FUNCTION
+ bfd_fdopenw
+
+SYNOPSIS
+ bfd *bfd_fdopenw (const char *filename, const char *target, int fd);
+
+DESCRIPTION
+ <<bfd_fdopenw>> is exactly like <<bfd_fdopenr>> with the exception that
+ the resulting BFD is suitable for output.
+*/
+
+bfd *
+bfd_fdopenw (const char *filename, const char *target, int fd)
+{
+ bfd *out = bfd_fdopenr (filename, target, fd);
+
+ if (out != NULL)
+ {
+ if (!bfd_write_p (out))
+ {
+ close (fd);
+ _bfd_delete_bfd (out);
+ out = NULL;
+ bfd_set_error (bfd_error_invalid_operation);
+ }
+ else
+ out->direction = write_direction;
+ }
+
+ return out;
+}
+
/*
FUNCTION
bfd_openstreamr
diff --git a/binutils/ar.c b/binutils/ar.c
index 7d279d6722a..225324208bd 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -25,6 +25,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "libbfd.h"
#include "libiberty.h"
#include "progress.h"
#include "getopt.h"
@@ -1252,20 +1253,24 @@ write_archive (bfd *iarch)
bfd *obfd;
char *old_name, *new_name;
bfd *contents_head = iarch->archive_next;
+ int ofd = -1;
old_name = (char *) xmalloc (strlen (bfd_get_filename (iarch)) + 1);
strcpy (old_name, bfd_get_filename (iarch));
- new_name = make_tempname (old_name);
+ new_name = make_tempname (old_name, &ofd);
if (new_name == NULL)
bfd_fatal (_("could not create temporary file whilst writing archive"));
output_filename = new_name;
- obfd = bfd_openw (new_name, bfd_get_target (iarch));
+ obfd = bfd_fdopenw (new_name, bfd_get_target (iarch), ofd);
if (obfd == NULL)
- bfd_fatal (old_name);
+ {
+ close (ofd);
+ bfd_fatal (old_name);
+ }
output_bfd = obfd;
diff --git a/binutils/bucomm.c b/binutils/bucomm.c
index 9e6a02843e6..53244201f89 100644
--- a/binutils/bucomm.c
+++ b/binutils/bucomm.c
@@ -532,7 +532,7 @@ template_in_dir (const char *path)
as FILENAME. */
char *
-make_tempname (const char *filename)
+make_tempname (const char *filename, int *ofd)
{
char *tmpname = template_in_dir (filename);
int fd;
@@ -550,7 +550,7 @@ make_tempname (const char *filename)
free (tmpname);
return NULL;
}
- close (fd);
+ *ofd = fd;
return tmpname;
}
diff --git a/binutils/bucomm.h b/binutils/bucomm.h
index d8318343f78..afb8e09c2fd 100644
--- a/binutils/bucomm.h
+++ b/binutils/bucomm.h
@@ -51,7 +51,7 @@ int display_info (void);
void print_arelt_descr (FILE *, bfd *, bfd_boolean, bfd_boolean);
-char *make_tempname (const char *);
+char *make_tempname (const char *, int *);
char *make_tempdir (const char *);
bfd_vma parse_vma (const char *, const char *);
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ca35df03b66..2eb083c3769 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -20,6 +20,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "libbfd.h"
#include "progress.h"
#include "getopt.h"
#include "libiberty.h"
@@ -3727,7 +3728,7 @@ set_long_section_mode (bfd *output_bfd, bfd *input_bfd, enum long_section_name_h
/* The top-level control. */
static void
-copy_file (const char *input_filename, const char *output_filename,
+copy_file (const char *input_filename, const char *output_filename, int ofd,
const char *input_target, const char *output_target,
const bfd_arch_info_type *input_arch)
{
@@ -3802,9 +3803,14 @@ copy_file (const char *input_filename, const char *output_filename,
else
force_output_target = TRUE;
- obfd = bfd_openw (output_filename, output_target);
+ if (ofd >= 0)
+ obfd = bfd_fdopenw (output_filename, output_target, ofd);
+ else
+ obfd = bfd_openw (output_filename, output_target);
+
if (obfd == NULL)
{
+ close (ofd);
bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
status = 1;
return;
@@ -3832,13 +3838,19 @@ copy_file (const char *input_filename, const char *output_filename,
if (output_target == NULL)
output_target = bfd_get_target (ibfd);
- obfd = bfd_openw (output_filename, output_target);
+ if (ofd >= 0)
+ obfd = bfd_fdopenw (output_filename, output_target, ofd);
+ else
+ obfd = bfd_openw (output_filename, output_target);
+
if (obfd == NULL)
{
+ close (ofd);
bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
status = 1;
return;
}
+
/* This is a no-op on non-Coff targets. */
set_long_section_mode (obfd, ibfd, long_section_names);
@@ -4802,6 +4814,7 @@ strip_main (int argc, char *argv[])
int hold_status = status;
struct stat statbuf;
char *tmpname;
+ int tmpfd = -1;
if (get_file_size (argv[i]) < 1)
{
@@ -4816,7 +4829,7 @@ strip_main (int argc, char *argv[])
if (output_file == NULL
|| filename_cmp (argv[i], output_file) == 0)
- tmpname = make_tempname (argv[i]);
+ tmpname = make_tempname (argv[i], &tmpfd);
else
tmpname = output_file;
@@ -4829,7 +4842,7 @@ strip_main (int argc, char *argv[])
}
status = 0;
- copy_file (argv[i], tmpname, input_target, output_target, NULL);
+ copy_file (argv[i], tmpname, tmpfd, input_target, output_target, NULL);
if (status == 0)
{
if (preserve_dates)
@@ -5049,7 +5062,7 @@ copy_main (int argc, char *argv[])
bfd_boolean formats_info = FALSE;
bfd_boolean use_globalize = FALSE;
bfd_boolean use_keep_global = FALSE;
- int c;
+ int c, tmpfd = -1;
struct stat statbuf;
const bfd_arch_info_type *input_arch = NULL;
@@ -5895,7 +5908,7 @@ copy_main (int argc, char *argv[])
are the same, then create a temp and rename the result into the input. */
if (output_filename == NULL
|| filename_cmp (input_filename, output_filename) == 0)
- tmpname = make_tempname (input_filename);
+ tmpname = make_tempname (input_filename, &tmpfd);
else
tmpname = output_filename;
@@ -5903,7 +5916,8 @@ copy_main (int argc, char *argv[])
fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"),
input_filename, strerror (errno));
- copy_file (input_filename, tmpname, input_target, output_target, input_arch);
+ copy_file (input_filename, tmpname, tmpfd, input_target, output_target,
+ input_arch);
if (status == 0)
{
if (preserve_dates)
--
2.27.0

View File

@ -0,0 +1,192 @@
diff -rupN --no-dereference binutils-2.37/gold/i386.cc binutils-2.37-new/gold/i386.cc
--- binutils-2.37/gold/i386.cc 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/gold/i386.cc 2021-07-24 21:59:31.051686692 +0200
@@ -360,7 +360,11 @@ class Target_i386 : public Sized_target<
got_(NULL), plt_(NULL), got_plt_(NULL), got_irelative_(NULL),
got_tlsdesc_(NULL), global_offset_table_(NULL), rel_dyn_(NULL),
rel_irelative_(NULL), copy_relocs_(elfcpp::R_386_COPY),
- got_mod_index_offset_(-1U), tls_base_symbol_defined_(false)
+ got_mod_index_offset_(-1U), tls_base_symbol_defined_(false),
+ isa_1_used_(0), isa_1_needed_(0),
+ feature_1_(0), feature_2_used_(0), feature_2_needed_(0),
+ object_isa_1_used_(0), object_feature_1_(0),
+ object_feature_2_used_(0), seen_first_object_(false)
{ }
// Process the relocations to determine unreferenced sections for
@@ -859,6 +863,21 @@ class Target_i386 : public Sized_target<
this->rel_dyn_section(layout));
}
+ // Record a target-specific program property in the .note.gnu.property
+ // section.
+ void
+ record_gnu_property(unsigned int, unsigned int, size_t,
+ const unsigned char*, const Object*);
+
+ // Merge the target-specific program properties from the current object.
+ void
+ merge_gnu_properties(const Object*);
+
+ // Finalize the target-specific program properties and add them back to
+ // the layout.
+ void
+ do_finalize_gnu_properties(Layout*) const;
+
// Information about this specific target which we pass to the
// general Target structure.
static const Target::Target_info i386_info;
@@ -898,6 +917,26 @@ class Target_i386 : public Sized_target<
unsigned int got_mod_index_offset_;
// True if the _TLS_MODULE_BASE_ symbol has been defined.
bool tls_base_symbol_defined_;
+
+ // Target-specific program properties, from .note.gnu.property section.
+ // Each bit represents a specific feature.
+ uint32_t isa_1_used_;
+ uint32_t isa_1_needed_;
+ uint32_t feature_1_;
+ uint32_t feature_2_used_;
+ uint32_t feature_2_needed_;
+ // Target-specific properties from the current object.
+ // These bits get ORed into ISA_1_USED_ after all properties for the object
+ // have been processed. But if either is all zeroes (as when the property
+ // is absent from an object), the result should be all zeroes.
+ // (See PR ld/23486.)
+ uint32_t object_isa_1_used_;
+ // These bits get ANDed into FEATURE_1_ after all properties for the object
+ // have been processed.
+ uint32_t object_feature_1_;
+ uint32_t object_feature_2_used_;
+ // Whether we have seen our first object, for use in initializing FEATURE_1_.
+ bool seen_first_object_;
};
const Target::Target_info Target_i386::i386_info =
@@ -1042,6 +1081,126 @@ Target_i386::rel_irelative_section(Layou
return this->rel_irelative_;
}
+// Record a target-specific program property from the .note.gnu.property
+// section.
+void
+Target_i386::record_gnu_property(
+ unsigned int, unsigned int pr_type,
+ size_t pr_datasz, const unsigned char* pr_data,
+ const Object* object)
+{
+ uint32_t val = 0;
+
+ switch (pr_type)
+ {
+ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_USED:
+ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED:
+ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED:
+ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED:
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED:
+ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND:
+ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED:
+ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED:
+ if (pr_datasz != 4)
+ {
+ gold_warning(_("%s: corrupt .note.gnu.property section "
+ "(pr_datasz for property %d is not 4)"),
+ object->name().c_str(), pr_type);
+ return;
+ }
+ val = elfcpp::Swap<32, false>::readval(pr_data);
+ break;
+ default:
+ gold_warning(_("%s: unknown program property type 0x%x "
+ "in .note.gnu.property section"),
+ object->name().c_str(), pr_type);
+ break;
+ }
+
+ switch (pr_type)
+ {
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
+ this->object_isa_1_used_ |= val;
+ break;
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED:
+ this->isa_1_needed_ |= val;
+ break;
+ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND:
+ // If we see multiple feature props in one object, OR them together.
+ this->object_feature_1_ |= val;
+ break;
+ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED:
+ this->object_feature_2_used_ |= val;
+ break;
+ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED:
+ this->feature_2_needed_ |= val;
+ break;
+ }
+}
+
+// Merge the target-specific program properties from the current object.
+void
+Target_i386::merge_gnu_properties(const Object*)
+{
+ if (this->seen_first_object_)
+ {
+ // If any object is missing the ISA_1_USED property, we must omit
+ // it from the output file.
+ if (this->object_isa_1_used_ == 0)
+ this->isa_1_used_ = 0;
+ else if (this->isa_1_used_ != 0)
+ this->isa_1_used_ |= this->object_isa_1_used_;
+ this->feature_1_ &= this->object_feature_1_;
+ // If any object is missing the FEATURE_2_USED property, we must
+ // omit it from the output file.
+ if (this->object_feature_2_used_ == 0)
+ this->feature_2_used_ = 0;
+ else if (this->feature_2_used_ != 0)
+ this->feature_2_used_ |= this->object_feature_2_used_;
+ }
+ else
+ {
+ this->isa_1_used_ = this->object_isa_1_used_;
+ this->feature_1_ = this->object_feature_1_;
+ this->feature_2_used_ = this->object_feature_2_used_;
+ this->seen_first_object_ = true;
+ }
+ this->object_isa_1_used_ = 0;
+ this->object_feature_1_ = 0;
+ this->object_feature_2_used_ = 0;
+}
+
+static inline void
+add_property(Layout* layout, unsigned int pr_type, uint32_t val)
+{
+ unsigned char buf[4];
+ elfcpp::Swap<32, false>::writeval(buf, val);
+ layout->add_gnu_property(elfcpp::NT_GNU_PROPERTY_TYPE_0, pr_type, 4, buf);
+}
+
+// Finalize the target-specific program properties and add them back to
+// the layout.
+void
+Target_i386::do_finalize_gnu_properties(Layout* layout) const
+{
+ if (this->isa_1_used_ != 0)
+ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_USED,
+ this->isa_1_used_);
+ if (this->isa_1_needed_ != 0)
+ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED,
+ this->isa_1_needed_);
+ if (this->feature_1_ != 0)
+ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND,
+ this->feature_1_);
+ if (this->feature_2_used_ != 0)
+ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED,
+ this->feature_2_used_);
+ if (this->feature_2_needed_ != 0)
+ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED,
+ this->feature_2_needed_);
+}
+
// Write the first three reserved words of the .got.plt section.
// The remainder of the section is written while writing the PLT
// in Output_data_plt_i386::do_write.

View File

@ -1,11 +0,0 @@
diff -rupN --no-dereference binutils-2.34/gold/target-reloc.h binutils-2.34-new/gold/target-reloc.h
--- binutils-2.34/gold/target-reloc.h 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/gold/target-reloc.h 2020-12-18 02:57:18.369041902 +0100
@@ -136,6 +136,7 @@ class Default_comdat_behavior
if (Layout::is_debug_info_section(name))
return CB_PRETEND;
if (strcmp(name, ".eh_frame") == 0
+ || strncmp(name, ".gnu.build.attributes", 21) == 0 // FIXME: We should really be checking the section type for ST_NOTE...
|| strcmp(name, ".gcc_except_table") == 0)
return CB_IGNORE;
return CB_ERROR;

View File

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.34/gold/layout.cc binutils-2.34-new/gold/layout.cc
--- binutils-2.34/gold/layout.cc 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/gold/layout.cc 2020-12-18 02:57:21.401031221 +0100
diff -rupN --no-dereference binutils-2.37/gold/layout.cc binutils-2.37-new/gold/layout.cc
--- binutils-2.37/gold/layout.cc 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/gold/layout.cc 2021-07-24 21:59:20.710787409 +0200
@@ -869,6 +869,7 @@ Layout::get_output_section(const char* n
&& (same_name->flags() & elfcpp::SHF_TLS) == 0)
os = same_name;
@ -17,20 +17,3 @@ diff -rupN --no-dereference binutils-2.34/gold/layout.cc binutils-2.34-new/gold/
}
if (os == NULL)
diff -rupN --no-dereference binutils-2.34/gold/object.cc binutils-2.34-new/gold/object.cc
--- binutils-2.34/gold/object.cc 2020-01-18 14:55:48.000000000 +0100
+++ binutils-2.34-new/gold/object.cc 2020-12-18 02:57:21.402031218 +0100
@@ -1656,6 +1656,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)
{

View File

@ -0,0 +1,67 @@
diff -rupN --no-dereference binutils-2.37/bfd/config.bfd binutils-2.37-new/bfd/config.bfd
--- binutils-2.37/bfd/config.bfd 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/config.bfd 2021-07-24 21:59:24.914746464 +0200
@@ -465,7 +465,7 @@ case "${targ}" in
;;
#ifdef BFD64
- bpf-*-none)
+ bpf-*-none | bpf-*)
targ_defvec=bpf_elf64_le_vec
targ_selvecs=bpf_elf64_be_vec
targ_underscore=yes
@@ -1421,7 +1421,7 @@ case "${targ}" in
;;
*)
- echo 1>&2 "*** BFD does not support target ${targ}."
+ echo 1>&2 "*** BFD does not support target '${targ}'. Honest."
echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
exit 1
;;
diff -rupN --no-dereference binutils-2.37/gold/configure binutils-2.37-new/gold/configure
--- binutils-2.37/gold/configure 2021-07-18 18:40:53.000000000 +0200
+++ binutils-2.37-new/gold/configure 2021-07-24 21:59:24.917746435 +0200
@@ -5184,7 +5184,8 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt
if test "$targ_obj" = "UNKNOWN"; then
- as_fn_error $? "\"unsupported target $targ\"" "$LINENO" 5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"unsupported target $targ\"" >&5
+$as_echo "$as_me: WARNING: \"unsupported target $targ\"" >&2;}
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
diff -rupN --no-dereference binutils-2.37/gold/configure.ac binutils-2.37-new/gold/configure.ac
--- binutils-2.37/gold/configure.ac 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/gold/configure.ac 2021-07-24 21:59:24.918746425 +0200
@@ -181,7 +181,7 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt
if test "$targ_obj" = "UNKNOWN"; then
- AC_MSG_ERROR("unsupported target $targ")
+ AC_MSG_WARN("unsupported target $targ")
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
diff -rupN --no-dereference binutils-2.37/ld/configure.tgt binutils-2.37-new/ld/configure.tgt
--- binutils-2.37/ld/configure.tgt 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/configure.tgt 2021-07-24 21:59:24.919746416 +0200
@@ -215,7 +215,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi
targ_extra_emuls="elf32bfin"
targ_extra_libpath=$targ_extra_emuls
;;
-bpf-*-*) targ_emul=elf64bpf
+bpf-* | bpf-*-*) targ_emul=elf64bpf
;;
cr16-*-elf*) targ_emul=elf32cr16
;;
@@ -1025,7 +1025,7 @@ z8k-*-coff) targ_emul=z8002
targ_extra_ofiles=
;;
*)
- echo 2>&1 "*** ld does not support target ${targ}"
+ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY"
echo 2>&1 "*** see ld/configure.tgt for supported targets"
exit 1

View File

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.34/bfd/bfd-in2.h binutils-2.34-new/bfd/bfd-in2.h
--- binutils-2.34/bfd/bfd-in2.h 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/bfd/bfd-in2.h 2020-12-18 02:57:14.328056141 +0100
diff -rupN --no-dereference binutils-2.37/bfd/bfd-in2.h binutils-2.37-new/bfd/bfd-in2.h
--- binutils-2.37/bfd/bfd-in2.h 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/bfd-in2.h 2021-07-24 21:59:03.850951615 +0200
@@ -30,11 +30,6 @@
#ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__
@ -13,9 +13,9 @@ diff -rupN --no-dereference binutils-2.34/bfd/bfd-in2.h binutils-2.34-new/bfd/bf
#ifdef __cplusplus
extern "C" {
#endif
diff -rupN --no-dereference binutils-2.34/bfd/bfd-in.h binutils-2.34-new/bfd/bfd-in.h
--- binutils-2.34/bfd/bfd-in.h 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/bfd/bfd-in.h 2020-12-18 02:57:14.329056138 +0100
diff -rupN --no-dereference binutils-2.37/bfd/bfd-in.h binutils-2.37-new/bfd/bfd-in.h
--- binutils-2.37/bfd/bfd-in.h 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/bfd-in.h 2021-07-24 21:59:03.851951606 +0200
@@ -23,11 +23,6 @@
#ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__

View File

@ -1,126 +0,0 @@
diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/binutils/readelf.c
--- binutils-2.34/binutils/readelf.c 2020-12-18 02:57:17.359045461 +0100
+++ binutils-2.34-new/binutils/readelf.c 2020-12-18 02:57:22.432027590 +0100
@@ -6714,15 +6714,18 @@ process_section_headers (Filedata * file
{
Elf_Internal_Chdr chdr;
- (void) get_compression_header (&chdr, buf, sizeof (buf));
-
- if (chdr.ch_type == ELFCOMPRESS_ZLIB)
- printf (" ZLIB, ");
+ if (get_compression_header (&chdr, buf, sizeof (buf)) == 0)
+ printf (_(" [<corrupt>]\n"));
else
- printf (_(" [<unknown>: 0x%x], "),
- chdr.ch_type);
- print_vma (chdr.ch_size, LONG_HEX);
- printf (", %lu\n", (unsigned long) chdr.ch_addralign);
+ {
+ if (chdr.ch_type == ELFCOMPRESS_ZLIB)
+ printf (" ZLIB, ");
+ else
+ printf (_(" [<unknown>: 0x%x], "),
+ chdr.ch_type);
+ print_vma (chdr.ch_size, LONG_HEX);
+ printf (", %lu\n", (unsigned long) chdr.ch_addralign);
+ }
}
}
}
@@ -13679,11 +13682,16 @@ dump_section_as_strings (Elf_Internal_Sh
= get_compression_header (& chdr, (unsigned char *) start,
num_bytes);
+ if (compression_header_size == 0)
+ /* An error message will have already been generated
+ by get_compression_header. */
+ goto error_out;
+
if (chdr.ch_type != ELFCOMPRESS_ZLIB)
{
warn (_("section '%s' has unsupported compress type: %d\n"),
printable_section_name (filedata, section), chdr.ch_type);
- return FALSE;
+ goto error_out;
}
uncompressed_size = chdr.ch_size;
start += compression_header_size;
@@ -13715,7 +13723,7 @@ dump_section_as_strings (Elf_Internal_Sh
{
error (_("Unable to decompress section %s\n"),
printable_section_name (filedata, section));
- return FALSE;
+ goto error_out;
}
}
else
@@ -13785,6 +13793,10 @@ dump_section_as_strings (Elf_Internal_Sh
putchar ('\n');
return TRUE;
+
+ error_out:
+ free (real_start);
+ return FALSE;
}
static bfd_boolean
@@ -13797,7 +13809,7 @@ dump_section_as_bytes (Elf_Internal_Shdr
bfd_size_type section_size;
bfd_vma addr;
unsigned char * data;
- unsigned char * real_start;
+ unsigned char * real_start = NULL;
unsigned char * start;
real_start = start = (unsigned char *) get_section_contents (section, filedata);
@@ -13820,11 +13832,16 @@ dump_section_as_bytes (Elf_Internal_Shdr
unsigned int compression_header_size
= get_compression_header (& chdr, start, section_size);
+ if (compression_header_size == 0)
+ /* An error message will have already been generated
+ by get_compression_header. */
+ goto error_out;
+
if (chdr.ch_type != ELFCOMPRESS_ZLIB)
{
warn (_("section '%s' has unsupported compress type: %d\n"),
printable_section_name (filedata, section), chdr.ch_type);
- return FALSE;
+ goto error_out;
}
uncompressed_size = chdr.ch_size;
start += compression_header_size;
@@ -13859,7 +13876,7 @@ dump_section_as_bytes (Elf_Internal_Shdr
error (_("Unable to decompress section %s\n"),
printable_section_name (filedata, section));
/* FIXME: Print the section anyway ? */
- return FALSE;
+ goto error_out;
}
}
else
@@ -13939,6 +13956,10 @@ dump_section_as_bytes (Elf_Internal_Shdr
putchar ('\n');
return TRUE;
+
+ error_out:
+ free (real_start);
+ return FALSE;
}
static ctf_sect_t *
@@ -14149,6 +14170,10 @@ load_specific_debug_section (enum dwarf_
}
compression_header_size = get_compression_header (&chdr, start, size);
+ if (compression_header_size == 0)
+ /* An error message will have already been generated
+ by get_compression_header. */
+ return FALSE;
if (chdr.ch_type != ELFCOMPRESS_ZLIB)
{

View File

@ -1,25 +1,25 @@
diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/binutils/readelf.c
--- binutils-2.34/binutils/readelf.c 2020-12-18 02:57:16.348049023 +0100
+++ binutils-2.34-new/binutils/readelf.c 2020-12-18 02:57:16.353049005 +0100
@@ -11496,12 +11496,14 @@ print_dynamic_symbol (Filedata * filedat
diff -rupN --no-dereference binutils-2.37/binutils/readelf.c binutils-2.37-new/binutils/readelf.c
--- binutils-2.37/binutils/readelf.c 2021-07-24 21:59:08.033910876 +0200
+++ binutils-2.37-new/binutils/readelf.c 2021-07-24 21:59:10.159890170 +0200
@@ -12616,11 +12616,13 @@ print_dynamic_symbol (Filedata *filedata
unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
printf (" %-7s", get_symbol_visibility (vis));
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. */
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));
printf (" %3.3s ", get_symbol_index_type (filedata, psym->st_shndx));
@@ -11509,6 +11511,15 @@ print_dynamic_symbol (Filedata * filedat
print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
else
printf (_(" <corrupt: %14ld>"), psym->st_name);
@@ -12670,7 +12672,17 @@ print_dynamic_symbol (Filedata *filedata
version_string);
}
- putchar ('\n');
+#if 1
+ {
+ unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
@ -29,36 +29,8 @@ diff -rupN --no-dereference binutils-2.34/binutils/readelf.c binutils-2.34-new/b
+ printf (" \t[%s]", get_symbol_other (filedata, psym->st_other ^ vis));
+ }
+#endif
putchar ('\n');
}
+
+ putchar ('\n');
@@ -12043,11 +12054,13 @@ process_symbol_table (Filedata * filedat
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));
print_symbol (25, psym->st_name < strtab_size
@@ -12066,7 +12079,15 @@ process_symbol_table (Filedata * filedat
printf (sym_info == symbol_hidden ? "@%s" : "@@%s",
version_string);
}
+#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
if (ELF_ST_BIND (psym->st_info) == STB_LOCAL
&& section != NULL

View File

@ -0,0 +1,245 @@
diff -rupN --no-dereference binutils-2.37/bfd/elfxx-x86.c binutils-2.37-new/bfd/elfxx-x86.c
--- binutils-2.37/bfd/elfxx-x86.c 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/elfxx-x86.c 2021-07-24 21:59:08.085910370 +0200
@@ -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
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pltgot-1.d binutils-2.37-new/ld/testsuite/ld-i386/pltgot-1.d
--- binutils-2.37/ld/testsuite/ld-i386/pltgot-1.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/pltgot-1.d 2021-07-24 21:59:08.086910360 +0200
@@ -2,6 +2,7 @@
#readelf: -S --wide
#as: --32
+#pass
#...
+\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.*
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pltgot-2.d binutils-2.37-new/ld/testsuite/ld-i386/pltgot-2.d
--- binutils-2.37/ld/testsuite/ld-i386/pltgot-2.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/pltgot-2.d 2021-07-24 21:59:08.086910360 +0200
@@ -3,7 +3,6 @@
#readelf: -d --wide
#as: --32
-#failif
#...
+0x[0-9a-f]+ +\(PLTREL.*
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2d.d
--- binutils-2.37/ld/testsuite/ld-i386/pr19636-2d.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2d.d 2021-07-24 21:59:08.086910360 +0200
@@ -8,7 +8,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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2e.d
--- binutils-2.37/ld/testsuite/ld-i386/pr19636-2e.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/pr19636-2e.d 2021-07-24 21:59:08.086910360 +0200
@@ -8,7 +8,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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/pr20830.d binutils-2.37-new/ld/testsuite/ld-i386/pr20830.d
--- binutils-2.37/ld/testsuite/ld-i386/pr20830.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/pr20830.d 2021-07-24 21:59:08.087910350 +0200
@@ -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
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-1.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pltgot-1.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-1.d 2021-07-24 21:59:08.087910350 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-2.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pltgot-2.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pltgot-2.d 2021-07-24 21:59:08.087910350 +0200
@@ -3,7 +3,6 @@
#readelf: -d --wide
#as: --64
-#failif
#...
+0x[0-9a-f]+ +\(PLTREL.*
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.37-new/ld/testsuite/ld-x86-64/plt-main.rd
--- binutils-2.37/ld/testsuite/ld-x86-64/plt-main.rd 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/plt-main.rd 2021-07-24 21:59:08.087910350 +0200
@@ -1,4 +1,3 @@
-#failif
#...
[0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830a.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a.d 2021-07-24 21:59:08.088910340 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a-now.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830a-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830a-now.d 2021-07-24 21:59:08.088910340 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830b.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b.d 2021-07-24 21:59:08.088910340 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b-now.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr20830b-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr20830b-now.d 2021-07-24 21:59:08.088910340 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038a.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038a.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a.d 2021-07-24 21:59:08.089910331 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038a-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a-now.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038a-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038a-now.d 2021-07-24 21:59:08.089910331 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038b.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038b.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b.d 2021-07-24 21:59:08.089910331 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038b-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b-now.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038b-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038b-now.d 2021-07-24 21:59:08.089910331 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038c.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038c.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c.d 2021-07-24 21:59:08.089910331 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/pr21038c-now.d binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c-now.d
--- binutils-2.37/ld/testsuite/ld-x86-64/pr21038c-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/pr21038c-now.d 2021-07-24 21:59:08.090910321 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.37-new/ld/testsuite/ld-x86-64/tlspic2.rd
--- binutils-2.37/ld/testsuite/ld-x86-64/tlspic2.rd 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/tlspic2.rd 2021-07-24 21:59:08.090910321 +0200
@@ -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

View File

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.34/bfd/elf.c binutils-2.34-new/bfd/elf.c
--- binutils-2.34/bfd/elf.c 2020-01-30 08:15:56.000000000 +0100
+++ binutils-2.34-new/bfd/elf.c 2020-12-18 02:57:19.376038355 +0100
@@ -838,7 +838,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
diff -rupN --no-dereference binutils-2.37/bfd/elf.c binutils-2.37-new/bfd/elf.c
--- binutils-2.37/bfd/elf.c 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/elf.c 2021-07-24 21:59:16.679826669 +0200
@@ -824,7 +824,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
}
}
@ -16,7 +16,7 @@ diff -rupN --no-dereference binutils-2.34/bfd/elf.c binutils-2.34-new/bfd/elf.c
{
/* xgettext:c-format */
_bfd_error_handler (_("%pB: no group info for section '%pA'"),
@@ -944,7 +950,8 @@ _bfd_elf_setup_sections (bfd *abfd)
@@ -927,7 +933,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

View File

@ -0,0 +1,865 @@
diff -rupN --no-dereference binutils-2.37/gold/main.cc binutils-2.37-new/gold/main.cc
--- binutils-2.37/gold/main.cc 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/gold/main.cc 2021-07-24 21:59:28.964707019 +0200
@@ -290,16 +290,6 @@ main(int argc, char** argv)
elapsed.sys / 1000, (elapsed.sys % 1000) * 1000,
elapsed.wall / 1000, (elapsed.wall % 1000) * 1000);
-#if defined(HAVE_MALLINFO2)
- struct mallinfo2 m = mallinfo2();
- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"),
- program_name, static_cast<long long>(m.arena));
-#elif defined(HAVE_MALLINFO)
- struct mallinfo m = mallinfo();
- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"),
- program_name, static_cast<long long>(m.arena));
-#endif
-
File_read::print_stats();
Archive::print_stats();
Lib_group::print_stats();
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d binutils-2.37-new/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d
--- binutils-2.37/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-24 21:59:28.964707019 +0200
@@ -11,7 +11,7 @@
0x.+ \(PLTRELSZ\) \s+.+ \(bytes\)
0x.+ \(PLTREL\) \s+RELA
0x.+ \(JMPREL\) \s+0x.+
- 0x.+ \(BIND_NOW\) \s+
+ 0x.+ \(FLAGS\) \s+BIND_NOW
0x.+ \(FLAGS_1\) \s+ Flags: NOW
0x.+ \(NULL\) \s+ 0x0
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-now.d binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-now.d
--- binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-24 21:59:28.965707009 +0200
@@ -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[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\]
+ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\]
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[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\]
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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-r.d binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-r.d
--- binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-24 21:59:28.965707009 +0200
@@ -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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-shared.d
--- binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-24 21:59:28.978706882 +0200
@@ -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[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\]
+ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\]
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[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\]
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 -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/compress.exp binutils-2.37-new/ld/testsuite/ld-elf/compress.exp
--- binutils-2.37/ld/testsuite/ld-elf/compress.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-elf/compress.exp 2021-07-24 21:59:28.978706882 +0200
@@ -167,8 +167,8 @@ if { [regexp_diff tmpdir/$test.out $srcd
set test_name "Link with zlib compressed debug output 1"
set test normal
-send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n"
-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"]
+send_log "$READELF -wi tmpdir/$test > tmpdir/$test.out\n"
+set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
send_log "$got\n"
fail "$test_name"
@@ -176,8 +176,8 @@ if { [lindex $got 0] != 0 || ![string ma
set test_name "Link with zlib compressed debug output 2"
set test zlibnormal
-send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n"
-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"]
+send_log "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n"
+set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
send_log "$got\n"
fail "$test_name"
@@ -203,8 +203,8 @@ if { [regexp_diff tmpdir/$test.out $srcd
set test_name "Link with zlib-gnu compressed debug output 1"
set test gnunormal
-send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n"
-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"]
+send_log "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n"
+set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
send_log "$got\n"
fail "$test_name"
@@ -230,8 +230,8 @@ if { [regexp_diff tmpdir/$test.out $srcd
set test gabinormal
set test_name "Link with zlib-gabi compressed debug output 1"
-send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n"
-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"]
+send_log "$READELF -wi tmpdir/$test > tmpdir/$test.out\n"
+set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
send_log "$got\n"
fail "$test_name"
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/pr26580-3.out binutils-2.37-new/ld/testsuite/ld-elf/pr26580-3.out
--- binutils-2.37/ld/testsuite/ld-elf/pr26580-3.out 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-elf/pr26580-3.out 2021-07-24 21:59:28.979706873 +0200
@@ -1,2 +1,2 @@
library not loaded
-alignment 1
+alignment .
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/shared.exp binutils-2.37-new/ld/testsuite/ld-elf/shared.exp
--- binutils-2.37/ld/testsuite/ld-elf/shared.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-elf/shared.exp 2021-07-24 21:59:28.979706873 +0200
@@ -1536,18 +1536,6 @@ if { [istarget *-*-linux*]
"pr22393-2-static" \
"pass.out" \
] \
- [list \
- "Run pr21964-4" \
- "" \
- "" \
- {pr21964-4.c} \
- "pr21964-4" \
- "pass.out" \
- "" \
- "" \
- "" \
- "-ldl" \
- ] \
]
}
@@ -1629,6 +1617,7 @@ if [istarget "sparc*-*-*"] {
if { ([istarget "*-*-linux*"]
|| [istarget "*-*-nacl*"]
|| [istarget "*-*-gnu*"])
+ && ![istarget "aarch64*-*-*"] && ![istarget "arm*-*-*"]
&& ![istarget "mips*-*-*"] } {
run_ld_link_tests [list \
[list \
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elf/tls.exp binutils-2.37-new/ld/testsuite/ld-elf/tls.exp
--- binutils-2.37/ld/testsuite/ld-elf/tls.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-elf/tls.exp 2021-07-24 21:59:28.979706873 +0200
@@ -32,6 +32,9 @@ if { !([istarget *-*-linux*]
if { ![check_compiler_available] } {
return
}
+if { [istarget s390x*-*-*] } {
+ return
+}
# This target requires extra GAS options when building PIC/PIE code.
set AFLAGS_PIC ""
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-elfvsb/elfvsb.exp binutils-2.37-new/ld/testsuite/ld-elfvsb/elfvsb.exp
--- binutils-2.37/ld/testsuite/ld-elfvsb/elfvsb.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-elfvsb/elfvsb.exp 2021-07-24 21:59:28.980706863 +0200
@@ -94,6 +94,10 @@ if { [istarget *-*-linux*]
}
}
+if { [istarget i686*-*-*] } {
+ set support_protected "no"
+}
+
# The test procedure.
proc visibility_test { visibility progname testname main sh1 sh2 dat args } {
global CC
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-gc/pr13683.d binutils-2.37-new/ld/testsuite/ld-gc/pr13683.d
--- binutils-2.37/ld/testsuite/ld-gc/pr13683.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-gc/pr13683.d 2021-07-24 21:59:28.980706863 +0200
@@ -2,7 +2,7 @@
#source: dummy.s
#ld: --gc-sections -e main --defsym foo=foo2 tmpdir/pr13683.o
#nm: --format=bsd
-#xfail: iq2000-*-* lm32-*-* epiphany-*-* mips64vr-*-* frv-*-* m32c-*-* rl78-*-* rx-*-* sh-*-* powerpc*-*-eabivle msp430-*-*
+#xfail: iq2000-*-* lm32-*-* epiphany-*-* mips64vr-*-* frv-*-* m32c-*-* rl78-*-* rx-*-* sh-*-* powerpc*-*-eabivle msp430-*-* aarch64*-*-* arm*-*-*
# Note - look for both "foo" and "foo2" being defined, non-zero function symbols
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-gc/pr19161.d binutils-2.37-new/ld/testsuite/ld-gc/pr19161.d
--- binutils-2.37/ld/testsuite/ld-gc/pr19161.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-gc/pr19161.d 2021-07-24 21:59:28.980706863 +0200
@@ -2,7 +2,7 @@
#source: dummy.s
#ld: --gc-sections -e main tmpdir/pr19161-1.o tmpdir/pr19161-2.o
#nm: --format=bsd
-#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-*
+#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-* aarch64*-*-* arm*-*-*
#xfail: mips64vr-*-* msp430-*-* powerpc*-*-eabivle rl78-*-* rx-*-* sh*-*-*
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/i386.exp binutils-2.37-new/ld/testsuite/ld-i386/i386.exp
--- binutils-2.37/ld/testsuite/ld-i386/i386.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/i386.exp 2021-07-24 21:59:28.981706853 +0200
@@ -1057,15 +1057,6 @@ if { [isnative]
"pr18900.out" \
] \
[list \
- "Run pr19031" \
- "$NOPIE_LDFLAGS tmpdir/pr19031.so" \
- "-Wa,-mx86-used-note=yes" \
- { pr19031b.S pr19031c.c } \
- "pr19031" \
- "pr19031.out" \
- "$NOPIE_CFLAGS" \
- ] \
- [list \
"Run got1" \
"$NOPIE_LDFLAGS tmpdir/got1d.so" \
"-Wa,-mx86-used-note=yes" \
@@ -1117,7 +1108,9 @@ if { [isnative]
] \
]
- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
+ if { ! [istarget i686*-*-*] } {
+ undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
+ }
undefined_weak "-fPIE" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" "-pie"
undefined_weak "-fPIE" "-z nodynamic-undefined-weak $NOPIE_LDFLAGS"
@@ -1181,7 +1174,7 @@ if { [isnative]
] \
]
- if { [istarget "i?86-*-linux*"] } {
+ if { [istarget "i?86-*-linux*"] && ! [istarget i686*-*-*] } {
run_cc_link_tests [list \
[list \
"Build pr21168.so with -z ibtplt" \
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/plt-main.rd binutils-2.37-new/ld/testsuite/ld-i386/plt-main.rd
--- binutils-2.37/ld/testsuite/ld-i386/plt-main.rd 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/plt-main.rd 2021-07-24 21:59:28.981706853 +0200
@@ -1,4 +1 @@
-#failif
-#...
-[0-9a-f ]+R_386_JUMP_SLOT +0+ +bar
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-i386/plt-pie-ibt.dd binutils-2.37-new/ld/testsuite/ld-i386/plt-pie-ibt.dd
--- binutils-2.37/ld/testsuite/ld-i386/plt-pie-ibt.dd 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-i386/plt-pie-ibt.dd 2021-07-24 21:59:28.981706853 +0200
@@ -1,7 +1,2 @@
#...
-Disassembly of section .plt.got:
-
-[a-f0-9]+ <[_a-z]+@plt>:
-[ ]*[a-f0-9]+: f3 0f 1e fb endbr32
-[ ]*[a-f0-9]+: ff a3 .. .. .. .. jmp +\*\-0x[a-f0-9]+\(%ebx\)
#pass
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp binutils-2.37-new/ld/testsuite/ld-ifunc/ifunc.exp
--- binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-24 21:59:28.981706853 +0200
@@ -39,6 +39,8 @@ if { ![is_elf_format] || ![supports_gnu_
|| [istarget nds32*-*-*]
|| [istarget nios2-*-*]
|| [istarget or1k-*-*]
+ || [istarget powerpc*-*-*]
+ || [istarget ppc*-*-*]
|| [istarget score*-*-*]
|| [istarget sh*-*-*]
|| [istarget tic6x-*-*]
@@ -664,6 +666,11 @@ run_cc_link_tests [list \
] \
]
+if { [isnative]
+ && !([istarget "powerpc-*-*"]
+ || [istarget "aarch64*-*-*"] || [istarget "arm*-*-*"]
+ || [istarget "sparc*-*-*"]
+ || [istarget "riscv*-*-*"]) } {
run_ld_link_exec_tests [list \
[list \
"Run pr18808" \
@@ -714,6 +721,7 @@ run_ld_link_exec_tests [list \
"pr18841.out" \
] \
]
+}
# The pr23169 testcase is not valid. In general, you can't call ifunc
# resolvers in another binary unless you know what you're doing. In
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-10.d 2021-07-24 21:59:20.653787965 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-10.d 2021-07-24 21:59:28.982706843 +0200
@@ -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_IRONLY
+Sym: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-11.d 2021-07-24 21:59:20.653787965 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-11.d 2021-07-24 21:59:28.982706843 +0200
@@ -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: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
+Sym: '_?text' Resolution: LDPR_PREVAILING_DE.*
#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-12.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-12.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-12.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-12.d 2021-07-24 21:59:28.982706843 +0200
@@ -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 `.*unc' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.*
+.*: symbol `.*unc1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY
+.*: symbol `.*unc2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY
+.*: symbol `.*unc3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY
#pass
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-16.d 2021-07-24 21:59:20.654787955 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-16.d 2021-07-24 21:59:28.982706843 +0200
@@ -30,7 +30,7 @@ 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: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-17.d 2021-07-24 21:59:20.654787955 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-17.d 2021-07-24 21:59:28.983706834 +0200
@@ -31,7 +31,7 @@ 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: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-18.d 2021-07-24 21:59:20.654787955 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-18.d 2021-07-24 21:59:28.983706834 +0200
@@ -32,7 +32,7 @@ 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: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-19.d 2021-07-24 21:59:20.654787955 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-19.d 2021-07-24 21:59:28.983706834 +0200
@@ -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: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
+Sym: '_?text' Resolution: LDPR_PREVAILING_DE.*
#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-8.d 2021-07-24 21:59:20.657787926 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-8.d 2021-07-24 21:59:28.983706834 +0200
@@ -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_IRONLY
+Sym: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d
--- binutils-2.37/ld/testsuite/ld-plugin/plugin-9.d 2021-07-24 21:59:20.657787926 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin-9.d 2021-07-24 21:59:28.983706834 +0200
@@ -31,7 +31,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_IRONLY
+Sym: '_?func' Resolution: LDPR_PREVAILING_DE.*
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-plugin/plugin.exp binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp
--- binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-24 21:59:20.657787926 +0200
+++ binutils-2.37-new/ld/testsuite/ld-plugin/plugin.exp 2021-07-24 21:59:28.984706824 +0200
@@ -81,6 +81,7 @@ if { [istarget m681*-*-*] || [istarget m
# otherwise get FAILS due to _.frame
set CFLAGS "$CFLAGS -fomit-frame-pointer"
}
+
# In order to define symbols in plugin options in the list of tests below,
# we need to know if the platform prepends an underscore to C symbols,
# which we find out by compiling the test objects now. If there is any
@@ -119,7 +120,7 @@ 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*] } {
+if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] || [istarget *-*-*] } {
set _ ""
}
@@ -137,6 +138,9 @@ if [is_pecoff_format] {
#otherwise relocs overflow to symbols defined on the command line
append libs " --image-base=0x10000000"
}
+if { [istarget aarch64*-*-*] || [istarget arm*-*-*] } {
+ append libs " --defsym __aeabi_unwind_cpp_pr0=0"
+}
set plugin_tests [list \
[list "load plugin" "-plugin $plugin_path \
@@ -304,6 +308,7 @@ if { !$can_compile || $failed_compile }
run_ld_link_tests $plugin_tests
if { [is_elf_format] \
+ && ! [istarget ppc64*-*-*] && ! [istarget powerpc*-*-*]
&& [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] } {
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/group1.sym binutils-2.37-new/ld/testsuite/ld-powerpc/group1.sym
--- binutils-2.37/ld/testsuite/ld-powerpc/group1.sym 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/group1.sym 2021-07-24 21:59:28.984706824 +0200
@@ -1,3 +1 @@
-#...
-.* 8 FUNC +GLOBAL DEFAULT \[<localentry>: 4\] +1 foo
#pass
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/group3.sym binutils-2.37-new/ld/testsuite/ld-powerpc/group3.sym
--- binutils-2.37/ld/testsuite/ld-powerpc/group3.sym 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/group3.sym 2021-07-24 21:59:28.984706824 +0200
@@ -1,3 +1 @@
-#...
-.* 4 FUNC +GLOBAL DEFAULT \[<localentry>: 1\] +1 foo
#pass
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/notoc3.d binutils-2.37-new/ld/testsuite/ld-powerpc/notoc3.d
--- binutils-2.37/ld/testsuite/ld-powerpc/notoc3.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/notoc3.d 2021-07-24 21:59:28.984706824 +0200
@@ -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
+8000000000000004:.*
8000000000000008: (00 00 00 60|60 00 00 00) nop
800000000000000c: (20 00 80 4e|4e 80 00 20) blr
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d binutils-2.37-new/ld/testsuite/ld-powerpc/pr23937.d
--- binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/pr23937.d 2021-07-24 21:59:28.985706814 +0200
@@ -5,6 +5,4 @@
#...
.* R_PPC64_IRELATIVE +10000180
-#...
-.*: 0+10000180 +20 IFUNC +LOCAL +DEFAULT .* magic
#pass
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32no.r binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32no.r
--- binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32no.r 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32no.r 2021-07-24 21:59:28.985706814 +0200
@@ -22,6 +22,7 @@ Section Headers:
+\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000038 04 +WA +0 +0 +4
+\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4
+#pass
+\[[ 0-9]+\] \.symtab +SYMTAB +.*
+\[[ 0-9]+\] \.strtab +STRTAB +.*
+\[[ 0-9]+\] \.shstrtab +STRTAB +.*
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32.r binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32.r
--- binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32.r 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/tlsexe32.r 2021-07-24 21:59:28.986706805 +0200
@@ -22,7 +22,8 @@ Section Headers:
+\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000018 04 +WA +0 +0 +4
+\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4
- +\[[ 0-9]+\] \.symtab +SYMTAB +.*
+#pass
++\[[ 0-9]+\] \.symtab +SYMTAB +.*
+\[[ 0-9]+\] \.strtab +STRTAB +.*
+\[[ 0-9]+\] \.shstrtab +STRTAB +.*
#...
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-powerpc/tlsso32.r binutils-2.37-new/ld/testsuite/ld-powerpc/tlsso32.r
--- binutils-2.37/ld/testsuite/ld-powerpc/tlsso32.r 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-powerpc/tlsso32.r 2021-07-24 21:59:28.986706805 +0200
@@ -20,6 +20,7 @@ Section Headers:
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 08 +WA +3 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS .* 0+40 04 +WA +0 +0 +4
+\[[ 0-9]+\] \.plt +PROGBITS .* 0+4 00 +WA +0 +0 +4
+#pass
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
+\[[ 0-9]+\] \.shstrtab +.*
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-scripts/crossref.exp binutils-2.37-new/ld/testsuite/ld-scripts/crossref.exp
--- binutils-2.37/ld/testsuite/ld-scripts/crossref.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-scripts/crossref.exp 2021-07-24 21:59:28.986706805 +0200
@@ -147,6 +147,8 @@ set exec_output [prune_warnings $exec_ou
regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output
+setup_xfail i686*-*-*
+
if [string match "" $exec_output] then {
pass $test3
} else {
@@ -187,6 +189,8 @@ set exec_output [prune_warnings $exec_ou
regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output
+setup_xfail i686*-*-*
+
if [string match "" $exec_output] then {
pass $test6
} else {
@@ -199,6 +203,8 @@ set exec_output [prune_warnings $exec_ou
regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output
+setup_xfail i686*-*-*
+
if [string match "" $exec_output] then {
fail $test7
} else {
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-shared/shared.exp binutils-2.37-new/ld/testsuite/ld-shared/shared.exp
--- binutils-2.37/ld/testsuite/ld-shared/shared.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-shared/shared.exp 2021-07-24 21:59:28.987706795 +0200
@@ -36,9 +36,6 @@ if { ![istarget hppa*64*-*-hpux*] \
&& ![istarget hppa*-*-linux*] \
&& ![istarget i?86-*-sysv4*] \
&& ![istarget i?86-*-unixware] \
- && ![istarget i?86-*-elf*] \
- && ![istarget i?86-*-linux*] \
- && ![istarget i?86-*-gnu*] \
&& ![istarget *-*-nacl*] \
&& ![istarget ia64-*-elf*] \
&& ![istarget ia64-*-linux*] \
diff -rupN --no-dereference binutils-2.37/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.37-new/ld/testsuite/ld-x86-64/x86-64.exp
--- binutils-2.37/ld/testsuite/ld-x86-64/x86-64.exp 2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37-new/ld/testsuite/ld-x86-64/x86-64.exp 2021-07-24 21:59:28.987706795 +0200
@@ -1466,22 +1466,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" \
- ] \
- [list \
"Build lam-u48.so" \
"-shared -Wl,-z,lam-u48" \
"" \
@@ -1813,49 +1797,6 @@ if { [isnative] && [check_compiler_avail
if { [istarget "x86_64-*-linux*"] \
&& ![istarget "x86_64-*-linux*-gnux32"]} {
- run_cc_link_tests [list \
- [list \
- "Build plt-main with -z bndplt" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt \
- -z noseparate-code -z max-page-size=0x200000" \
- "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
- { plt-main5.c } \
- {{objdump {-drw} plt-main-bnd.dd}} \
- "plt-main-bnd" \
- ] \
- [list \
- "Build plt-main with PIE and -z bndplt" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie \
- -z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
- { plt-main5.c } \
- {{objdump {-drw} plt-main-bnd.dd}} \
- "plt-main-pie-bnd" \
- ] \
- [list \
- "Build plt-main with -z bndplt -z now" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now \
- -z noseparate-code -z max-page-size=0x200000" \
- "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
- { plt-main5.c } \
- {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \
- "plt-main-bnd-now" \
- ] \
- [list \
- "Build plt-main with PIE and -z bndplt -z now" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie \
- -z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
- { plt-main5.c } \
- {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \
- "plt-main-pie-bnd-now" \
- ] \
- ]
-
run_ld_link_exec_tests [list \
[list \
"Run plt-main with -z bndplt" \
@@ -1940,66 +1881,6 @@ if { [isnative] && [check_compiler_avail
set pltdump {{objdump {-drw} plt-main-ibt.dd}}
set pltsecdump {{readelf {-SW} plt-main-ibt-now.rd} {objdump {-drw} plt-main-ibt.dd}}
}
- run_cc_link_tests [list \
- [list \
- "Build plt-main with -z ibtplt" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt \
- -z noseparate-code -z max-page-size=0x200000" \
- "-Wa,-mx86-used-note=yes" \
- { plt-main5.c } \
- $pltdump \
- "plt-main-ibt" \
- ] \
- [list \
- "Build plt-main with PIE and -z ibtplt" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -pie \
- -z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes" \
- { plt-main5.c } \
- $pltdump \
- "plt-main-pie-ibt" \
- ] \
- [list \
- "Build plt-main with -z ibtplt -z now" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now \
- -z noseparate-code -z max-page-size=0x200000" \
- "-Wa,-mx86-used-note=yes" \
- { plt-main5.c } \
- $pltsecdump \
- "plt-main-ibt-now" \
- ] \
- [list \
- "Build plt-main with PIE and -z ibtplt -z now" \
- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now -pie \
- -z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes" \
- { plt-main5.c } \
- $pltsecdump \
- "plt-main-pie-ibt-now" \
- ] \
- [list \
- "Build libibtplt-lib.so with -z ibtplt" \
- "-shared -z ibtplt \
- -z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes" \
- { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \
- $pltdump \
- "libibtplt-lib.so" \
- ] \
- [list \
- "Build libibtplt--now-lib.so with -z ibtplt -z now" \
- "-shared -z ibtplt -z now \
- -z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes" \
- { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \
- $pltdump \
- "libibtplt-now-lib.so" \
- ] \
- ]
run_ld_link_exec_tests [list \
[list \
@@ -2044,24 +1925,6 @@ if { [isnative] && [check_compiler_avail
"plt-main.out" \
"-fPIC" \
] \
- [list \
- "Run plt-main with libibtplt-lib.so -z ibtplt" \
- "-Wl,--no-as-needed,-z,ibtplt tmpdir/libibtplt-lib.so \
- tmpdir/libplt-lib.so" \
- "-Wa,-mx86-used-note=yes" \
- { plt-main5.c } \
- "plt-main-ibt-lib" \
- "plt-main.out" \
- ] \
- [list \
- "Run plt-main with libibtplt-lib.so -z ibtplt -z now" \
- "-Wl,--no-as-needed,-z,ibtplt,-z,now \
- tmpdir/libibtplt-now-lib.so tmpdir/libplt-lib.so" \
- "-Wa,-mx86-used-note=yes" \
- { plt-main5.c } \
- "plt-main-ibt-now-lib" \
- "plt-main.out" \
- ] \
]
if { [check_ifunc_attribute_available] } {
@@ -2088,7 +1951,6 @@ if { [isnative] && [check_compiler_avail
}
}
- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" ""
undefined_weak "-fPIE" "-pie"
undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak"

View File

@ -1,834 +0,0 @@
From f09382330535adbc565b49ed1844cfeaeadb8b7c Mon Sep 17 00:00:00 2001
From: yinhongchang <yinhongchang@kylinsec.com.cn>
Date: Sun, 4 Feb 2024 15:56:46 +0800
Subject: [PATCH] binutils update autoconf version to 2.71
---
README-maintainer-mode | 2 +-
bfd/aclocal.m4 | 4 ++--
bfd/configure | 10 +++++-----
binutils/aclocal.m4 | 4 ++--
binutils/configure | 10 +++++-----
config/ChangeLog | 2 +-
config/override.m4 | 2 +-
configure | 10 +++++-----
etc/configure | 10 +++++-----
gas/aclocal.m4 | 4 ++--
gas/configure | 10 +++++-----
gold/aclocal.m4 | 4 ++--
gold/configure | 10 +++++-----
gprof/aclocal.m4 | 4 ++--
gprof/configure | 10 +++++-----
intl/configure | 10 +++++-----
ld/aclocal.m4 | 4 ++--
ld/configure | 10 +++++-----
libctf/aclocal.m4 | 4 ++--
libctf/configure | 10 +++++-----
libiberty/configure | 10 +++++-----
opcodes/aclocal.m4 | 4 ++--
opcodes/configure | 10 +++++-----
zlib/aclocal.m4 | 4 ++--
zlib/configure | 10 +++++-----
25 files changed, 86 insertions(+), 86 deletions(-)
diff --git a/README-maintainer-mode b/README-maintainer-mode
index 54c370db..bc0c520d 100644
--- a/README-maintainer-mode
+++ b/README-maintainer-mode
@@ -11,7 +11,7 @@ find the sources for these in the respective upstream directories:
ftp://ftp.gnu.org/gnu/gettext
The required versions of the tools for this tree are
- autoconf 2.69
+ autoconf 2.71
automake 1.15.1
libtool 2.2.6
gettext 0.14.5
diff --git a/bfd/aclocal.m4 b/bfd/aclocal.m4
index 4a6a47ca..f55d3eb2 100644
--- a/bfd/aclocal.m4
+++ b/bfd/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/bfd/configure b/bfd/configure
index 9cba0719..fa362606 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bfd 2.34.
+# Generated by GNU Autoconf 2.71 for bfd 2.34.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1590,7 +1590,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
bfd configure 2.34
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -2238,7 +2238,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by bfd $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -16954,7 +16954,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by bfd $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -17020,7 +17020,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
bfd config.status 2.34
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/binutils/aclocal.m4 b/binutils/aclocal.m4
index 4fa32fff..837e590f 100644
--- a/binutils/aclocal.m4
+++ b/binutils/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/binutils/configure b/binutils/configure
index 7880de68..c352d656 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for binutils 2.34.
+# Generated by GNU Autoconf 2.71 for binutils 2.34.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1575,7 +1575,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
binutils configure 2.34
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -2223,7 +2223,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by binutils $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -15802,7 +15802,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by binutils $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -15868,7 +15868,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
binutils config.status 2.34
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/config/ChangeLog b/config/ChangeLog
index 19fc6cd5..788ede19 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -33,7 +33,7 @@
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
- * override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69.
+ * override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.71.
2018-06-18 Simon Marchi <simon.marchi@ericsson.com>
diff --git a/config/override.m4 b/config/override.m4
index d3e815bb..7b4a47ba 100644
--- a/config/override.m4
+++ b/config/override.m4
@@ -29,7 +29,7 @@ m4_copy_force([_AC_PREREQ], [AC_PREREQ])
dnl Ensure exactly this Autoconf version is used
m4_ifndef([_GCC_AUTOCONF_VERSION],
- [m4_define([_GCC_AUTOCONF_VERSION], [2.69])])
+ [m4_define([_GCC_AUTOCONF_VERSION], [2.71])])
dnl Test for the exact version when AC_INIT is expanded.
dnl This allows to update the tree in steps (for testing)
diff --git a/configure b/configure
index 9f4d0b91..407ae27a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.71.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1745,7 +1745,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1976,7 +1976,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -15370,7 +15370,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -15423,7 +15423,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/etc/configure b/etc/configure
index 60a8fecc..9beca587 100755
--- a/etc/configure
+++ b/etc/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.71.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1309,7 +1309,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1326,7 +1326,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -2362,7 +2362,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -2415,7 +2415,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/gas/aclocal.m4 b/gas/aclocal.m4
index a9f9f5cc..2c63a648 100644
--- a/gas/aclocal.m4
+++ b/gas/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/gas/configure b/gas/configure
index 148af892..e13306b0 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gas 2.34.
+# Generated by GNU Autoconf 2.71 for gas 2.34.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1577,7 +1577,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
gas configure 2.34
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -2042,7 +2042,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by gas $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -15706,7 +15706,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by gas $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -15772,7 +15772,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
gas config.status 2.34
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/gold/aclocal.m4 b/gold/aclocal.m4
index 303c4cc5..1f183026 100644
--- a/gold/aclocal.m4
+++ b/gold/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/gold/configure b/gold/configure
index 474c69a1..c8418e4d 100755
--- a/gold/configure
+++ b/gold/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gold 0.1.
+# Generated by GNU Autoconf 2.71 for gold 0.1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1598,7 +1598,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
gold configure 0.1
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -2330,7 +2330,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by gold $as_me 0.1, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -10851,7 +10851,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by gold $as_me 0.1, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -10917,7 +10917,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
gold config.status 0.1
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/gprof/aclocal.m4 b/gprof/aclocal.m4
index 957655a8..92a3626e 100644
--- a/gprof/aclocal.m4
+++ b/gprof/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/gprof/configure b/gprof/configure
index 727cd725..f09af2f1 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprof 2.34.
+# Generated by GNU Autoconf 2.71 for gprof 2.34.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1520,7 +1520,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
gprof configure 2.34
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1885,7 +1885,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by gprof $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -13087,7 +13087,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by gprof $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -13153,7 +13153,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
gprof config.status 2.34
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/intl/configure b/intl/configure
index 2f359931..412498b3 100755
--- a/intl/configure
+++ b/intl/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.71.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1434,7 +1434,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1853,7 +1853,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -7266,7 +7266,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -7332,7 +7332,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/ld/aclocal.m4 b/ld/aclocal.m4
index 7df8bf68..4c81116c 100644
--- a/ld/aclocal.m4
+++ b/ld/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/ld/configure b/ld/configure
index 27b43415..1b66413c 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ld 2.34.
+# Generated by GNU Autoconf 2.71 for ld 2.34.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1602,7 +1602,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
ld configure 2.34
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -2317,7 +2317,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by ld $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -18255,7 +18255,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by ld $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -18321,7 +18321,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
ld config.status 2.34
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/libctf/aclocal.m4 b/libctf/aclocal.m4
index 15d96cd6..9a3441a1 100644
--- a/libctf/aclocal.m4
+++ b/libctf/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/libctf/configure b/libctf/configure
index e5493b31..5d2f3623 100755
--- a/libctf/configure
+++ b/libctf/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libctf library 1.2.0-pre.
+# Generated by GNU Autoconf 2.71 for libctf library 1.2.0-pre.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1515,7 +1515,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libctf library configure 1.2.0-pre
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1926,7 +1926,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by libctf library $as_me 1.2.0-pre, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -13772,7 +13772,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by libctf library $as_me 1.2.0-pre, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -13838,7 +13838,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libctf library config.status 1.2.0-pre
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/libiberty/configure b/libiberty/configure
index 7a34dabe..80230b0a 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.71.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1423,7 +1423,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -2103,7 +2103,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -7983,7 +7983,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -8049,7 +8049,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/opcodes/aclocal.m4 b/opcodes/aclocal.m4
index 36b13275..9b42574b 100644
--- a/opcodes/aclocal.m4
+++ b/opcodes/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/opcodes/configure b/opcodes/configure
index 6bae87d2..87084d18 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for opcodes 2.34.
+# Generated by GNU Autoconf 2.71 for opcodes 2.34.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1540,7 +1540,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
opcodes configure 2.34
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1951,7 +1951,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by opcodes $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -13534,7 +13534,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by opcodes $as_me 2.34, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -13600,7 +13600,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
opcodes config.status 2.34
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
diff --git a/zlib/aclocal.m4 b/zlib/aclocal.m4
index e5eed57b..fde016f6 100644
--- a/zlib/aclocal.m4
+++ b/zlib/aclocal.m4
@@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
diff --git a/zlib/configure b/zlib/configure
index 041cbdbf..67f6cc55 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for zlib 1.1.4.
+# Generated by GNU Autoconf 2.71 for zlib 1.1.4.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -1506,7 +1506,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
zlib configure 1.1.4
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1874,7 +1874,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by zlib $as_me 1.1.4, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0 $@
@@ -12051,7 +12051,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by zlib $as_me 1.1.4, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -12108,7 +12108,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
zlib config.status 1.1.4
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
--
2.27.0

View File

@ -0,0 +1,38 @@
diff -rupN --no-dereference binutils-2.37/bfd/configure binutils-2.37-new/bfd/configure
--- binutils-2.37/bfd/configure 2021-07-18 18:36:53.000000000 +0200
+++ binutils-2.37-new/bfd/configure 2021-07-24 21:59:26.907727053 +0200
@@ -12751,11 +12751,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 -rupN --no-dereference binutils-2.37/bfd/configure.ac binutils-2.37-new/bfd/configure.ac
--- binutils-2.37/bfd/configure.ac 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/configure.ac 2021-07-24 21:59:26.908727043 +0200
@@ -230,11 +230,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

View File

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/Makefile.am
--- binutils-2.34/bfd/Makefile.am 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/bfd/Makefile.am 2020-12-18 02:57:12.205063623 +0100
@@ -967,8 +967,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD
diff -rupN --no-dereference binutils-2.37/bfd/Makefile.am binutils-2.37-new/bfd/Makefile.am
--- binutils-2.37/bfd/Makefile.am 2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37-new/bfd/Makefile.am 2021-07-24 21:59:00.067988456 +0200
@@ -942,8 +942,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/'` ;\
@ -12,7 +12,7 @@ diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
. $(srcdir)/development.sh ;\
@@ -979,7 +979,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
@@ -954,7 +954,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
fi ;\
$(SED) -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \
@ -21,10 +21,10 @@ diff -rupN --no-dereference binutils-2.34/bfd/Makefile.am binutils-2.34-new/bfd/
-e "s,@report_bugs_to@,$$report_bugs_to," \
< $(srcdir)/version.h > $@; \
echo "$${bfd_soversion}" > libtool-soversion
diff -rupN --no-dereference binutils-2.34/bfd/Makefile.in binutils-2.34-new/bfd/Makefile.in
--- binutils-2.34/bfd/Makefile.in 2020-02-01 12:49:13.000000000 +0100
+++ binutils-2.34-new/bfd/Makefile.in 2020-12-18 02:57:12.205063623 +0100
@@ -2081,8 +2081,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES)
diff -rupN --no-dereference binutils-2.37/bfd/Makefile.in binutils-2.37-new/bfd/Makefile.in
--- binutils-2.37/bfd/Makefile.in 2021-07-18 18:36:53.000000000 +0200
+++ binutils-2.37-new/bfd/Makefile.in 2021-07-24 21:59:00.069988437 +0200
@@ -2053,8 +2053,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/'` ;\
@ -35,7 +35,7 @@ diff -rupN --no-dereference binutils-2.34/bfd/Makefile.in binutils-2.34-new/bfd/
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
. $(srcdir)/development.sh ;\
@@ -2093,7 +2093,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
@@ -2065,7 +2065,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
fi ;\
$(SED) -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \

View File

@ -1,39 +0,0 @@
diff -rupN --no-dereference binutils-2.34/bfd/peXXigen.c binutils-2.34-new/bfd/peXXigen.c
--- binutils-2.34/bfd/peXXigen.c 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/bfd/peXXigen.c 2020-12-18 02:57:24.508020278 +0100
@@ -177,25 +177,25 @@ _bfd_XXi_swap_sym_in (bfd * abfd, void *
int unused_section_number = 0;
asection *sec;
flagword flags;
+ size_t name_len;
+ char *sec_name;
for (sec = abfd->sections; sec; sec = sec->next)
if (unused_section_number <= sec->target_index)
unused_section_number = sec->target_index + 1;
- if (name == namebuf)
+ name_len = strlen (name) + 1;
+ sec_name = bfd_alloc (abfd, name_len);
+ if (sec_name == NULL)
{
- name = (const char *) bfd_alloc (abfd, strlen (namebuf) + 1);
- if (name == NULL)
- {
- _bfd_error_handler (_("%pB: out of memory creating name for empty section"),
- abfd);
- return;
- }
- strcpy ((char *) name, namebuf);
+ _bfd_error_handler (_("%pB: out of memory creating name "
+ "for empty section"), abfd);
+ return;
}
+ memcpy (sec_name, name, name_len);
flags = SEC_HAS_CONTENTS | SEC_ALLOC | SEC_DATA | SEC_LOAD;
- sec = bfd_make_section_anyway_with_flags (abfd, name, flags);
+ sec = bfd_make_section_anyway_with_flags (abfd, sec_name, flags);
if (sec == NULL)
{
_bfd_error_handler (_("%pB: unable to create fake empty section"),

View File

@ -1,12 +0,0 @@
diff -rupN --no-dereference binutils-2.34/binutils/debug.c binutils-2.34-new/binutils/debug.c
--- binutils-2.34/binutils/debug.c 2020-01-18 14:55:47.000000000 +0100
+++ binutils-2.34-new/binutils/debug.c 2020-12-18 02:57:25.423017056 +0100
@@ -3277,6 +3277,8 @@ debug_class_type_samep (struct debug_han
names, since that sometimes fails in the presence of
typedefs and we really don't care. */
if (strcmp (f1->name, f2->name) != 0
+ || f1->type == NULL
+ || f2->type == NULL
|| ! debug_type_samep (info,
debug_get_real_type ((void *) info,
f1->type, NULL),

View File

@ -1,24 +1,30 @@
%global run_testsuite 1
Name: mingw-binutils
Version: 2.34
Release: 10
Version: 2.37
Release: 2
Summary: Cross-compiled version of binutils for Win32 and Win64 environments
License: GPLv2+ and LGPLv2+ and GPLv3+ and LGPLv3+
URL: http://www.gnu.org/software/binutils/
Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2
Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
### Patches from native package
# Unneeded, mingw does not have lib64
# Patch01: binutils-2.20.51.0.2-libtool-lib64.patch
# Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the
# default library search path of 64-bit targets.
# Lifetime: Permanent, but it should not be. This is a bug in the libtool
# sources used in both binutils and gcc, (specifically the
# libtool.m4 file). These are based on a version released in 2009
# (2.2.6?) rather than the latest version. (Definitely fixed in
# libtool version 2.4.6).
# Not needed, mingw does not have lib64
# Patch01: binutils-libtool-lib64.patch
# Purpose: Appends a RHEL or Fedora release string to the generic binutils
# version string.
# Lifetime: Permanent. This is a RHEL/Fedora specific patch.
Patch02: binutils-2.25-version.patch
Patch02: binutils-version.patch
# Purpose: Exports the demangle.h header file (associated with the libiberty
# sources) with the binutils-devel rpm.
@ -34,7 +40,7 @@ Patch03: binutils-export-demangle.h.patch
# FIXME: It would be better if the packages using the bfd.h header were
# fixed so that they do include the header files in the correct
# order.
Patch04: binutils-2.22.52.0.4-no-config-h-check.patch
Patch04: binutils-no-config-h-check.patch
# Purpose: Include the filename concerned in readelf error messages. This
# makes readelf's output more helpful when it is run on multiple
@ -43,10 +49,15 @@ Patch04: binutils-2.22.52.0.4-no-config-h-check.patch
# making it better (IMHO) but also potentially breaking tools that
# depend upon readelf's current format. Hence it remains a local
# patch.
Patch05: binutils-2.29-filename-in-error-messages.patch
Patch05: binutils-filename-in-error-messages.patch
# Unneeded, affects ELF only
# Patch06: binutils-2.29-revert-PLT-elision.patch
# Purpose: Disable an x86/x86_64 optimization that moves functions from the
# PLT into the GOTPLT for faster access. This optimization is
# problematic for tools that want to intercept PLT entries, such
# as ltrace and LD_AUDIT. See BZs 1452111 and 1333481.
# Lifetime: Permanent. But it should not be.
# FIXME: Replace with a configure time option.
Patch06: binutils-revert-PLT-elision.patch
# Purpose: Changes readelf so that when it displays extra information about
# a symbol, this information is placed at the end of the line.
@ -56,65 +67,60 @@ Patch05: binutils-2.29-filename-in-error-messages.patch
# no longer being maintained.
Patch07: binutils-readelf-other-sym-info.patch
# Unneeded, affects ELF only
# Patch08: binutils-2.27-aarch64-ifunc.patch
# Purpose: Do not create PLT entries for AARCH64 IFUNC symbols referenced in
# debug sections.
# Lifetime: Permanent.
# FIXME: Find related bug. Decide on permanency.
Patch08: binutils-2.27-aarch64-ifunc.patch
# Purpose: Stop the binutils from statically linking with libstdc++.
# Lifetime: Permanent.
Patch09: binutils-do-not-link-with-static-libstdc++.patch
# Unneeded, affects ELF only
# Patch10: binutils-attach-to-group.patch
# Purpose: Stop gold from complaining about relocs in the .gnu.build.attribute
# section that reference symbols in discarded sections.
# Lifetime: Fixed in 2.33 (maybe)
Patch11: binutils-gold-ignore-discarded-note-relocs.patch
# Purpose: Allow OS specific sections in section groups.
# Lifetime: Might be fixed in 2.33
Patch12: binutils-special-sections-in-groups.patch
# Lifetime: Fixed in 2.38 (maybe)
Patch10: binutils-special-sections-in-groups.patch
# Purpose: Fix linker testsuite failures.
# Lifetime: Fixed in 2.33 (possibly)
Patch13: binutils-fix-testsuite-failures.patch
# Lifetime: Fixed in 2.37 (maybe)
Patch11: binutils-fix-testsuite-failures.patch
# Purpose: Stop gold from aborting when input sections with the same name
# have different flags.
# Lifetime: Fixed in 2.35 (maybe)
Patch14: binutils-gold-mismatched-section-flags.patch
# Purpose: Fix a potential use of an initialised field by readelf.
# Lifetime: Fixed in 2.35
Patch15: binutils-readelf-compression-header-size.patch
# Lifetime: Fixed in 2.38 (maybe)
Patch12: binutils-gold-mismatched-section-flags.patch
# Purpose: Add a check to the GOLD linker for a corrupt input file
# with a fuzzed section offset.
# Lifetime: Fixed in 2.35 (maybe)
Patch16: binutils-CVE-2019-1010204.patch
# Backport fix for CVE-2020-16592
# https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7ecb51549ab1ec22aba5aaf34b70323cf0b8509a
Patch17: binutils_CVE-2020-16592.patch
# Backport fix for CVE-2020-16598
# https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ca3f923f82a079dcf441419f4a50a50f8b4b33c2
Patch18: binutils_CVE-2020-16598.patch
# Lifetime: Fixed in 2.38 (maybe)
Patch13: binutils-CVE-2019-1010204.patch
# Backport fixes for CVE-2021-20197
Patch19: binutils-gdb.git-365f5fb6d0f0da83817431a275e99e6f6babbe04.patch
Patch20: binutils-gdb.git-1a1c3b4cc17687091cff5a368bd6f13742bcfdf8.patch
Patch21: binutils-gdb.git-014cc7f849e8209623fc99264814bce7b3b6faf2.patch
# Purpose: Change the gold configuration script to only warn about
# unsupported targets. This allows the binutils to be built with
# BPF support enabled.
# Lifetime: Permanent.
Patch14: binutils-gold-warn-unsupported.patch
# Backport fix for CVE-2021-3487
# https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=647cebce12a6b0a26960220caff96ff38978cf24
Patch22: CVE-2021-3487.patch
# update Autoconf version to 2.71
Patch23: binutils-update-autoconf-version-to-2.71.patch
# Purpose: Use the "unsigned long long" type for pointers on hosts where
# long is a 32-bit type but pointers are a 64-bit type. Necessary
# because users expect to be able to install both the i686- and
# x86_64 versions of binutils-devel on the same machine, so they
# need to identical versions of the bfd.h header file.
# Lifetime: Permanent.
Patch15: binutils-use-long-long.patch
### MINGW specific patches
Patch102: binutils-config.patch
# Purpose: Fix testsuite failures due to the patches applied here.
# Lifetime: Permanent, but varying with each new rebase.
Patch16: binutils-testsuite-fixes.patch
BuildRequires: make
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
# linker for x86 binaries.
# Lifetime: Fixed in 2.38 maybe
Patch17: binutils-gold-i386-gnu-property-notes.patch
BuildRequires: make
BuildRequires: gcc
BuildRequires: flex
BuildRequires: bison
@ -127,7 +133,6 @@ BuildRequires: dejagnu
BuildRequires: sharutils
%endif
Provides: bundled(libiberty)
BuildRequires: autoconf, automake
%description
@ -172,16 +177,6 @@ sed -i -e 's/%''{release}/%{release}/g' bfd/Makefile{.am,.in}
%build
# Dependencies are not set up to rebuild the configure files
# in the subdirectories. So we just rebuild the ones we care
# about
pushd libiberty
autoconf
popd
pushd intl
autoconf
popd
# We call configure directly rather than via macros, thus if
# we are using LTO, we have to manually fix the broken configure
# scripts
@ -280,26 +275,29 @@ popd
%install
%mingw_make_install DESTDIR=$RPM_BUILD_ROOT
make -C build_multilib DESTDIR=$RPM_BUILD_ROOT/multilib install
%mingw_make_install DESTDIR=%{buildroot}
make -C build_multilib DESTDIR=%{buildroot}/multilib install
# These files conflict with ordinary binutils.
rm -rf $RPM_BUILD_ROOT%{_infodir}
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty*
rm -rf %{buildroot}%{_infodir}
rm -f %{buildroot}%{_libdir}/libiberty*
rm -f %{buildroot}%{_libdir}/bfd-plugins/libdep.so
# Keep the multilib versions of the strip, objdump and objcopy commands
# We need these for the RPM integration as these tools must be able to
# both process win32 and win64 binaries
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_strip} $RPM_BUILD_ROOT%{_bindir}/%{mingw_strip}
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_objdump} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objdump}
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_objcopy} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objcopy}
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_nm} $RPM_BUILD_ROOT%{_bindir}/%{mingw_nm}
rm -rf $RPM_BUILD_ROOT/multilib
mv %{buildroot}/multilib%{_bindir}/%{mingw64_strip} %{buildroot}%{_bindir}/%{mingw_strip}
mv %{buildroot}/multilib%{_bindir}/%{mingw64_objdump} %{buildroot}%{_bindir}/%{mingw_objdump}
mv %{buildroot}/multilib%{_bindir}/%{mingw64_objcopy} %{buildroot}%{_bindir}/%{mingw_objcopy}
mv %{buildroot}/multilib%{_bindir}/%{mingw64_nm} %{buildroot}%{_bindir}/%{mingw_nm}
rm -rf %{buildroot}/multilib
# Drop man pages, they are a duplicate of those of the native tools
rm -rf %{buildroot}%{_mandir}/man1/*
%files -n mingw-binutils-generic
%license COPYING
%{_mandir}/man1/*
%{_bindir}/%{mingw_strip}
%{_bindir}/%{mingw_objdump}
%{_bindir}/%{mingw_objcopy}
@ -375,6 +373,9 @@ rm -rf $RPM_BUILD_ROOT/multilib
%changelog
* Mon Feb 5 2024 yinhongchang <yinhongchang@kylinsec.com.cn> - 2.37-2
- update version to 2.37-2
* Mon Feb 5 2024 yinhongchang <yinhongchang@kylinsec.com.cn> - 2.34-10
- update changelog info