Compare commits

..

No commits in common. 'cs10' and 'c9' have entirely different histories.
cs10 ... c9

2
.gitignore vendored

@ -1 +1 @@
SOURCES/binutils-2.41.tar.xz
SOURCES/binutils-2.40.tar.xz

@ -1 +1 @@
0e008260a958bbd10182ee3384672ae0a310eece SOURCES/binutils-2.41.tar.xz
fee4fbef9d632afc1988dd631d7f75d4394b7f8d SOURCES/binutils-2.40.tar.xz

@ -0,0 +1,22 @@
diff -rupN --no-dereference binutils-2.40/bfd/elf.c binutils-2.40-new/bfd/elf.c
--- binutils-2.40/bfd/elf.c 2023-04-14 16:12:16.185323541 +0200
+++ binutils-2.40-new/bfd/elf.c 2023-04-14 16:12:27.583371759 +0200
@@ -9048,6 +9048,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd
bfd_set_error (bfd_error_file_too_big);
goto error_return_verdef;
}
+
+ if (amt == 0)
+ goto error_return_verdef;
elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt);
if (elf_tdata (abfd)->verdef == NULL)
goto error_return_verdef;
@@ -9151,6 +9154,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
bfd_set_error (bfd_error_file_too_big);
goto error_return;
}
+ if (amt == 0)
+ goto error_return;
elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt);
if (elf_tdata (abfd)->verdef == NULL)
goto error_return;

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.41/bfd/elfnn-aarch64.c binutils-2.41-new/bfd/elfnn-aarch64.c
--- binutils-2.41/bfd/elfnn-aarch64.c 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/elfnn-aarch64.c 2023-10-17 08:36:07.259543844 +0200
@@ -5654,6 +5654,7 @@ elfNN_aarch64_final_link_relocate (reloc
diff -rupN --no-dereference binutils-2.40/bfd/elfnn-aarch64.c binutils-2.40-new/bfd/elfnn-aarch64.c
--- binutils-2.40/bfd/elfnn-aarch64.c 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/elfnn-aarch64.c 2023-03-09 14:51:55.011379383 +0100
@@ -5487,6 +5487,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

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/config/override.m4 binutils-2.41-new/config/override.m4
--- binutils-2.41/config/override.m4 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/config/override.m4 2023-10-17 08:36:14.285923364 +0200
diff -rupN --no-dereference binutils-2.40/config/override.m4 binutils-2.40-new/config/override.m4
--- binutils-2.40/config/override.m4 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/config/override.m4 2023-03-09 14:52:03.599278848 +0100
@@ -41,7 +41,7 @@ dnl Or for updating the whole tree at on
AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK],
[m4_if(m4_defn([_GCC_AUTOCONF_VERSION]),

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/configure binutils-2.41-new/configure
--- binutils-2.41/configure 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/configure 2023-10-17 08:36:08.439607929 +0200
diff -rupN --no-dereference binutils-2.40/configure binutils-2.40-new/configure
--- binutils-2.40/configure 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/configure 2023-03-09 14:51:56.227365462 +0100
@@ -5442,49 +5442,6 @@ if test -z "$LD"; then
fi
fi
@ -51,9 +51,9 @@ diff -rupN --no-dereference binutils-2.41/configure binutils-2.41-new/configure
if test -n "$ac_tool_prefix"; then
diff -rupN --no-dereference binutils-2.41/configure.ac binutils-2.41-new/configure.ac
--- binutils-2.41/configure.ac 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/configure.ac 2023-10-17 08:36:08.440607983 +0200
diff -rupN --no-dereference binutils-2.40/configure.ac binutils-2.40-new/configure.ac
--- binutils-2.40/configure.ac 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/configure.ac 2023-03-09 14:51:56.228365450 +0100
@@ -1435,26 +1435,6 @@ if test -z "$LD"; then
fi
fi

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/bfd/Makefile.am binutils-2.41-new/bfd/Makefile.am
--- binutils-2.41/bfd/Makefile.am 2023-10-17 08:36:03.732351438 +0200
+++ binutils-2.41-new/bfd/Makefile.am 2023-10-17 08:36:03.737351712 +0200
diff -rupN --no-dereference binutils-2.40/bfd/Makefile.am binutils-2.40-new/bfd/Makefile.am
--- binutils-2.40/bfd/Makefile.am 2023-03-09 14:51:48.814448632 +0100
+++ binutils-2.40-new/bfd/Makefile.am 2023-03-09 14:51:48.819448577 +0100
@@ -38,7 +38,7 @@ bfdlibdir = @bfdlibdir@
bfdincludedir = @bfdincludedir@
bfdlib_LTLIBRARIES = libbfd.la
@ -10,10 +10,10 @@ diff -rupN --no-dereference binutils-2.41/bfd/Makefile.am binutils-2.41-new/bfd/
else !INSTALL_LIBBFD
# Empty these so that the respective installation directories will not be created.
bfdlibdir =
diff -rupN --no-dereference binutils-2.41/bfd/Makefile.in binutils-2.41-new/bfd/Makefile.in
--- binutils-2.41/bfd/Makefile.in 2023-10-17 08:36:03.733351493 +0200
+++ binutils-2.41-new/bfd/Makefile.in 2023-10-17 08:36:03.737351712 +0200
@@ -279,7 +279,7 @@ am__can_run_installinfo = \
diff -rupN --no-dereference binutils-2.40/bfd/Makefile.in binutils-2.40-new/bfd/Makefile.in
--- binutils-2.40/bfd/Makefile.in 2023-03-09 14:51:48.815448621 +0100
+++ binutils-2.40-new/bfd/Makefile.in 2023-03-09 14:51:48.819448577 +0100
@@ -292,7 +292,7 @@ am__can_run_installinfo = \
esac
am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \
$(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
@ -22,7 +22,7 @@ diff -rupN --no-dereference binutils-2.41/bfd/Makefile.in binutils-2.41-new/bfd/
HEADERS = $(bfdinclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
@@ -504,7 +504,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel
@@ -517,7 +517,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 \

@ -0,0 +1,126 @@
diff -rupN --no-dereference binutils-2.40/binutils/readelf.c binutils-2.40-new/binutils/readelf.c
--- binutils-2.40/binutils/readelf.c 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/binutils/readelf.c 2023-03-09 14:51:51.335420794 +0100
@@ -22858,46 +22858,53 @@ process_file (char * file_name)
Filedata * filedata = NULL;
struct stat statbuf;
char armag[SARMAG];
- bool ret = true;
+ bool ret = false;
+ char * name;
+ char * saved_program_name;
+
+ /* Overload program_name to include file_name. Doing this means
+ that warning/error messages will positively identify the file
+ concerned even when multiple instances of readelf are running. */
+ name = xmalloc (strlen (program_name) + strlen (file_name) + 3);
+ sprintf (name, "%s: %s", program_name, file_name);
+ saved_program_name = program_name;
+ program_name = name;
if (stat (file_name, &statbuf) < 0)
{
if (errno == ENOENT)
- error (_("'%s': No such file\n"), file_name);
+ error (_("No such file\n"));
else
- error (_("Could not locate '%s'. System error message: %s\n"),
- file_name, strerror (errno));
- return false;
+ error (_("Could not locate file. System error message: %s\n"),
+ strerror (errno));
+ goto done;
}
if (! S_ISREG (statbuf.st_mode))
{
- error (_("'%s' is not an ordinary file\n"), file_name);
- return false;
+ error (_("Not an ordinary file\n"));
+ goto done;
}
filedata = calloc (1, sizeof * filedata);
if (filedata == NULL)
{
error (_("Out of memory allocating file data structure\n"));
- return false;
+ goto done;
}
filedata->file_name = file_name;
filedata->handle = fopen (file_name, "rb");
if (filedata->handle == NULL)
{
- error (_("Input file '%s' is not readable.\n"), file_name);
- free (filedata);
- return false;
+ error (_("Not readable\n"));
+ goto done;
}
if (fread (armag, SARMAG, 1, filedata->handle) != 1)
{
- error (_("%s: Failed to read file's magic number\n"), file_name);
- fclose (filedata->handle);
- free (filedata);
- return false;
+ error (_("Failed to read file's magic number\n"));
+ goto done;
}
filedata->file_size = statbuf.st_size;
@@ -22905,33 +22912,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 && !check_all)
- error (_("File %s is not an archive so its index cannot be displayed.\n"),
- file_name);
+ error (_("Not an archive so its index cannot be displayed.\n"));
rewind (filedata->handle);
filedata->archive_file_size = filedata->archive_file_offset = 0;
- if (! process_object (filedata))
- ret = false;
+ if (process_object (filedata))
+ ret = true;
}
- fclose (filedata->handle);
- free (filedata->section_headers);
- free (filedata->program_headers);
- free (filedata->string_table);
- free (filedata->dump.dump_sects);
- free (filedata);
+ done:
+ if (filedata)
+ {
+ 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;
free (ba_cache.strtab);
ba_cache.strtab = NULL;

@ -0,0 +1,304 @@
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-elfvers/vers24.rd binutils-2.40-new/ld/testsuite/ld-elfvers/vers24.rd
--- binutils-2.40/ld/testsuite/ld-elfvers/vers24.rd 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-elfvers/vers24.rd 2023-03-09 14:51:58.684337020 +0100
@@ -7,9 +7,9 @@ Symbol table '.dynsym' contains [0-9]+ e
# And ensure the dynamic symbol table contains at least x@VERS.0
# and foo@@VERS.0 symbols
#...
- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0
+ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.*
#...
- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0
+ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.*
#...
Symbol table '.symtab' contains [0-9]+ entries:
#pass
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-10.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-10.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-10.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-10.d 2023-03-09 14:51:58.683337032 +0100
@@ -32,7 +32,8 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-11.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-11.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-11.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-11.d 2023-03-09 14:51:58.683337032 +0100
@@ -35,8 +35,9 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-13.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-13.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-13.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-13.d 2023-03-09 14:51:58.679337079 +0100
@@ -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.40/ld/testsuite/ld-plugin/plugin-14.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-14.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-14.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-14.d 2023-03-09 14:51:58.679337079 +0100
@@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-15.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-15.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-15.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-15.d 2023-03-09 14:51:58.679337079 +0100
@@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-16.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-16.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-16.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-16.d 2023-03-09 14:51:58.680337067 +0100
@@ -30,9 +30,8 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-17.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-17.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-17.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-17.d 2023-03-09 14:51:58.680337067 +0100
@@ -31,7 +31,8 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-18.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-18.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-18.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-18.d 2023-03-09 14:51:58.683337032 +0100
@@ -32,7 +32,8 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-19.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-19.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-19.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-19.d 2023-03-09 14:51:58.684337020 +0100
@@ -35,8 +35,9 @@ hook called: claim_file .*/ld/testsuite/
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-20.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-20.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-20.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-20.d 2023-03-09 14:51:58.680337067 +0100
@@ -2,6 +2,5 @@ hook called: all symbols read.
Input: func.c \(tmpdir/libfunc.a\)
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-21.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-21.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-21.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-21.d 2023-03-09 14:51:58.680337067 +0100
@@ -2,6 +2,5 @@ hook called: all symbols read.
Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\)
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-22.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-22.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-22.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-22.d 2023-03-09 14:51:58.680337067 +0100
@@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.*
hook called: all symbols read.
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-23.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-23.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-23.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-23.d 2023-03-09 14:51:58.681337056 +0100
@@ -2,6 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func.
hook called: all symbols read.
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-24.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-24.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-24.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-24.d 2023-03-09 14:51:58.681337056 +0100
@@ -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.40/ld/testsuite/ld-plugin/plugin-25.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-25.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-25.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-25.d 2023-03-09 14:51:58.681337056 +0100
@@ -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.40/ld/testsuite/ld-plugin/plugin-28.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-28.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-28.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-28.d 2023-03-09 14:51:58.684337020 +0100
@@ -1 +1,2 @@
.*: error: Error
+#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-29.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-29.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-29.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-29.d 2023-03-09 14:51:58.681337056 +0100
@@ -1 +1,2 @@
.*: warning: Warning
+#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-30.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-30.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-30.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-30.d 2023-03-09 14:51:58.681337056 +0100
@@ -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.40/ld/testsuite/ld-plugin/plugin-6.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-6.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-6.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-6.d 2023-03-09 14:51:58.682337044 +0100
@@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-7.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-7.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-7.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-7.d 2023-03-09 14:51:58.682337044 +0100
@@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-8.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-8.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-8.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-8.d 2023-03-09 14:51:58.684337020 +0100
@@ -30,9 +30,8 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-.*: tmpdir/main.o: in function `main':
-.*main.c.*: undefined reference to `\.?func'
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin-9.d binutils-2.40-new/ld/testsuite/ld-plugin/plugin-9.d
--- binutils-2.40/ld/testsuite/ld-plugin/plugin-9.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin-9.d 2023-03-09 14:51:58.682337044 +0100
@@ -31,7 +31,8 @@ hook called: claim_file tmpdir/func.o \[
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-plugin/plugin.exp binutils-2.40-new/ld/testsuite/ld-plugin/plugin.exp
--- binutils-2.40/ld/testsuite/ld-plugin/plugin.exp 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/plugin.exp 2023-03-09 14:51:58.685337009 +0100
@@ -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.40/ld/testsuite/ld-plugin/pr20070.d binutils-2.40-new/ld/testsuite/ld-plugin/pr20070.d
--- binutils-2.40/ld/testsuite/ld-plugin/pr20070.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-plugin/pr20070.d 2023-03-09 14:51:58.683337032 +0100
@@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI
Sym: 'undef' Resolution: LDPR_UNDEF
Sym: 'weakundef' Resolution: LDPR_UNDEF
Sym: 'common' Resolution: LDPR_PREVAILING_DEF_IRONLY
+#...
hook called: cleanup.
#...
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-srec/srec.exp binutils-2.40-new/ld/testsuite/ld-srec/srec.exp
--- binutils-2.40/ld/testsuite/ld-srec/srec.exp 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-srec/srec.exp 2023-03-09 14:51:58.683337032 +0100
@@ -21,6 +21,8 @@
# Get the offset from an S-record line to the start of the data.
+return
+
proc srec_off { l } {
if [string match "S1*" $l] {
return 8

@ -0,0 +1,13 @@
diff -rupN --no-dereference binutils-2.40/ld/ldlang.c binutils-2.40-new/ld/ldlang.c
--- binutils-2.40/ld/ldlang.c 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/ldlang.c 2023-06-14 16:26:54.425556661 +0200
@@ -649,7 +649,8 @@ wild_sort (lang_wild_statement_type *wil
looking at the sections for this file. */
/* Find the correct node to append this section. */
- if (compare_section (sec->spec.sorted, section, (*tree)->section) < 0)
+ if (sec && sec->spec.sorted != none && sec->spec.sorted != by_none
+ && compare_section (sec->spec.sorted, section, (*tree)->section) < 0)
tree = &((*tree)->left);
else
tree = &((*tree)->right);

@ -1,12 +0,0 @@
diff -rupN --no-dereference binutils-2.41/gold/dwp.cc binutils-2.41-new/gold/dwp.cc
--- binutils-2.41/gold/dwp.cc 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/gold/dwp.cc 2023-10-17 08:36:16.689052035 +0200
@@ -2418,6 +2418,8 @@ main(int argc, char** argv)
{
Dwo_file exe_file(exe_filename);
exe_file.read_executable(&files);
+ if (files.empty())
+ gold_fatal(_("Could not find any dwo links in specified EXE"));
}
// Add any additional files listed on command line.

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/gold/i386.cc binutils-2.41-new/gold/i386.cc
--- binutils-2.41/gold/i386.cc 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/gold/i386.cc 2023-10-17 08:36:13.132861427 +0200
diff -rupN --no-dereference binutils-2.40/gold/i386.cc binutils-2.40-new/gold/i386.cc
--- binutils-2.40/gold/i386.cc 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/gold/i386.cc 2023-03-09 14:52:02.399293207 +0100
@@ -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),

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/gold/layout.cc binutils-2.41-new/gold/layout.cc
--- binutils-2.41/gold/layout.cc 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/gold/layout.cc 2023-10-17 08:36:10.778734550 +0200
diff -rupN --no-dereference binutils-2.40/gold/layout.cc binutils-2.40-new/gold/layout.cc
--- binutils-2.40/gold/layout.cc 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/gold/layout.cc 2023-03-09 14:51:59.908322697 +0100
@@ -872,6 +872,7 @@ Layout::get_output_section(const char* n
&& (same_name->flags() & elfcpp::SHF_TLS) == 0)
os = same_name;

@ -1,71 +0,0 @@
diff -rupN --no-dereference binutils-2.41/gold/powerpc.cc binutils-2.41-new/gold/powerpc.cc
--- binutils-2.41/gold/powerpc.cc 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/gold/powerpc.cc 2023-10-17 08:36:20.308244748 +0200
@@ -3714,12 +3714,7 @@ Target_powerpc<size, big_endian>::do_rel
unsigned int prev_brlt_size = 0;
if (pass == 1)
{
- bool thread_safe
- = this->abiversion() < 2 && parameters->options().plt_thread_safe();
- if (size == 64
- && this->abiversion() < 2
- && !thread_safe
- && !parameters->options().user_set_plt_thread_safe())
+ if (size == 64 && this->abiversion() < 2)
{
static const char* const thread_starter[] =
{
@@ -3747,29 +3742,37 @@ Target_powerpc<size, big_endian>::do_rel
/* libgo */
"__go_go",
};
+ bool thread_safe = parameters->options().plt_thread_safe();
- if (parameters->options().shared())
- thread_safe = true;
- else
+ if (!thread_safe
+ && !parameters->options().user_set_plt_thread_safe())
{
- for (unsigned int i = 0;
- i < sizeof(thread_starter) / sizeof(thread_starter[0]);
- i++)
+ if (parameters->options().shared())
+ thread_safe = true;
+ else
{
- Symbol* sym = symtab->lookup(thread_starter[i], NULL);
- thread_safe = (sym != NULL
- && sym->in_reg()
- && sym->in_real_elf());
- if (thread_safe)
- break;
+ for (unsigned int i = 0;
+ i < sizeof(thread_starter) / sizeof(thread_starter[0]);
+ i++)
+ {
+ Symbol* sym = symtab->lookup(thread_starter[i], NULL);
+ thread_safe = (sym != NULL
+ && sym->in_reg()
+ && sym->in_real_elf());
+ if (thread_safe)
+ break;
+ }
}
}
+ this->plt_thread_safe_ = thread_safe;
}
- this->plt_thread_safe_ = thread_safe;
- if (parameters->options().output_is_position_independent())
- this->rela_dyn_size_
- = this->rela_dyn_section(layout)->current_data_size();
+ if (size == 64
+ && parameters->options().output_is_position_independent())
+ {
+ gold_assert (this->rela_dyn_);
+ this->rela_dyn_size_ = this->rela_dyn_->current_data_size();
+ }
this->stub_group_size_ = parameters->options().stub_group_size();
bool no_size_errors = true;

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.41/bfd/config.bfd binutils-2.41-new/bfd/config.bfd
--- binutils-2.41/bfd/config.bfd 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/config.bfd 2023-10-17 08:36:11.974799088 +0200
@@ -499,7 +499,7 @@ case "${targ}" in
diff -rupN --no-dereference binutils-2.40/bfd/config.bfd binutils-2.40-new/bfd/config.bfd
--- binutils-2.40/bfd/config.bfd 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/config.bfd 2023-03-09 14:52:01.154308002 +0100
@@ -501,7 +501,7 @@ case "${targ}" in
;;
#ifdef BFD64
@ -10,7 +10,7 @@ diff -rupN --no-dereference binutils-2.41/bfd/config.bfd binutils-2.41-new/bfd/c
targ_defvec=bpf_elf64_le_vec
targ_selvecs=bpf_elf64_be_vec
targ_underscore=yes
@@ -1497,7 +1497,7 @@ case "${targ}" in
@@ -1494,7 +1494,7 @@ case "${targ}" in
;;
*)
@ -19,9 +19,9 @@ diff -rupN --no-dereference binutils-2.41/bfd/config.bfd binutils-2.41-new/bfd/c
echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
exit 1
;;
diff -rupN --no-dereference binutils-2.41/gold/configure binutils-2.41-new/gold/configure
--- binutils-2.41/gold/configure 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/gold/configure 2023-10-17 08:36:11.972798980 +0200
diff -rupN --no-dereference binutils-2.40/gold/configure binutils-2.40-new/gold/configure
--- binutils-2.40/gold/configure 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/gold/configure 2023-03-09 14:52:01.152308026 +0100
@@ -5255,7 +5255,8 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt
@ -32,9 +32,9 @@ diff -rupN --no-dereference binutils-2.41/gold/configure binutils-2.41-new/gold/
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
diff -rupN --no-dereference binutils-2.41/gold/configure.ac binutils-2.41-new/gold/configure.ac
--- binutils-2.41/gold/configure.ac 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/gold/configure.ac 2023-10-17 08:36:11.973799034 +0200
diff -rupN --no-dereference binutils-2.40/gold/configure.ac binutils-2.40-new/gold/configure.ac
--- binutils-2.40/gold/configure.ac 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/gold/configure.ac 2023-03-09 14:52:01.153308014 +0100
@@ -182,7 +182,7 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt
@ -44,10 +44,10 @@ diff -rupN --no-dereference binutils-2.41/gold/configure.ac binutils-2.41-new/go
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
diff -rupN --no-dereference binutils-2.41/ld/configure.tgt binutils-2.41-new/ld/configure.tgt
--- binutils-2.41/ld/configure.tgt 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/configure.tgt 2023-10-17 08:36:11.973799034 +0200
@@ -267,7 +267,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi
diff -rupN --no-dereference binutils-2.40/ld/configure.tgt binutils-2.40-new/ld/configure.tgt
--- binutils-2.40/ld/configure.tgt 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/configure.tgt 2023-03-09 14:52:01.153308014 +0100
@@ -263,7 +263,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi
targ_extra_emuls="elf32bfin"
targ_extra_libpath=$targ_extra_emuls
;;
@ -56,7 +56,7 @@ diff -rupN --no-dereference binutils-2.41/ld/configure.tgt binutils-2.41-new/ld/
;;
cr16-*-elf*) targ_emul=elf32cr16
;;
@@ -1087,7 +1087,7 @@ loongarch64-*) targ_emul=elf64loongarch
@@ -1088,7 +1088,7 @@ loongarch64-*) targ_emul=elf64loongarch
targ_extra_ofiles=
;;
*)

@ -1,30 +0,0 @@
diff -rupN --no-dereference binutils-2.41/bfd/elf.c binutils-2.41-new/bfd/elf.c
--- binutils-2.41/bfd/elf.c 2023-10-17 08:36:10.773734280 +0200
+++ binutils-2.41-new/bfd/elf.c 2023-10-17 08:36:21.496307731 +0200
@@ -9479,6 +9479,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
if (elf_use_dt_symtab_p (abfd))
iverneed->vn_filename
= elf_tdata (abfd)->dt_strtab + iverneed->vn_file;
+ else if (hdr == NULL)
+ goto error_return_bad_verref;
else
iverneed->vn_filename
= bfd_elf_string_from_elf_section (abfd, hdr->sh_link,
@@ -9516,6 +9518,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
if (elf_use_dt_symtab_p (abfd))
ivernaux->vna_nodename
= elf_tdata (abfd)->dt_strtab + ivernaux->vna_name;
+ else if (hdr == NULL)
+ goto error_return_bad_verref;
else
ivernaux->vna_nodename
= bfd_elf_string_from_elf_section (abfd, hdr->sh_link,
@@ -9546,7 +9550,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd
iverneed->vn_nextref = NULL;
if (iverneed->vn_next == 0)
break;
- if (i + 1 < hdr->sh_info)
+ if (hdr != NULL && (i + 1 < hdr->sh_info))
iverneed->vn_nextref = iverneed + 1;
if (iverneed->vn_next

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/ltmain.sh binutils-2.41-new/ltmain.sh
--- binutils-2.41/ltmain.sh 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ltmain.sh 2023-10-17 08:36:15.518989456 +0200
diff -rupN --no-dereference binutils-2.40/ltmain.sh binutils-2.40-new/ltmain.sh
--- binutils-2.40/ltmain.sh 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ltmain.sh 2023-03-09 14:52:04.803264344 +0100
@@ -7103,6 +7103,7 @@ EOF
rpath="$finalize_rpath"
test "$mode" != relink && rpath="$compile_rpath$rpath"

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.41/bfd/bfd-in2.h binutils-2.41-new/bfd/bfd-in2.h
--- binutils-2.41/bfd/bfd-in2.h 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/bfd-in2.h 2023-10-17 08:36:04.910415849 +0200
@@ -31,11 +31,6 @@
diff -rupN --no-dereference binutils-2.40/bfd/bfd-in2.h binutils-2.40-new/bfd/bfd-in2.h
--- binutils-2.40/bfd/bfd-in2.h 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/bfd-in2.h 2023-03-09 14:51:50.115434327 +0100
@@ -30,11 +30,6 @@
#ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__
@ -13,9 +13,9 @@ diff -rupN --no-dereference binutils-2.41/bfd/bfd-in2.h binutils-2.41-new/bfd/bf
#ifdef __cplusplus
extern "C" {
#endif
diff -rupN --no-dereference binutils-2.41/bfd/bfd-in.h binutils-2.41-new/bfd/bfd-in.h
--- binutils-2.41/bfd/bfd-in.h 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/bfd-in.h 2023-10-17 08:36:04.909415794 +0200
diff -rupN --no-dereference binutils-2.40/bfd/bfd-in.h binutils-2.40-new/bfd/bfd-in.h
--- binutils-2.40/bfd/bfd-in.h 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/bfd-in.h 2023-03-09 14:51:50.114434338 +0100
@@ -23,11 +23,6 @@
#ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__

@ -0,0 +1,45 @@
diff -rupN --no-dereference binutils-2.40/binutils/objcopy.c binutils-2.40-new/binutils/objcopy.c
--- binutils-2.40/binutils/objcopy.c 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/binutils/objcopy.c 2023-03-09 14:52:06.043249302 +0100
@@ -2403,6 +2403,8 @@ merge_gnu_build_notes (bfd * ab
other note then if they are both of the same type (open
or func) then they can be merged and one deleted. If
they are of different types then they cannot be merged. */
+ objcopy_internal_note * prev_note = NULL;
+
for (pnote = pnotes; pnote < pnotes_end; pnote ++)
{
/* Skip already deleted notes.
@@ -2424,7 +2426,9 @@ merge_gnu_build_notes (bfd * ab
objcopy_internal_note * back;
/* Rule 2: Check to see if there is an identical previous note. */
- for (iter = 0, back = pnote - 1; back >= pnotes; back --)
+ for (iter = 0, back = prev_note ? prev_note : pnote - 1;
+ back >= pnotes;
+ back --)
{
if (is_deleted_note (back))
continue;
@@ -2486,11 +2490,18 @@ merge_gnu_build_notes (bfd * ab
break;
}
}
-#if DEBUG_MERGE
+
+
if (! is_deleted_note (pnote))
- merge_debug ("Unable to do anything with note at %#08lx\n",
- (pnote->note.namedata - (char *) contents) - 12);
+ {
+ /* Keep a pointer to this note, so that we can
+ start the next search for rule 2 matches here. */
+ prev_note = pnote;
+#if DEBUG_MERGE
+ merge_debug ("Unable to do anything with note at %#08lx\n",
+ (pnote->note.namedata - (char *) contents) - 12);
#endif
+ }
}
/* Resort the notes. */

@ -0,0 +1,36 @@
diff -rupN --no-dereference binutils-2.40/binutils/readelf.c binutils-2.40-new/binutils/readelf.c
--- binutils-2.40/binutils/readelf.c 2023-03-09 14:51:52.549407223 +0100
+++ binutils-2.40-new/binutils/readelf.c 2023-03-09 14:51:53.790393244 +0100
@@ -13247,11 +13247,13 @@ print_dynamic_symbol (Filedata *filedata
unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
printf (" %-7s", get_symbol_visibility (vis));
+#if 0
/* Check to see if any other bits in the st_other field are set.
Note - displaying this information disrupts the layout of the
table being generated, but for the moment this case is very rare. */
if (psym->st_other ^ vis)
printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis));
+#endif
}
printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx));
@@ -13305,7 +13307,17 @@ print_dynamic_symbol (Filedata *filedata
version_string);
}
- putchar ('\n');
+#if 1
+ {
+ unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
+
+ /* Check to see if any other bits in the st_other field are set. */
+ if (psym->st_other ^ vis)
+ printf (" \t[%s]", get_symbol_other (filedata, psym->st_other ^ vis));
+ }
+#endif
+
+ putchar ('\n');
if (ELF_ST_BIND (psym->st_info) == STB_LOCAL
&& section != NULL

@ -1,6 +1,6 @@
diff -rupN --no-dereference binutils-2.41/bfd/elfxx-x86.c binutils-2.41-new/bfd/elfxx-x86.c
--- binutils-2.41/bfd/elfxx-x86.c 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/elfxx-x86.c 2023-10-17 08:36:06.092480328 +0200
diff -rupN --no-dereference binutils-2.40/bfd/elfxx-x86.c binutils-2.40-new/bfd/elfxx-x86.c
--- binutils-2.40/bfd/elfxx-x86.c 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/elfxx-x86.c 2023-03-09 14:51:52.557407133 +0100
@@ -105,7 +105,7 @@ elf_x86_allocate_dynrelocs (struct elf_l
plt_entry_size = htab->plt.plt_entry_size;
@ -19,9 +19,9 @@ diff -rupN --no-dereference binutils-2.41/bfd/elfxx-x86.c binutils-2.41-new/bfd/
/* 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.41/ld/testsuite/ld-i386/pltgot-1.d binutils-2.41-new/ld/testsuite/ld-i386/pltgot-1.d
--- binutils-2.41/ld/testsuite/ld-i386/pltgot-1.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-i386/pltgot-1.d 2023-10-17 08:36:06.088480110 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-i386/pltgot-1.d binutils-2.40-new/ld/testsuite/ld-i386/pltgot-1.d
--- binutils-2.40/ld/testsuite/ld-i386/pltgot-1.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-i386/pltgot-1.d 2023-03-09 14:51:52.553407178 +0100
@@ -2,6 +2,7 @@
#readelf: -S --wide
#as: --32
@ -30,9 +30,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pltgot-1.d binuti
#...
+\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.*
#...
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pltgot-2.d binutils-2.41-new/ld/testsuite/ld-i386/pltgot-2.d
--- binutils-2.41/ld/testsuite/ld-i386/pltgot-2.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-i386/pltgot-2.d 2023-10-17 08:36:06.089480165 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-i386/pltgot-2.d binutils-2.40-new/ld/testsuite/ld-i386/pltgot-2.d
--- binutils-2.40/ld/testsuite/ld-i386/pltgot-2.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-i386/pltgot-2.d 2023-03-09 14:51:52.554407167 +0100
@@ -3,7 +3,6 @@
#readelf: -d --wide
#as: --32
@ -41,9 +41,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pltgot-2.d binuti
#...
+0x[0-9a-f]+ +\(PLTREL.*
#...
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2d.d
--- binutils-2.41/ld/testsuite/ld-i386/pr19636-2d.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2d.d 2023-10-17 08:36:06.089480165 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.40-new/ld/testsuite/ld-i386/pr19636-2d.d
--- binutils-2.40/ld/testsuite/ld-i386/pr19636-2d.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-i386/pr19636-2d.d 2023-03-09 14:51:52.554407167 +0100
@@ -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
@ -53,9 +53,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr19636-2d.d binu
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
#...
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2e.d
--- binutils-2.41/ld/testsuite/ld-i386/pr19636-2e.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-i386/pr19636-2e.d 2023-10-17 08:36:06.089480165 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.40-new/ld/testsuite/ld-i386/pr19636-2e.d
--- binutils-2.40/ld/testsuite/ld-i386/pr19636-2e.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-i386/pr19636-2e.d 2023-03-09 14:51:52.554407167 +0100
@@ -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
@ -65,9 +65,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr19636-2e.d binu
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
#...
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr20830.d binutils-2.41-new/ld/testsuite/ld-i386/pr20830.d
--- binutils-2.41/ld/testsuite/ld-i386/pr20830.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-i386/pr20830.d 2023-10-17 08:36:06.092480328 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-i386/pr20830.d binutils-2.40-new/ld/testsuite/ld-i386/pr20830.d
--- binutils-2.40/ld/testsuite/ld-i386/pr20830.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-i386/pr20830.d 2023-03-09 14:51:52.557407133 +0100
@@ -19,7 +19,7 @@ Contents of the .eh_frame section:
DW_CFA_offset: r8 \(eip\) at cfa-4
DW_CFA_nop
@ -77,9 +77,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-i386/pr20830.d binutil
0+18 00000010 0000001c FDE cie=00000000 pc=00000128..00000133
DW_CFA_nop
DW_CFA_nop
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-1.d
--- binutils-2.41/ld/testsuite/ld-x86-64/pltgot-1.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-1.d 2023-10-17 08:36:06.090480219 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.40-new/ld/testsuite/ld-x86-64/pltgot-1.d
--- binutils-2.40/ld/testsuite/ld-x86-64/pltgot-1.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/pltgot-1.d 2023-03-09 14:51:52.555407156 +0100
@@ -2,8 +2,4 @@
#readelf: -S --wide
#as: --64
@ -89,9 +89,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pltgot-1.d binu
-#...
- +\[ *[0-9]+\] \.got\.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+18 +.*
#pass
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-2.d
--- binutils-2.41/ld/testsuite/ld-x86-64/pltgot-2.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/pltgot-2.d 2023-10-17 08:36:06.090480219 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.40-new/ld/testsuite/ld-x86-64/pltgot-2.d
--- binutils-2.40/ld/testsuite/ld-x86-64/pltgot-2.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/pltgot-2.d 2023-03-09 14:51:52.555407156 +0100
@@ -3,7 +3,6 @@
#readelf: -d --wide
#as: --64
@ -100,17 +100,17 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pltgot-2.d binu
#...
+0x[0-9a-f]+ +\(PLTREL.*
#...
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.41-new/ld/testsuite/ld-x86-64/plt-main.rd
--- binutils-2.41/ld/testsuite/ld-x86-64/plt-main.rd 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/plt-main.rd 2023-10-17 08:36:06.090480219 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.40-new/ld/testsuite/ld-x86-64/plt-main.rd
--- binutils-2.40/ld/testsuite/ld-x86-64/plt-main.rd 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/plt-main.rd 2023-03-09 14:51:52.555407156 +0100
@@ -1,4 +1,3 @@
-#failif
#...
[0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0
#...
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a.d
--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830a.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a.d 2023-10-17 08:36:06.090480219 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830a.d
--- binutils-2.40/ld/testsuite/ld-x86-64/pr20830a.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830a.d 2023-03-09 14:51:52.555407156 +0100
@@ -20,6 +20,7 @@ Contents of the .eh_frame section:
DW_CFA_offset: r16 \(rip\) at cfa-8
DW_CFA_nop
@ -119,9 +119,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830a.d binu
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4
DW_CFA_nop
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a-now.d
--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830a-now.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830a-now.d 2023-10-17 08:36:06.091480274 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830a-now.d
--- binutils-2.40/ld/testsuite/ld-x86-64/pr20830a-now.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830a-now.d 2023-03-09 14:51:52.555407156 +0100
@@ -20,6 +20,7 @@ Contents of the .eh_frame section:
DW_CFA_offset: r16 \(rip\) at cfa-8
DW_CFA_nop
@ -130,9 +130,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830a-now.d
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4
DW_CFA_nop
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b.d
--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830b.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b.d 2023-10-17 08:36:06.091480274 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830b.d
--- binutils-2.40/ld/testsuite/ld-x86-64/pr20830b.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830b.d 2023-03-09 14:51:52.556407144 +0100
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
DW_CFA_offset: r16 \(rip\) at cfa-8
DW_CFA_nop
@ -143,9 +143,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830b.d binu
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144
DW_CFA_nop
DW_CFA_nop
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b-now.d
--- binutils-2.41/ld/testsuite/ld-x86-64/pr20830b-now.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/pr20830b-now.d 2023-10-17 08:36:06.091480274 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830b-now.d
--- binutils-2.40/ld/testsuite/ld-x86-64/pr20830b-now.d 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/pr20830b-now.d 2023-03-09 14:51:52.556407144 +0100
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
DW_CFA_offset: r16 \(rip\) at cfa-8
DW_CFA_nop
@ -156,9 +156,9 @@ diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/pr20830b-now.d
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144
DW_CFA_nop
DW_CFA_nop
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.41-new/ld/testsuite/ld-x86-64/tlspic2.rd
--- binutils-2.41/ld/testsuite/ld-x86-64/tlspic2.rd 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-x86-64/tlspic2.rd 2023-10-17 08:36:06.091480274 +0200
diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.40-new/ld/testsuite/ld-x86-64/tlspic2.rd
--- binutils-2.40/ld/testsuite/ld-x86-64/tlspic2.rd 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/ld/testsuite/ld-x86-64/tlspic2.rd 2023-03-09 14:51:52.556407144 +0100
@@ -14,6 +14,7 @@ Section Headers:
+\[[ 0-9]+\] .dynsym +.*
+\[[ 0-9]+\] .dynstr +.*

@ -1,117 +0,0 @@
diff -rupN --no-dereference binutils-2.41/binutils/testsuite/binutils-all/objcopy.exp binutils-2.41-new/binutils/testsuite/binutils-all/objcopy.exp
--- binutils-2.41/binutils/testsuite/binutils-all/objcopy.exp 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/binutils/testsuite/binutils-all/objcopy.exp 2023-10-17 08:36:19.150183227 +0200
@@ -1409,6 +1409,8 @@ proc objcopy_test_without_global_symbol
# The AArch64 and ARM targets preserve mapping symbols
# in object files, so they will fail this test.
setup_xfail aarch64*-*-* arm*-*-*
+# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
+setup_xfail riscv*-*-*
objcopy_test_without_global_symbol
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/dwarf.exp binutils-2.41-new/ld/testsuite/ld-elf/dwarf.exp
--- binutils-2.41/ld/testsuite/ld-elf/dwarf.exp 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-elf/dwarf.exp 2023-10-17 08:36:19.150183227 +0200
@@ -29,6 +29,10 @@ if ![is_elf_format] {
return
}
+if { [istarget riscv*-*-*] } then {
+ return
+}
+
# Skip targets where -shared is not supported
if ![check_shared_lib_support] {
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-elf/tls.exp binutils-2.41-new/ld/testsuite/ld-elf/tls.exp
--- binutils-2.41/ld/testsuite/ld-elf/tls.exp 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-elf/tls.exp 2023-10-17 08:36:19.150183227 +0200
@@ -28,6 +28,10 @@ if { !([istarget *-*-linux*]
return
}
+if { [istarget riscv*-*-*] } then {
+ return
+}
+
# Check to see if the C compiler works.
if { ![check_compiler_available] } {
return
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-plugin/plugin.exp binutils-2.41-new/ld/testsuite/ld-plugin/plugin.exp
--- binutils-2.41/ld/testsuite/ld-plugin/plugin.exp 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-plugin/plugin.exp 2023-10-17 08:36:19.150183227 +0200
@@ -132,6 +132,10 @@ if [is_pecoff_format] {
append libs " --image-base=0x10000000"
}
+if { [istarget riscv*-*-*] } then {
+ return
+}
+
set plugin_tests [list \
[list "load plugin" "-plugin $plugin_path \
$testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/attr-phdr.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/attr-phdr.d
--- binutils-2.41/ld/testsuite/ld-riscv-elf/attr-phdr.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/attr-phdr.d 2023-10-17 08:36:19.149183174 +0200
@@ -12,8 +12,8 @@ Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
RISCV_ATTRIBUT .*
LOAD .*
-
+#...
Section to Segment mapping:
Segment Sections...
00 .riscv.attributes
- 01 .text
+#pass
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2023-10-17 08:36:19.149183174 +0200
@@ -8,7 +8,7 @@
Disassembly of section \.text:
0+[0-9a-f]+ <_start>:
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2023-10-17 08:36:19.151183281 +0200
@@ -8,11 +8,11 @@
Disassembly of section \.text:
0+[0-9a-f]+ <_start>:
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,.*
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1,0x[0-9a-f]+
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,[0-9]+ # [0-9a-f]+ <data_g>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,.* # [0-9a-f]+ <data_g>
.*:[ ]+[0-9a-f]+[ ]+lui[ ]+a2,0x[0-9a-f]+
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,[0-9]+ # [0-9a-f]+ <data_g>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,.* # [0-9a-f]+ <data_g>
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 <data_t>
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a0,0x[0-9a-f]+
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d
--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2023-10-17 08:36:19.149183174 +0200
@@ -11,5 +11,5 @@ Disassembly of section .text:
[0-9a-f]+ <_start>:
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1.*
.*:[ ]+[0-9a-f]+[ ]+addi?[ ]+a0,gp.*<data_a>
-.*:[ ]+[0-9a-f]+[ ]+addi?[ ]+a1,a1.*<data_b>
+.*:[ ]+[0-9a-f]+[ ]+mv[ ]+a1,a1
#pass
diff -rupN --no-dereference binutils-2.41/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d
--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d 2023-10-17 08:36:19.149183174 +0200
@@ -2,4 +2,5 @@
#source: pcrel-lo-addend-2a.s
#as: -march=rv32ic
#ld: -m[riscv_choose_ilp32_emul] --no-relax
+#skip: *-*-*
#error: .*dangerous relocation: %pcrel_lo overflow with an addend, the value of %pcrel_hi is 0x1000 without any addend, but may be 0x2000 after adding the %pcrel_lo addend

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.41/bfd/elf.c binutils-2.41-new/bfd/elf.c
--- binutils-2.41/bfd/elf.c 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/elf.c 2023-10-17 08:36:09.594670522 +0200
@@ -827,7 +827,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
diff -rupN --no-dereference binutils-2.40/bfd/elf.c binutils-2.40-new/bfd/elf.c
--- binutils-2.40/bfd/elf.c 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/elf.c 2023-03-09 14:51:57.453351322 +0100
@@ -825,7 +825,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
}
}
@ -16,7 +16,7 @@ diff -rupN --no-dereference binutils-2.41/bfd/elf.c binutils-2.41-new/bfd/elf.c
{
/* xgettext:c-format */
_bfd_error_handler (_("%pB: no group info for section '%pA'"),
@@ -935,7 +941,8 @@ _bfd_elf_setup_sections (bfd *abfd)
@@ -933,7 +939,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

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
diff -rupN --no-dereference binutils-2.41/bfd/Makefile.am binutils-2.41-new/bfd/Makefile.am
--- binutils-2.41/bfd/Makefile.am 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/Makefile.am 2023-10-17 08:36:02.532285680 +0200
@@ -966,8 +966,8 @@ DISTCLEANFILES += $(BUILD_CFILES) $(BUIL
diff -rupN --no-dereference binutils-2.40/bfd/Makefile.am binutils-2.40-new/bfd/Makefile.am
--- binutils-2.40/bfd/Makefile.am 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/Makefile.am 2023-03-09 14:51:47.525462680 +0100
@@ -988,8 +988,8 @@ DISTCLEANFILES += $(BUILD_CFILES) $(BUIL
bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in
$(AM_V_GEN)\
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.41/bfd/Makefile.am binutils-2.41-new/bfd/
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
. $(srcdir)/development.sh ;\
@@ -978,7 +978,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
@@ -1000,7 +1000,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.41/bfd/Makefile.am binutils-2.41-new/bfd/
-e "s,@report_bugs_to@,$$report_bugs_to," \
< $(srcdir)/version.h > $@; \
echo "$${bfd_soversion}" > libtool-soversion
diff -rupN --no-dereference binutils-2.41/bfd/Makefile.in binutils-2.41-new/bfd/Makefile.in
--- binutils-2.41/bfd/Makefile.in 2023-07-03 01:00:00.000000000 +0200
+++ binutils-2.41-new/bfd/Makefile.in 2023-10-17 08:36:02.533285735 +0200
@@ -2425,8 +2425,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) $(MKDOC
diff -rupN --no-dereference binutils-2.40/bfd/Makefile.in binutils-2.40-new/bfd/Makefile.in
--- binutils-2.40/bfd/Makefile.in 2023-01-14 01:00:00.000000000 +0100
+++ binutils-2.40-new/bfd/Makefile.in 2023-03-09 14:51:47.526462669 +0100
@@ -2470,8 +2470,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) $(MKDOC
bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in
$(AM_V_GEN)\
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.41/bfd/Makefile.in binutils-2.41-new/bfd/
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
. $(srcdir)/development.sh ;\
@@ -2437,7 +2437,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
@@ -2482,7 +2482,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
fi ;\
$(SED) -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \

@ -3,11 +3,11 @@
%define enable_new_dtags 0
Name: mingw-binutils
Version: 2.41
Release: 5%{?dist}
Version: 2.40
Release: 3%{?dist}
Summary: Cross-compiled version of binutils for Win32 and Win64 environments
License: GPL-3.0-or-later AND (GPL-3.0-or-later WITH Bison-exception-2.2) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND BSD-3-Clause AND GFDL-1.3-or-later AND GPL-2.0-or-later LGPL-2.1-or-later AND LGPL-2.0-or-later
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.xz
@ -44,80 +44,97 @@ Patch03: binutils-export-demangle.h.patch
# order.
Patch04: binutils-no-config-h-check.patch
# Purpose: Include the filename concerned in readelf error and warning
# messages. This helps when readelf is run with multiple
# input files or when multiple instances of readelf are
# running at the same time.
# Lifetime: Permanent. This patch changes the format of readelf's output,
# making it better (IMHO) but also potentially breaking tools that
# depend upon readelf's current output format. cf/ Patch07.
# It also tends to break parts of the binutils own
# testsuite. Hence the patch remains local for now.
Patch05: binutils-filename-in-readelf-messages.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.
Patch05: binutils-revert-PLT-elision.patch
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.
# Lifetime: Permanent. cf/ Patch05.
# FIXME: The proper fix would be to update the scripts that are expecting
# a fixed output from readelf. But it seems that some of them are
# no longer being maintained.
Patch07: binutils-readelf-other-sym-info.patch
# Purpose: Do not create PLT entries for AARCH64 IFUNC symbols referenced in
# debug sections.
# Lifetime: Permanent.
# FIXME: Find related bug. Decide on permanency.
Patch06: binutils-2.27-aarch64-ifunc.patch
Patch08: binutils-2.27-aarch64-ifunc.patch
# Purpose: Stop the binutils from statically linking with libstdc++.
# Lifetime: Permanent.
Patch07: binutils-do-not-link-with-static-libstdc++.patch
Patch09: binutils-do-not-link-with-static-libstdc++.patch
# Purpose: Allow OS specific sections in section groups.
# Lifetime: Fixed in 2.42 (maybe)
Patch08: binutils-special-sections-in-groups.patch
# Lifetime: Fixed in 2.39 (maybe)
Patch10: binutils-special-sections-in-groups.patch
# Purpose: Fix linker testsuite failures.
# Lifetime: Fixed in 2.39 (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.42 (maybe)
Patch09: binutils-gold-mismatched-section-flags.patch
# Lifetime: Fixed in 2.39 (maybe)
Patch12: binutils-gold-mismatched-section-flags.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.
Patch10: binutils-gold-warn-unsupported.patch
Patch13: binutils-gold-warn-unsupported.patch
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
# linker for x86 binaries.
# Lifetime: Permanent.
Patch11: binutils-gold-i386-gnu-property-notes.patch
Patch14: binutils-gold-i386-gnu-property-notes.patch
# Purpose: Allow the binutils to be configured with any (recent) version of
# autoconf.
# Lifetime: Fixed in 2.42 (maybe ?)
Patch12: binutils-autoconf-version.patch
# Lifetime: Fixed in 2.39 (maybe ?)
Patch15: binutils-autoconf-version.patch
# Purpose: Stop libtool from inserting useless runpaths into binaries.
# Lifetime: Who knows.
Patch13: binutils-libtool-no-rpath.patch
Patch16: binutils-libtool-no-rpath.patch
%if %{enable_new_dtags}
# Purpose: Change ld man page so that it says that --enable-new-dtags is the default.
# Lifetime: Permanent
Patch14: binutils-update-linker-manual.patch
Patch17: binutils-update-linker-manual.patch
%endif
# Purpose: Stop an abort when using dwp to process a file with no dwo links.
# Lifetime: Fixed in 2.42 (maybe)
Patch15: binutils-gold-empty-dwp.patch
# Purpose: Speed up objcopy's note merging algorithm.
# Lifetime: Fixed in 2.41
Patch18: binutils-objcopy-note-merge-speedup.patch
# Purpose: Fix binutils testsuite failures.
# Lifetime: Permanent, but varies with each rebase.
Patch16: binutils-testsuite-fixes.patch
# # Purpose: Fix testsuite failures due to the patches applied here.
# # Lifetime: Permanent, but varying with each new rebase.
Patch19: binutils-testsuite-fixes.patch
# Purpose: Fix binutils testsuite failures for the RISCV-64 target.
# Lifetime: Permanent, but varies with each rebase.
Patch17: binutils-riscv-testsuite-fixes.patch
# Purpose: Fix the GOLD linker's handling of 32-bit PowerPC binaries.
# Lifetime: Fixed in 2.42
Patch18: binutils-gold-powerpc.patch
# Purpose: Fix a potential NULL pointer dereference when parsing corrupt
# ELF symbol version information.
# Lifetime: Fixed in 2.42
Patch19: binutils-handle-corrupt-version-info.patch
# Backport fix for CVE-2023-1972
# https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57
Patch20: CVE-2023-1972.patch
# Backport fix for https://sourceware.org/bugzilla/show_bug.cgi?id=30079
# https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=b7eab2a9d4f4e92692daf14b09fc95ca11b72e30
Patch21: binutils-gdb.git-b7eab2a9d4f4e92692daf14b09fc95ca11b72e30.patch
BuildRequires: make
BuildRequires: gcc
@ -450,25 +467,6 @@ rm -rf %{buildroot}%{_mandir}/man1/*
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2.41-5
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.41-4
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.41-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.41-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Oct 17 2023 Sandro Mani <manisandro@gmail.com> - 2.41-1
- Update to 2.41
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.40-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jun 14 2023 Sandro Mani <manisandro@gmail.com> - 2.40-3
- Backport fix for Backport fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=30079

Loading…
Cancel
Save