Update to 2.41

This commit is contained in:
Sandro Mani 2023-10-17 09:08:12 +02:00
parent c0990d9f86
commit 56bf910592
28 changed files with 1169 additions and 1876 deletions

1
.gitignore vendored
View File

@ -22,3 +22,4 @@ binutils-2.20.1.tar.bz2
/binutils-2.38.tar.xz
/binutils-2.39.tar.xz
/binutils-2.40.tar.xz
/binutils-2.41.tar.xz

View File

@ -1,22 +0,0 @@
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;

View File

@ -1,7 +1,7 @@
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
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
it here if it is defined in a non-shared object. */
if (h != NULL
&& h->type == STT_GNU_IFUNC

View File

@ -1,6 +1,6 @@
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
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
@@ -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]),

View File

@ -1,6 +1,6 @@
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
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
@@ -5442,49 +5442,6 @@ if test -z "$LD"; then
fi
fi
@ -51,9 +51,9 @@ diff -rupN --no-dereference binutils-2.40/configure binutils-2.40-new/configure
if test -n "$ac_tool_prefix"; then
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
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
@@ -1435,26 +1435,6 @@ if test -z "$LD"; then
fi
fi

View File

@ -1,6 +1,6 @@
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
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
@@ -38,7 +38,7 @@ bfdlibdir = @bfdlibdir@
bfdincludedir = @bfdincludedir@
bfdlib_LTLIBRARIES = libbfd.la
@ -10,10 +10,10 @@ diff -rupN --no-dereference binutils-2.40/bfd/Makefile.am binutils-2.40-new/bfd/
else !INSTALL_LIBBFD
# Empty these so that the respective installation directories will not be created.
bfdlibdir =
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 = \
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 = \
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.40/bfd/Makefile.in binutils-2.40-new/bfd/
HEADERS = $(bfdinclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
@@ -517,7 +517,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel
@@ -504,7 +504,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 \

View File

@ -1,126 +0,0 @@
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;

View File

@ -1,304 +0,0 @@
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

View File

@ -1,13 +0,0 @@
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);

View File

@ -0,0 +1,12 @@
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.

View File

@ -1,6 +1,6 @@
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
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
@@ -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),

View File

@ -1,6 +1,6 @@
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
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
@@ -872,6 +872,7 @@ Layout::get_output_section(const char* n
&& (same_name->flags() & elfcpp::SHF_TLS) == 0)
os = same_name;

View File

@ -0,0 +1,71 @@
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;

View File

@ -1,7 +1,7 @@
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
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
;;
#ifdef BFD64
@ -10,7 +10,7 @@ diff -rupN --no-dereference binutils-2.40/bfd/config.bfd binutils-2.40-new/bfd/c
targ_defvec=bpf_elf64_le_vec
targ_selvecs=bpf_elf64_be_vec
targ_underscore=yes
@@ -1494,7 +1494,7 @@ case "${targ}" in
@@ -1497,7 +1497,7 @@ case "${targ}" in
;;
*)
@ -19,9 +19,9 @@ diff -rupN --no-dereference binutils-2.40/bfd/config.bfd binutils-2.40-new/bfd/c
echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
exit 1
;;
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
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
@@ -5255,7 +5255,8 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt
@ -32,9 +32,9 @@ diff -rupN --no-dereference binutils-2.40/gold/configure binutils-2.40-new/gold/
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
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
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
@@ -182,7 +182,7 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt
@ -44,10 +44,10 @@ diff -rupN --no-dereference binutils-2.40/gold/configure.ac binutils-2.40-new/go
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
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
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
targ_extra_emuls="elf32bfin"
targ_extra_libpath=$targ_extra_emuls
;;
@ -56,7 +56,7 @@ diff -rupN --no-dereference binutils-2.40/ld/configure.tgt binutils-2.40-new/ld/
;;
cr16-*-elf*) targ_emul=elf32cr16
;;
@@ -1088,7 +1088,7 @@ loongarch64-*) targ_emul=elf64loongarch
@@ -1087,7 +1087,7 @@ loongarch64-*) targ_emul=elf64loongarch
targ_extra_ofiles=
;;
*)

View File

@ -0,0 +1,30 @@
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

View File

@ -1,158 +0,0 @@
From a0b911576eb49e06a457ebf757b42543d2c7e548 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@microsoft.com>
Date: Wed, 21 Jul 2021 14:32:03 +0100
Subject: [PATCH] Allows linker scripts to set the SEC_READONLY flag.
* ld.texi: Document new output section type.
* ldgram.y: Add new token.
* ldlang.c: Handle the new flag.
* ldlang.h: Add readonly_section to list of section types.
* ldlex.l: Add a new identifier.
* testsuite/ld-scripts/output-section-types.t: New example linker script.
* testsuite/ld-scripts/output-section-types.d: Test driver.
* testsyute/ld-scripts/script.exp: Run the new test.
(cherry picked from commit 6b86da53d5ee2022b9065f445d23356190380746)
---
ld/ld.texi | 2 ++
ld/ldgram.y | 2 ++
ld/ldlang.c | 6 ++++++
ld/ldlang.h | 3 ++-
ld/ldlex.l | 1 +
ld/testsuite/ld-scripts/output-section-types.d | 13 +++++++++++++
ld/testsuite/ld-scripts/output-section-types.t | 7 +++++++
ld/testsuite/ld-scripts/script.exp | 1 +
8 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 ld/testsuite/ld-scripts/output-section-types.d
create mode 100644 ld/testsuite/ld-scripts/output-section-types.t
diff --git a/ld/ld.texi b/ld/ld.texi
index dd8f571d4e4..cf1e637adbf 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -5456,6 +5456,8 @@ parentheses. The following types are defined:
@item NOLOAD
The section should be marked as not loadable, so that it will not be
loaded into memory when the program is run.
+@item READONLY
+The section should be marked as read-only.
@item DSECT
@itemx COPY
@itemx INFO
diff --git a/ld/ldgram.y b/ld/ldgram.y
index dd911f46169..31e0071c6fc 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -139,6 +139,7 @@ static int error_index;
%token REGION_ALIAS
%token LD_FEATURE
%token NOLOAD DSECT COPY INFO OVERLAY
+%token READONLY
%token DEFINED TARGET_K SEARCH_DIR MAP ENTRY
%token <integer> NEXT
%token SIZEOF ALIGNOF ADDR LOADADDR MAX_K MIN_K
@@ -1123,6 +1124,7 @@ type:
| COPY { sectype = noalloc_section; }
| INFO { sectype = noalloc_section; }
| OVERLAY { sectype = noalloc_section; }
+ | READONLY { sectype = readonly_section; }
;
atype:
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 37b64c89ee1..2610be995ca 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -2639,6 +2639,9 @@ lang_add_section (lang_statement_list_type *ptr,
case noalloc_section:
flags &= ~SEC_ALLOC;
break;
+ case readonly_section:
+ flags |= SEC_READONLY;
+ break;
case noload_section:
flags &= ~SEC_LOAD;
flags |= SEC_NEVER_LOAD;
@@ -4232,6 +4235,9 @@ map_input_to_output_sections
case noalloc_section:
flags = SEC_HAS_CONTENTS;
break;
+ case readonly_section:
+ flags |= SEC_READONLY;
+ break;
case noload_section:
if (bfd_get_flavour (link_info.output_bfd)
== bfd_target_elf_flavour)
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 6fbe16d97d9..f68ae27b409 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -121,7 +121,8 @@ enum section_type
first_overlay_section,
overlay_section,
noload_section,
- noalloc_section
+ noalloc_section,
+ readonly_section
};
/* This structure holds a list of program headers describing
diff --git a/ld/ldlex.l b/ld/ldlex.l
index c1b15263587..25b4bcaae01 100644
--- a/ld/ldlex.l
+++ b/ld/ldlex.l
@@ -294,6 +294,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT>"SORT_BY_INIT_PRIORITY" { RTOKEN(SORT_BY_INIT_PRIORITY); }
<BOTH,SCRIPT>"SORT_NONE" { RTOKEN(SORT_NONE); }
<EXPRESSION,BOTH,SCRIPT>"NOLOAD" { RTOKEN(NOLOAD);}
+<EXPRESSION,BOTH,SCRIPT>"READONLY" { RTOKEN(READONLY);}
<EXPRESSION,BOTH,SCRIPT>"DSECT" { RTOKEN(DSECT);}
<EXPRESSION,BOTH,SCRIPT>"COPY" { RTOKEN(COPY);}
<EXPRESSION,BOTH,SCRIPT>"INFO" { RTOKEN(INFO);}
diff --git a/ld/testsuite/ld-scripts/output-section-types.d b/ld/testsuite/ld-scripts/output-section-types.d
new file mode 100644
index 00000000000..ab124fa4dd7
--- /dev/null
+++ b/ld/testsuite/ld-scripts/output-section-types.d
@@ -0,0 +1,13 @@
+#ld: -Toutput-section-types.t
+#source: align2a.s
+#objdump: -h
+#target: [is_elf_format]
+
+#...
+ . \.rom.*
+[ ]+ALLOC, READONLY
+ . \.ro.*
+[ ]+CONTENTS, ALLOC, LOAD, READONLY, DATA
+ . \.over.*
+[ ]+CONTENTS, READONLY
+#pass
diff --git a/ld/testsuite/ld-scripts/output-section-types.t b/ld/testsuite/ld-scripts/output-section-types.t
new file mode 100644
index 00000000000..d8fdfda1a03
--- /dev/null
+++ b/ld/testsuite/ld-scripts/output-section-types.t
@@ -0,0 +1,7 @@
+SECTIONS {
+ .rom (NOLOAD) : { LONG(1234); }
+ .ro (READONLY) : { LONG(5678); }
+ .over (OVERLAY) : { LONG(0123); }
+ /DISCARD/ : { *(*) }
+
+}
diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp
index 961cd08c4b1..ff50199b3ae 100644
--- a/ld/testsuite/ld-scripts/script.exp
+++ b/ld/testsuite/ld-scripts/script.exp
@@ -229,6 +229,7 @@ foreach test_script $test_script_list {
run_dump_test "align-with-input"
run_dump_test "pr20302"
+run_dump_test "output-section-types"
run_dump_test "segment-start" {{name (default)}}
run_dump_test "segment-start" {{name (overridden)} \
--
2.30.2

View File

@ -1,6 +1,6 @@
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
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
@@ -7103,6 +7103,7 @@ EOF
rpath="$finalize_rpath"
test "$mode" != relink && rpath="$compile_rpath$rpath"

View File

@ -1,7 +1,7 @@
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 @@
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 @@
#ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__
@ -13,9 +13,9 @@ diff -rupN --no-dereference binutils-2.40/bfd/bfd-in2.h binutils-2.40-new/bfd/bf
#ifdef __cplusplus
extern "C" {
#endif
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
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
@@ -23,11 +23,6 @@
#ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__

View File

@ -1,45 +0,0 @@
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. */

View File

@ -1,36 +0,0 @@
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

View File

@ -1,6 +1,6 @@
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
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
@@ -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.40/bfd/elfxx-x86.c binutils-2.40-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.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
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
@@ -2,6 +2,7 @@
#readelf: -S --wide
#as: --32
@ -30,9 +30,9 @@ diff -rupN --no-dereference binutils-2.40/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.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
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
@@ -3,7 +3,6 @@
#readelf: -d --wide
#as: --32
@ -41,9 +41,9 @@ diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-i386/pltgot-2.d binuti
#...
+0x[0-9a-f]+ +\(PLTREL.*
#...
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
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
@@ -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.40/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.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
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
@@ -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.40/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.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
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
@@ -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.40/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.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
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
@@ -2,8 +2,4 @@
#readelf: -S --wide
#as: --64
@ -89,9 +89,9 @@ diff -rupN --no-dereference binutils-2.40/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.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
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
@@ -3,7 +3,6 @@
#readelf: -d --wide
#as: --64
@ -100,17 +100,17 @@ diff -rupN --no-dereference binutils-2.40/ld/testsuite/ld-x86-64/pltgot-2.d binu
#...
+0x[0-9a-f]+ +\(PLTREL.*
#...
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
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
@@ -1,4 +1,3 @@
-#failif
#...
[0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0
#...
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
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
@@ -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.40/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.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
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
@@ -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.40/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.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
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
@@ -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.40/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.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
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
@@ -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.40/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.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
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
@@ -14,6 +14,7 @@ Section Headers:
+\[[ 0-9]+\] .dynsym +.*
+\[[ 0-9]+\] .dynstr +.*

View File

@ -0,0 +1,117 @@
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

View File

@ -1,7 +1,7 @@
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
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
}
}
@ -16,7 +16,7 @@ diff -rupN --no-dereference binutils-2.40/bfd/elf.c binutils-2.40-new/bfd/elf.c
{
/* xgettext:c-format */
_bfd_error_handler (_("%pB: no group info for section '%pA'"),
@@ -933,7 +939,8 @@ _bfd_elf_setup_sections (bfd *abfd)
@@ -935,7 +941,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

View File

@ -1,31 +1,31 @@
diff -rup binutils.orig/ld/ld.1 binutils-2.38/ld/ld.1
--- binutils.orig/ld/ld.1 2022-05-27 10:56:44.937044892 +0100
+++ binutils-2.38/ld/ld.1 2022-05-27 11:10:50.311802310 +0100
@@ -2595,7 +2595,7 @@ systems may not understand them. If you
diff -rup binutils.orig/ld/ld.1 binutils-2.41/ld/ld.1
--- binutils.orig/ld/ld.1 2023-08-03 12:47:14.427004953 +0100
+++ binutils-2.41/ld/ld.1 2023-08-03 12:49:10.672145873 +0100
@@ -2669,7 +2669,7 @@ systems may not understand them. If you
\&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed
and older dynamic tags will be omitted.
If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be
-created. By default, the new dynamic tags are not created. Note that
+created. By default, the new dynamic tags are created. Note that
those options are only available for \s-1ELF\s0 systems.
.IP "\fB\-\-hash\-size=\fR\fInumber\fR" 4
those options are only available for ELF systems.
.IP \fB\-\-hash\-size=\fR\fInumber\fR 4
.IX Item "--hash-size=number"
diff -rup binutils.orig/ld/ld.info binutils-2.38/ld/ld.info
--- binutils.orig/ld/ld.info 2022-05-27 11:01:12.286346357 +0100
+++ binutils-2.38/ld/ld.info 2022-05-27 11:11:24.585709176 +0100
@@ -2236,7 +2236,7 @@ GNU linker:
'--enable-new-dtags', the new dynamic tags will be created as
diff -rup binutils.orig/ld/ld.info binutils-2.41/ld/ld.info
--- binutils.orig/ld/ld.info 2023-08-03 12:47:14.427004953 +0100
+++ binutils-2.41/ld/ld.info 2023-08-03 12:49:58.829204257 +0100
@@ -2366,7 +2366,7 @@ GNU linker:
--enable-new-dtags, the new dynamic tags will be created as
needed and older dynamic tags will be omitted. If you specify
'--disable-new-dtags', no new dynamic tags will be created. By
--disable-new-dtags, no new dynamic tags will be created. By
- default, the new dynamic tags are not created. Note that those
+ default, the new dynamic tags are created. Note that those
options are only available for ELF systems.
'--hash-size=NUMBER'
diff -rup binutils.orig/ld/ld.texi binutils-2.38/ld/ld.texi
--- binutils.orig/ld/ld.texi 2022-05-27 11:01:24.081314960 +0100
+++ binutils-2.38/ld/ld.texi 2022-05-27 11:10:05.608923798 +0100
@@ -2796,7 +2796,7 @@ systems may not understand them. If you
--hash-size=NUMBER
diff -rup binutils.orig/ld/ld.texi binutils-2.41/ld/ld.texi
--- binutils.orig/ld/ld.texi 2023-08-03 12:50:58.176276215 +0100
+++ binutils-2.41/ld/ld.texi 2023-08-03 12:41:11.902610960 +0100
@@ -2946,7 +2946,7 @@ systems may not understand them. If you
@option{--enable-new-dtags}, the new dynamic tags will be created as needed
and older dynamic tags will be omitted.
If you specify @option{--disable-new-dtags}, no new dynamic tags will be

View File

@ -1,7 +1,7 @@
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
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
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.40/bfd/Makefile.am binutils-2.40-new/bfd/
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
. $(srcdir)/development.sh ;\
@@ -1000,7 +1000,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
@@ -978,7 +978,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.40/bfd/Makefile.am binutils-2.40-new/bfd/
-e "s,@report_bugs_to@,$$report_bugs_to," \
< $(srcdir)/version.h > $@; \
echo "$${bfd_soversion}" > libtool-soversion
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
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
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.40/bfd/Makefile.in binutils-2.40-new/bfd/
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
. $(srcdir)/development.sh ;\
@@ -2482,7 +2482,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
@@ -2437,7 +2437,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

@ -3,8 +3,8 @@
%define enable_new_dtags 0
Name: mingw-binutils
Version: 2.40
Release: 4%{?dist}
Version: 2.41
Release: 1%{?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
@ -44,97 +44,80 @@ 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.
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
Patch05: binutils-revert-PLT-elision.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
Patch06: 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
Patch07: binutils-do-not-link-with-static-libstdc++.patch
# Purpose: Allow OS specific sections in section groups.
# 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
# Lifetime: Fixed in 2.42 (maybe)
Patch08: binutils-special-sections-in-groups.patch
# Purpose: Stop gold from aborting when input sections with the same name
# have different flags.
# Lifetime: Fixed in 2.39 (maybe)
Patch12: binutils-gold-mismatched-section-flags.patch
# Lifetime: Fixed in 2.42 (maybe)
Patch09: 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.
Patch13: binutils-gold-warn-unsupported.patch
Patch10: binutils-gold-warn-unsupported.patch
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
# linker for x86 binaries.
# Lifetime: Permanent.
Patch14: binutils-gold-i386-gnu-property-notes.patch
Patch11: binutils-gold-i386-gnu-property-notes.patch
# Purpose: Allow the binutils to be configured with any (recent) version of
# autoconf.
# Lifetime: Fixed in 2.39 (maybe ?)
Patch15: binutils-autoconf-version.patch
# Lifetime: Fixed in 2.42 (maybe ?)
Patch12: binutils-autoconf-version.patch
# Purpose: Stop libtool from inserting useless runpaths into binaries.
# Lifetime: Who knows.
Patch16: binutils-libtool-no-rpath.patch
Patch13: 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
Patch17: binutils-update-linker-manual.patch
Patch14: binutils-update-linker-manual.patch
%endif
# Purpose: Speed up objcopy's note merging algorithm.
# Lifetime: Fixed in 2.41
Patch18: binutils-objcopy-note-merge-speedup.patch
# 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: 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.
# Lifetime: Permanent, but varies with each rebase.
Patch16: binutils-testsuite-fixes.patch
# Backport fix for CVE-2023-1972
# https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57
Patch20: CVE-2023-1972.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 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
@ -467,6 +450,9 @@ rm -rf %{buildroot}%{_mandir}/man1/*
%changelog
* 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

View File

@ -1 +1 @@
SHA512 (binutils-2.40.tar.xz) = a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925
SHA512 (binutils-2.41.tar.xz) = 5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374