Rebase to Fedora Rawhide
resolves: rhbz#2135769 side-tag: c9s-build-side-1410-stack-gate
This commit is contained in:
parent
84b282858b
commit
2f99a5c952
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,3 +20,4 @@ binutils-2.20.1.tar.bz2
|
||||
/binutils-2.36.1.tar.bz2
|
||||
/binutils-2.37.tar.xz
|
||||
/binutils-2.38.tar.xz
|
||||
/binutils-2.39.tar.xz
|
||||
|
||||
117
29006.patch
117
29006.patch
@ -1,117 +0,0 @@
|
||||
diff -rupN --no-dereference binutils-2.38/ld/pe-dll.c binutils-2.38-new/ld/pe-dll.c
|
||||
--- binutils-2.38/ld/pe-dll.c 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/pe-dll.c 2022-04-26 13:55:06.273552113 +0200
|
||||
@@ -2084,8 +2084,12 @@ make_head (bfd *parent)
|
||||
char *oname;
|
||||
bfd *abfd;
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_d%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_d%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
@@ -2173,8 +2177,12 @@ make_tail (bfd *parent)
|
||||
char *oname;
|
||||
bfd *abfd;
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_d%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_d%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
@@ -2324,8 +2332,12 @@ make_one (def_file_export *exp, bfd *par
|
||||
}
|
||||
}
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_d%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_d%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
@@ -2510,8 +2522,12 @@ make_singleton_name_thunk (const char *i
|
||||
char *oname;
|
||||
bfd *abfd;
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_nmth%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_nmth%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
@@ -2551,7 +2567,7 @@ make_import_fixup_mark (arelent *rel, ch
|
||||
struct bfd_symbol *sym = *rel->sym_ptr_ptr;
|
||||
bfd *abfd = bfd_asymbol_bfd (sym);
|
||||
struct bfd_link_hash_entry *bh;
|
||||
- char *fixup_name, buf[26];
|
||||
+ char *fixup_name, buf[256];
|
||||
size_t prefix_len;
|
||||
|
||||
/* "name" buffer has space before the symbol name for prefixes. */
|
||||
@@ -2586,8 +2602,12 @@ make_import_fixup_entry (const char *nam
|
||||
char *oname;
|
||||
bfd *abfd;
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_fu%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_fu%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
@@ -2640,8 +2660,12 @@ make_runtime_pseudo_reloc (const char *n
|
||||
bfd *abfd;
|
||||
bfd_size_type size;
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_rtr%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_rtr%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
@@ -2727,8 +2751,12 @@ pe_create_runtime_relocator_reference (b
|
||||
char *oname;
|
||||
bfd *abfd;
|
||||
|
||||
- oname = xmalloc (20 + dll_symname_len);
|
||||
- sprintf (oname, "%s_ertr%06d.o", dll_symname, tmp_seq);
|
||||
+ if (asprintf (&oname, "%s_ertr%06d.o", dll_symname, tmp_seq) < 4)
|
||||
+ /* In theory we should return NULL here at let our caller decide what to
|
||||
+ do. But currently the return value is not checked, just used, and
|
||||
+ besides, this condition only happens when the system has run out of
|
||||
+ memory. So just give up. */
|
||||
+ exit (EXIT_FAILURE);
|
||||
tmp_seq++;
|
||||
|
||||
abfd = bfd_create (oname, parent);
|
||||
19
CVE-2022-38533.patch
Normal file
19
CVE-2022-38533.patch
Normal file
@ -0,0 +1,19 @@
|
||||
diff -rupN --no-dereference binutils-2.39/bfd/coffcode.h binutils-2.39-new/bfd/coffcode.h
|
||||
--- binutils-2.39/bfd/coffcode.h 2022-07-08 11:46:47.000000000 +0200
|
||||
+++ binutils-2.39-new/bfd/coffcode.h 2022-10-30 12:41:41.408023817 +0100
|
||||
@@ -4284,10 +4284,13 @@ coff_set_section_contents (bfd * abfd,
|
||||
|
||||
rec = (bfd_byte *) location;
|
||||
recend = rec + count;
|
||||
- while (rec < recend)
|
||||
+ while (recend - rec >= 4)
|
||||
{
|
||||
+ size_t len = bfd_get_32 (abfd, rec);
|
||||
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
|
||||
+ break;
|
||||
+ rec += len * 4;
|
||||
++section->lma;
|
||||
- rec += bfd_get_32 (abfd, rec) * 4;
|
||||
}
|
||||
|
||||
BFD_ASSERT (rec == recend);
|
||||
@ -1,7 +1,7 @@
|
||||
diff -rupN --no-dereference binutils-2.37/bfd/elfnn-aarch64.c binutils-2.37-new/bfd/elfnn-aarch64.c
|
||||
--- binutils-2.37/bfd/elfnn-aarch64.c 2021-07-08 13:37:19.000000000 +0200
|
||||
+++ binutils-2.37-new/bfd/elfnn-aarch64.c 2021-07-24 21:59:12.398868364 +0200
|
||||
@@ -5473,6 +5473,7 @@ elfNN_aarch64_final_link_relocate (reloc
|
||||
diff -rup binutils.orig/bfd/elfnn-aarch64.c binutils-2.27/bfd/elfnn-aarch64.c
|
||||
--- binutils.orig/bfd/elfnn-aarch64.c 2017-02-21 10:45:19.311956006 +0000
|
||||
+++ binutils-2.27/bfd/elfnn-aarch64.c 2017-02-21 11:55:07.517922655 +0000
|
||||
@@ -4947,6 +4947,7 @@ elfNN_aarch64_final_link_relocate (reloc
|
||||
it here if it is defined in a non-shared object. */
|
||||
if (h != NULL
|
||||
&& h->type == STT_GNU_IFUNC
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
diff -rupN --no-dereference binutils-2.38/config/override.m4 binutils-2.38-new/config/override.m4
|
||||
--- binutils-2.38/config/override.m4 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/config/override.m4 2022-04-26 13:55:01.445545220 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/config/override.m4 binutils-2.39-new/config/override.m4
|
||||
--- binutils-2.39/config/override.m4 2022-07-08 11:46:47.000000000 +0200
|
||||
+++ binutils-2.39-new/config/override.m4 2022-10-30 12:41:36.883023796 +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]),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,255 +0,0 @@
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/doc/binutils.texi binutils-2.38-new/binutils/doc/binutils.texi
|
||||
--- binutils-2.38/binutils/doc/binutils.texi 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/doc/binutils.texi 2022-04-26 13:55:05.297550720 +0200
|
||||
@@ -2246,6 +2246,8 @@ objdump [@option{-a}|@option{--archive-h
|
||||
@option{--dwarf}[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
|
||||
[@option{-WK}|@option{--dwarf=follow-links}]
|
||||
[@option{-WN}|@option{--dwarf=no-follow-links}]
|
||||
+ [@option{-wD}|@option{--dwarf=use-debuginfod}]
|
||||
+ [@option{-wE}|@option{--dwarf=do-not-use-debuginfod}]
|
||||
[@option{-L}|@option{--process-links}]
|
||||
[@option{--ctf=}@var{section}]
|
||||
[@option{-G}|@option{--stabs}]
|
||||
@@ -4879,6 +4881,8 @@ readelf [@option{-a}|@option{--all}]
|
||||
@option{--debug-dump}[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
|
||||
[@option{-wK}|@option{--debug-dump=follow-links}]
|
||||
[@option{-wN}|@option{--debug-dump=no-follow-links}]
|
||||
+ [@option{-wD}|@option{--debug-dump=use-debuginfod}]
|
||||
+ [@option{-wE}|@option{--debug-dump=do-not-use-debuginfod}]
|
||||
[@option{-P}|@option{--process-links}]
|
||||
[@option{--dwarf-depth=@var{n}}]
|
||||
[@option{--dwarf-start=@var{n}}]
|
||||
@@ -5504,7 +5508,8 @@ deduced from the input file
|
||||
@cindex separate debug files
|
||||
|
||||
debuginfod is a web service that indexes ELF/DWARF debugging resources
|
||||
-by build-id and serves them over HTTP.
|
||||
+by build-id and serves them over HTTP. For more information see:
|
||||
+@emph{https://sourceware.org/elfutils/Debuginfod.html}
|
||||
|
||||
Binutils can be built with the debuginfod client library
|
||||
@code{libdebuginfod} using the @option{--with-debuginfod} configure option.
|
||||
@@ -5516,6 +5521,10 @@ separate debug files when the files are
|
||||
debuginfod is packaged with elfutils, starting with version 0.178.
|
||||
You can get the latest version from `https://sourceware.org/elfutils/'.
|
||||
|
||||
+The DWARF info dumping tools (@command{readelf} and @command{objdump})
|
||||
+have options to control when they should access the debuginfod
|
||||
+servers. By default this access is enabled.
|
||||
+
|
||||
@node Reporting Bugs
|
||||
@chapter Reporting Bugs
|
||||
@cindex bugs
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/doc/debug.options.texi binutils-2.38-new/binutils/doc/debug.options.texi
|
||||
--- binutils-2.38/binutils/doc/debug.options.texi 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/doc/debug.options.texi 2022-04-26 13:55:05.298550721 +0200
|
||||
@@ -68,10 +68,27 @@ chosen when configuring the binutils via
|
||||
@option{--enable-follow-debug-links=no} options. If these are not
|
||||
used then the default is to enable the following of debug links.
|
||||
|
||||
+Note - if support for the debuginfod protocol was enabled when the
|
||||
+binutils were built then this option will also include an attempt to
|
||||
+contact any debuginfod servers mentioned in the @var{DEBUGINFOD_URLS}
|
||||
+environment variable. This could take some time to resolve. This
|
||||
+behaviour can be disabled via the @option{=do-not-use-debuginfod} debug
|
||||
+option.
|
||||
+
|
||||
@item N
|
||||
@itemx =no-follow-links
|
||||
Disables the following of links to separate debug info files.
|
||||
|
||||
+@item D
|
||||
+@itemx =use-debuginfod
|
||||
+Enables contacting debuginfod servers if there is a need to follow
|
||||
+debug links. This is the default behaviour.
|
||||
+
|
||||
+@item E
|
||||
+@itemx =do-not-use-debuginfod
|
||||
+Disables contacting debuginfod servers when there is a need to follow
|
||||
+debug links.
|
||||
+
|
||||
@item l
|
||||
@itemx =rawline
|
||||
Displays the contents of the @samp{.debug_line} section in a raw
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/dwarf.c binutils-2.38-new/binutils/dwarf.c
|
||||
--- binutils-2.38/binutils/dwarf.c 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/dwarf.c 2022-04-26 13:55:05.299550722 +0200
|
||||
@@ -109,6 +109,9 @@ int do_debug_cu_index;
|
||||
int do_wide;
|
||||
int do_debug_links;
|
||||
int do_follow_links = DEFAULT_FOR_FOLLOW_LINKS;
|
||||
+#ifdef HAVE_LIBDEBUGINFOD
|
||||
+int use_debuginfod = 1;
|
||||
+#endif
|
||||
bool do_checks;
|
||||
|
||||
int dwarf_cutoff_level = -1;
|
||||
@@ -11038,7 +11041,7 @@ debuginfod_fetch_separate_debug_info (st
|
||||
|
||||
return false;
|
||||
}
|
||||
-#endif
|
||||
+#endif /* HAVE_LIBDEBUGINFOD */
|
||||
|
||||
static void *
|
||||
load_separate_debug_info (const char * main_filename,
|
||||
@@ -11157,9 +11160,10 @@ load_separate_debug_info (const char *
|
||||
{
|
||||
char * tmp_filename;
|
||||
|
||||
- if (debuginfod_fetch_separate_debug_info (xlink,
|
||||
- & tmp_filename,
|
||||
- file))
|
||||
+ if (use_debuginfod
|
||||
+ && debuginfod_fetch_separate_debug_info (xlink,
|
||||
+ & tmp_filename,
|
||||
+ file))
|
||||
{
|
||||
/* File successfully downloaded from server, replace
|
||||
debug_filename with the file's path. */
|
||||
@@ -11207,13 +11211,15 @@ load_separate_debug_info (const char *
|
||||
warn (_("tried: %s\n"), debug_filename);
|
||||
|
||||
#if HAVE_LIBDEBUGINFOD
|
||||
- {
|
||||
- char *urls = getenv (DEBUGINFOD_URLS_ENV_VAR);
|
||||
- if (urls == NULL)
|
||||
- urls = "";
|
||||
+ if (use_debuginfod)
|
||||
+ {
|
||||
+ char *urls = getenv (DEBUGINFOD_URLS_ENV_VAR);
|
||||
|
||||
- warn (_("tried: DEBUGINFOD_URLS=%s\n"), urls);
|
||||
- }
|
||||
+ if (urls == NULL)
|
||||
+ urls = "";
|
||||
+
|
||||
+ warn (_("tried: DEBUGINFOD_URLS=%s\n"), urls);
|
||||
+ }
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -11707,6 +11713,9 @@ dwarf_select_sections_by_names (const ch
|
||||
{ "aranges", & do_debug_aranges, 1 },
|
||||
{ "cu_index", & do_debug_cu_index, 1 },
|
||||
{ "decodedline", & do_debug_lines, FLAG_DEBUG_LINES_DECODED },
|
||||
+#ifdef HAVE_LIBDEBUGINFOD
|
||||
+ { "do-not-use-debuginfod", & use_debuginfod, 0 },
|
||||
+#endif
|
||||
{ "follow-links", & do_follow_links, 1 },
|
||||
{ "frames", & do_debug_frames, 1 },
|
||||
{ "frames-interp", & do_debug_frames_interp, 1 },
|
||||
@@ -11730,6 +11739,9 @@ dwarf_select_sections_by_names (const ch
|
||||
{ "trace_abbrev", & do_trace_abbrevs, 1 },
|
||||
{ "trace_aranges", & do_trace_aranges, 1 },
|
||||
{ "trace_info", & do_trace_info, 1 },
|
||||
+#ifdef HAVE_LIBDEBUGINFOD
|
||||
+ { "use-debuginfod", & use_debuginfod, 1 },
|
||||
+#endif
|
||||
{ NULL, NULL, 0 }
|
||||
};
|
||||
|
||||
@@ -11783,6 +11795,10 @@ dwarf_select_sections_by_letters (const
|
||||
case 'A': do_debug_addr = 1; break;
|
||||
case 'a': do_debug_abbrevs = 1; break;
|
||||
case 'c': do_debug_cu_index = 1; break;
|
||||
+#ifdef HAVE_LIBDEBUGINFOD
|
||||
+ case 'D': use_debuginfod = 1; break;
|
||||
+ case 'E': use_debuginfod = 0; break;
|
||||
+#endif
|
||||
case 'F': do_debug_frames_interp = 1; /* Fall through. */
|
||||
case 'f': do_debug_frames = 1; break;
|
||||
case 'g': do_gdb_index = 1; break;
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/dwarf.h binutils-2.38-new/binutils/dwarf.h
|
||||
--- binutils-2.38/binutils/dwarf.h 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/dwarf.h 2022-04-26 13:55:05.299550722 +0200
|
||||
@@ -224,6 +224,9 @@ extern int do_debug_cu_index;
|
||||
extern int do_wide;
|
||||
extern int do_debug_links;
|
||||
extern int do_follow_links;
|
||||
+#ifdef HAVE_LIBDEBUGINFOD
|
||||
+extern int use_debuginfod;
|
||||
+#endif
|
||||
extern bool do_checks;
|
||||
|
||||
extern int dwarf_cutoff_level;
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/NEWS binutils-2.38-new/binutils/NEWS
|
||||
--- binutils-2.38/binutils/NEWS 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/NEWS 2022-04-26 13:55:05.297550720 +0200
|
||||
@@ -1,5 +1,8 @@
|
||||
-*- text -*-
|
||||
|
||||
+* Add an option to objdump and readelf to prevent attempts to access debuginfod
|
||||
+ servers when following links.
|
||||
+
|
||||
Changes in 2.38:
|
||||
|
||||
* elfedit: Add --output-abiversion option to update ABIVERSION.
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/objdump.c binutils-2.38-new/binutils/objdump.c
|
||||
--- binutils-2.38/binutils/objdump.c 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/objdump.c 2022-04-26 13:55:05.300550724 +0200
|
||||
@@ -281,6 +281,14 @@ usage (FILE *stream, int status)
|
||||
Do not follow links to separate debug info files\n\
|
||||
(default)\n"));
|
||||
#endif
|
||||
+#if HAVE_LIBDEBUGINFOD
|
||||
+ fprintf (stream, _("\
|
||||
+ -WD --dwarf=use-debuginfod\n\
|
||||
+ When following links, also query debuginfod servers (default)\n"));
|
||||
+ fprintf (stream, _("\
|
||||
+ -WE --dwarf=do-not-use-debuginfod\n\
|
||||
+ When following links, do not query debuginfod servers\n"));
|
||||
+#endif
|
||||
fprintf (stream, _("\
|
||||
-L, --process-links Display the contents of non-debug sections in\n\
|
||||
separate debuginfo files. (Implies -WK)\n"));
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/readelf.c binutils-2.38-new/binutils/readelf.c
|
||||
--- binutils-2.38/binutils/readelf.c 2022-04-26 13:54:52.269532121 +0200
|
||||
+++ binutils-2.38-new/binutils/readelf.c 2022-04-26 13:55:05.303550728 +0200
|
||||
@@ -5126,6 +5126,14 @@ usage (FILE * stream)
|
||||
Do not follow links to separate debug info files\n\
|
||||
(default)\n"));
|
||||
#endif
|
||||
+#if HAVE_LIBDEBUGINFOD
|
||||
+ fprintf (stream, _("\
|
||||
+ -wD --debug-dump=use-debuginfod\n\
|
||||
+ When following links, also query debuginfod servers (default)\n"));
|
||||
+ fprintf (stream, _("\
|
||||
+ -wE --debug-dump=do-not-use-debuginfod\n\
|
||||
+ When following links, do not query debuginfod servers\n"));
|
||||
+#endif
|
||||
fprintf (stream, _("\
|
||||
--dwarf-depth=N Do not display DIEs at depth N or greater\n"));
|
||||
fprintf (stream, _("\
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/testsuite/binutils-all/debuginfod.exp binutils-2.38-new/binutils/testsuite/binutils-all/debuginfod.exp
|
||||
--- binutils-2.38/binutils/testsuite/binutils-all/debuginfod.exp 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/binutils/testsuite/binutils-all/debuginfod.exp 2022-04-26 13:55:05.303550728 +0200
|
||||
@@ -185,8 +185,14 @@ proc test_fetch_debugaltlink { prog prog
|
||||
}
|
||||
|
||||
if { [regexp ".*DEBUGINFOD.*" $conf_objdump] } {
|
||||
- test_fetch_debuglink $OBJDUMP "-W"
|
||||
+ test_fetch_debuglink $OBJDUMP "-W -WD"
|
||||
test_fetch_debugaltlink $OBJDUMP "-Wk"
|
||||
+
|
||||
+ set test "disabling debuginfod access"
|
||||
+ setup_xfail *-*-*
|
||||
+ test_fetch_debuglink $OBJDUMP "-W -WE"
|
||||
+ set test "debuginfod"
|
||||
+
|
||||
} else {
|
||||
untested "$test (objdump not configured with debuginfod)"
|
||||
}
|
||||
@@ -194,6 +200,12 @@ if { [regexp ".*DEBUGINFOD.*" $conf_objd
|
||||
if { [regexp ".*DEBUGINFOD.*" $conf_readelf] } {
|
||||
test_fetch_debuglink $READELF "-w"
|
||||
test_fetch_debugaltlink $READELF "-wk"
|
||||
+
|
||||
+ set test "disabling debuginfod access"
|
||||
+ setup_xfail *-*-*
|
||||
+ test_fetch_debuglink $READELF "-w -wE"
|
||||
+ set test "debuginfod"
|
||||
+
|
||||
} else {
|
||||
untested "$test (readelf not configured with debuginfod)"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-elfvers/vers24.rd binutils-2.38-new/ld/testsuite/ld-elfvers/vers24.rd
|
||||
--- binutils-2.38/ld/testsuite/ld-elfvers/vers24.rd 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-elfvers/vers24.rd 2022-04-26 13:54:54.195534871 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-elfvers/vers24.rd binutils-2.39-new/ld/testsuite/ld-elfvers/vers24.rd
|
||||
--- binutils-2.39/ld/testsuite/ld-elfvers/vers24.rd 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-elfvers/vers24.rd 2022-10-30 12:41:31.100023768 +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
|
||||
@ -13,9 +13,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-elfvers/vers24.rd binu
|
||||
#...
|
||||
Symbol table '.symtab' contains [0-9]+ entries:
|
||||
#pass
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-10.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-10.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-10.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-10.d 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-10.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-10.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-10.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-10.d 2022-10-30 12:41:31.099023768 +0100
|
||||
@@ -32,7 +32,8 @@ hook called: claim_file tmpdir/func.o \[
|
||||
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
|
||||
#...
|
||||
@ -26,9 +26,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-10.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-11.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-11.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-11.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-11.d 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-11.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-11.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-11.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-11.d 2022-10-30 12:41:31.099023768 +0100
|
||||
@@ -35,8 +35,9 @@ hook called: claim_file tmpdir/func.o \[
|
||||
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
|
||||
#...
|
||||
@ -41,18 +41,18 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-11.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-13.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-13.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-13.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-13.d 2022-04-26 13:54:54.191534865 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-13.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-13.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-13.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-13.d 2022-10-30 12:41:31.095023768 +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.38/ld/testsuite/ld-plugin/plugin-14.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-14.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-14.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-14.d 2022-04-26 13:54:54.191534865 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-14.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-14.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-14.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-14.d 2022-10-30 12:41:31.095023768 +0100
|
||||
@@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -62,9 +62,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-14.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-15.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-15.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-15.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-15.d 2022-04-26 13:54:54.191534865 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-15.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-15.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-15.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-15.d 2022-10-30 12:41:31.095023768 +0100
|
||||
@@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -74,9 +74,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-15.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-16.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-16.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-16.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-16.d 2022-04-26 13:54:54.191534865 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-16.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-16.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-16.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-16.d 2022-10-30 12:41:31.096023768 +0100
|
||||
@@ -30,9 +30,8 @@ hook called: claim_file .*/ld/testsuite/
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -89,9 +89,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-16.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-17.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-17.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-17.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-17.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-17.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-17.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-17.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-17.d 2022-10-30 12:41:31.096023768 +0100
|
||||
@@ -31,7 +31,8 @@ hook called: claim_file .*/ld/testsuite/
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -102,9 +102,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-17.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-18.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-18.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-18.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-18.d 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-18.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-18.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-18.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-18.d 2022-10-30 12:41:31.100023768 +0100
|
||||
@@ -32,7 +32,8 @@ hook called: claim_file .*/ld/testsuite/
|
||||
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
|
||||
#...
|
||||
@ -115,9 +115,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-18.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-19.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-19.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-19.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-19.d 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-19.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-19.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-19.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-19.d 2022-10-30 12:41:31.100023768 +0100
|
||||
@@ -35,8 +35,9 @@ hook called: claim_file .*/ld/testsuite/
|
||||
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
|
||||
#...
|
||||
@ -130,9 +130,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-19.d bin
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-20.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-20.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-20.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-20.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-20.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-20.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-20.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-20.d 2022-10-30 12:41:31.096023768 +0100
|
||||
@@ -2,6 +2,5 @@ hook called: all symbols read.
|
||||
Input: func.c \(tmpdir/libfunc.a\)
|
||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||
@ -141,9 +141,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-20.d bin
|
||||
-.*main.c.*: undefined reference to `\.?func'
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-21.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-21.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-21.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-21.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-21.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-21.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-21.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-21.d 2022-10-30 12:41:31.096023768 +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.*
|
||||
@ -152,9 +152,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-21.d bin
|
||||
-.*main.c.*: undefined reference to `\.?func'
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-22.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-22.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-22.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-22.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-22.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-22.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-22.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-22.d 2022-10-30 12:41:31.097023768 +0100
|
||||
@@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.*
|
||||
hook called: all symbols read.
|
||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||
@ -163,9 +163,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-22.d bin
|
||||
-.*main.c.*: undefined reference to `\.?func'
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-23.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-23.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-23.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-23.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-23.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-23.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-23.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-23.d 2022-10-30 12:41:31.097023768 +0100
|
||||
@@ -2,6 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func.
|
||||
hook called: all symbols read.
|
||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
||||
@ -174,47 +174,47 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-23.d bin
|
||||
-.*main.c.*: undefined reference to `\.?func'
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-24.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-24.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-24.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-24.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-24.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-24.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-24.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-24.d 2022-10-30 12:41:31.097023768 +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.38/ld/testsuite/ld-plugin/plugin-25.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-25.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-25.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-25.d 2022-04-26 13:54:54.192534866 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-25.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-25.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-25.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-25.d 2022-10-30 12:41:31.097023768 +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.38/ld/testsuite/ld-plugin/plugin-28.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-28.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-28.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-28.d 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-28.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-28.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-28.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-28.d 2022-10-30 12:41:31.100023768 +0100
|
||||
@@ -1 +1,2 @@
|
||||
.*: error: Error
|
||||
+#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-29.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-29.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-29.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-29.d 2022-04-26 13:54:54.193534868 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-29.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-29.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-29.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-29.d 2022-10-30 12:41:31.098023768 +0100
|
||||
@@ -1 +1,2 @@
|
||||
.*: warning: Warning
|
||||
+#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-30.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-30.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-30.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-30.d 2022-04-26 13:54:54.193534868 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-30.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-30.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-30.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-30.d 2022-10-30 12:41:31.098023768 +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.38/ld/testsuite/ld-plugin/plugin-6.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-6.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-6.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-6.d 2022-04-26 13:54:54.193534868 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-6.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-6.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-6.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-6.d 2022-10-30 12:41:31.098023768 +0100
|
||||
@@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -224,9 +224,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-6.d binu
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-7.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-7.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-7.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-7.d 2022-04-26 13:54:54.193534868 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-7.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-7.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-7.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-7.d 2022-10-30 12:41:31.098023768 +0100
|
||||
@@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -236,9 +236,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-7.d binu
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-8.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-8.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-8.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-8.d 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-8.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-8.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-8.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-8.d 2022-10-30 12:41:31.100023768 +0100
|
||||
@@ -30,9 +30,8 @@ hook called: claim_file tmpdir/func.o \[
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -251,9 +251,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-8.d binu
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-9.d binutils-2.38-new/ld/testsuite/ld-plugin/plugin-9.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin-9.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin-9.d 2022-04-26 13:54:54.193534868 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin-9.d binutils-2.39-new/ld/testsuite/ld-plugin/plugin-9.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin-9.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin-9.d 2022-10-30 12:41:31.099023768 +0100
|
||||
@@ -31,7 +31,8 @@ hook called: claim_file tmpdir/func.o \[
|
||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
||||
#...
|
||||
@ -264,9 +264,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin-9.d binu
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin.exp binutils-2.38-new/ld/testsuite/ld-plugin/plugin.exp
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin.exp 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin.exp 2022-04-26 13:54:54.195534871 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/plugin.exp binutils-2.39-new/ld/testsuite/ld-plugin/plugin.exp
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/plugin.exp 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/plugin.exp 2022-10-30 12:41:31.101023768 +0100
|
||||
@@ -117,6 +117,12 @@ if { $can_compile && !$failed_compile }
|
||||
}
|
||||
}
|
||||
@ -280,410 +280,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/plugin.exp binu
|
||||
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.38/ld/testsuite/ld-plugin/plugin.exp.orig binutils-2.38-new/ld/testsuite/ld-plugin/plugin.exp.orig
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/plugin.exp.orig 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/plugin.exp.orig 2022-01-22 13:14:09.000000000 +0100
|
||||
@@ -0,0 +1,397 @@
|
||||
+# Expect script for ld-plugin tests
|
||||
+# Copyright (C) 2010-2022 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# This file is part of the GNU Binutils.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
+# MA 02110-1301, USA.
|
||||
+
|
||||
+# These tests require the plugin API to be configured in.
|
||||
+if ![check_plugin_api_available] {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+# And a compiler to be available.
|
||||
+set can_compile 1
|
||||
+if { ![check_compiler_available] } {
|
||||
+ # Don't fail immediately,
|
||||
+ set can_compile 0
|
||||
+}
|
||||
+
|
||||
+pass "plugin API enabled"
|
||||
+
|
||||
+# Look for the name we can dlopen in the test plugin's libtool control script.
|
||||
+set plugin_name [file_contents "$base_dir/libldtestplug.la"]
|
||||
+set plugin_name [regsub "'.*" [regsub ".*dlname='" "$plugin_name" ""] ""]
|
||||
+# Even though the API supports plugins it does not mean that the
|
||||
+# linker was configured with --enable-plugins. Check for that here.
|
||||
+if { $plugin_name == "" } {
|
||||
+ verbose "The linker is not configured to support plugins"
|
||||
+ return
|
||||
+}
|
||||
+verbose "plugin name is '$plugin_name'"
|
||||
+
|
||||
+set plugin2_name [file_contents "$base_dir/libldtestplug2.la"]
|
||||
+set plugin2_name [regsub "'.*" [regsub ".*dlname='" "$plugin2_name" ""] ""]
|
||||
+verbose "plugin2 name is '$plugin2_name'"
|
||||
+
|
||||
+set plugin3_name [file_contents "$base_dir/libldtestplug3.la"]
|
||||
+set plugin3_name [regsub "'.*" [regsub ".*dlname='" "$plugin3_name" ""] ""]
|
||||
+verbose "plugin3 name is '$plugin3_name'"
|
||||
+
|
||||
+set plugin4_name [file_contents "$base_dir/libldtestplug4.la"]
|
||||
+set plugin4_name [regsub "'.*" [regsub ".*dlname='" "$plugin4_name" ""] ""]
|
||||
+verbose "plugin4 name is '$plugin4_name'"
|
||||
+
|
||||
+# Use libtool to find full path to plugin rather than worrying
|
||||
+# about run paths or anything like that.
|
||||
+catch "exec $base_dir/libtool --config" lt_config
|
||||
+verbose "Full lt config: $lt_config" 3
|
||||
+# Look for "objdir=.libs"
|
||||
+regexp -line "^objdir=.*$" "$lt_config" lt_objdir
|
||||
+verbose "lt_objdir line is '$lt_objdir'" 3
|
||||
+set lt_objdir [regsub "objdir=" "$lt_objdir" ""]
|
||||
+set plugin_path "$base_dir/$lt_objdir/$plugin_name"
|
||||
+set plugin2_path "$base_dir/$lt_objdir/$plugin2_name"
|
||||
+set plugin3_path "$base_dir/$lt_objdir/$plugin3_name"
|
||||
+set plugin4_path "$base_dir/$lt_objdir/$plugin4_name"
|
||||
+verbose "Full plugin path $plugin_path" 2
|
||||
+verbose "Full plugin2 path $plugin2_path" 2
|
||||
+verbose "Full plugin3 path $plugin3_path" 2
|
||||
+verbose "Full plugin4 path $plugin4_path" 2
|
||||
+
|
||||
+set regclm "-plugin-opt registerclaimfile"
|
||||
+set regas "-plugin-opt registerallsymbolsread"
|
||||
+set regassilent "-plugin-opt registerallsymbolsreadsilent"
|
||||
+set regcln "-plugin-opt registercleanup"
|
||||
+
|
||||
+# In order to define symbols in plugin options in the list of tests below,
|
||||
+# we need to know if the platform prepends an underscore to C symbols,
|
||||
+# which we find out by compiling the test objects now. If there is any
|
||||
+# error compiling, we defer reporting it until after the list of tests has
|
||||
+# been initialised, so that we can use the names in the list to report;
|
||||
+# otherwise, we scan one of the files with 'nm' and look for a known symbol
|
||||
+# in the output to see if it is prefixed or not.
|
||||
+set failed_compile 0
|
||||
+set _ ""
|
||||
+set plugin_nm_output ""
|
||||
+set old_CFLAGS "$CFLAGS_FOR_TARGET"
|
||||
+append CFLAGS_FOR_TARGET " $NOSANITIZE_CFLAGS $NOLTO_CFLAGS"
|
||||
+if { [istarget m681*-*-*] || [istarget m68hc1*-*-*] || [istarget m9s12x*-*-*] } {
|
||||
+ # otherwise get FAILS due to _.frame
|
||||
+ append CFLAGS_FOR_TARGET " -fomit-frame-pointer"
|
||||
+}
|
||||
+
|
||||
+if { $can_compile && \
|
||||
+ (![ld_compile $CC_FOR_TARGET $srcdir/$subdir/main.c tmpdir/main.o] \
|
||||
+ || ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/func.c tmpdir/func.o] \
|
||||
+ || ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/text.c tmpdir/text.o] \
|
||||
+ || ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/pr20070a.c tmpdir/pr20070a.o] \
|
||||
+ || ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/dummy.s tmpdir/dummy.o] \
|
||||
+ || ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/pr17973.s tmpdir/pr17973.o]) } {
|
||||
+ # Defer fail until we have list of tests set.
|
||||
+ set failed_compile 1
|
||||
+}
|
||||
+
|
||||
+set dotsym 0
|
||||
+if { $can_compile && !$failed_compile } {
|
||||
+ # Find out if symbols have prefix on this platform before setting tests.
|
||||
+ catch "exec $NM tmpdir/func.o" plugin_nm_output
|
||||
+ if { [regexp "_func" "$plugin_nm_output"] } {
|
||||
+ set _ "_"
|
||||
+ }
|
||||
+ if { [regexp "\\.func" "$plugin_nm_output"] } {
|
||||
+ set dotsym 1
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+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"
|
||||
+set testsrcfiles_notext "tmpdir/main.o $srcdir/$subdir/func.c"
|
||||
+# Rather than having libs we just define dummy values for anything
|
||||
+# we may need to link a target exe; we aren't going to run it anyway.
|
||||
+set libs "[ld_link_defsyms] --defsym ${_}printf=${_}main --defsym ${_}puts=${_}main"
|
||||
+if { $dotsym } {
|
||||
+ append libs " --defsym .printf=.main --defsym .puts=.main"
|
||||
+}
|
||||
+if [is_pecoff_format] {
|
||||
+ #otherwise relocs overflow to symbols defined on the command line
|
||||
+ append libs " --image-base=0x10000000"
|
||||
+}
|
||||
+
|
||||
+set plugin_tests [list \
|
||||
+ [list "load plugin" "-plugin $plugin_path \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \
|
||||
+ [list "fail plugin onload" "-plugin $plugin_path -plugin-opt failonload \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-2.d}} "main.x" ] \
|
||||
+ [list "fail plugin allsymbolsread" "-plugin $plugin_path $regas \
|
||||
+ -plugin-opt failallsymbolsread \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-3.d}} "main.x" ] \
|
||||
+ [list "fail plugin cleanup" "-plugin $plugin_path -plugin-opt failcleanup \
|
||||
+ $regcln \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-4.d}} "main.x" ] \
|
||||
+ [list "plugin all hooks" "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-5.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile lost symbol" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-6.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile replace symbol" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-7.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile resolve symbol" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-8.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile replace file" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-9.d}} "main.x" ] \
|
||||
+ [list "load plugin with source" "-plugin $plugin_path $regclm \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-13.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile lost symbol with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-14.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile replace symbol with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-15.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile resolve symbol with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-16.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile replace file with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-17.d}} "main.x" ] \
|
||||
+ [list "load plugin with source not claimed" "-plugin $plugin_path $regclm \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-26.d}} "main.x" ] \
|
||||
+ [list "plugin fatal error" "-plugin $plugin2_path -plugin-opt fatal \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-27.d}} "main.x" ] \
|
||||
+ [list "plugin error" "-plugin $plugin2_path -plugin-opt error \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-28.d}} "main.x" ] \
|
||||
+ [list "plugin warning" "-plugin $plugin2_path -plugin-opt warning \
|
||||
+ $testobjfiles $libs" "" "" "" {{ld plugin-29.d}} "main.x" ] \
|
||||
+]
|
||||
+
|
||||
+if [check_shared_lib_support] {
|
||||
+ lappend plugin_tests [list "PR ld/17973" "-plugin $plugin2_path -shared $regassilent \
|
||||
+ -plugin-opt add:tmpdir/pr17973.o \
|
||||
+ tmpdir/dummy.o" "" "" "" {{readelf -sW pr17973.d}} "main.x" ]
|
||||
+}
|
||||
+
|
||||
+
|
||||
+set plugin_lib_tests [list \
|
||||
+ [list "plugin ignore lib" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-10.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile replace lib" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ -plugin-opt claim:tmpdir/libtext.a \
|
||||
+ -plugin-opt sym:${_}text::0:0:0 \
|
||||
+ -plugin-opt add:tmpdir/text.o \
|
||||
+ $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-11.d}} "main.x" ] \
|
||||
+ [list "plugin ignore lib with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ $testsrcfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-18.d}} "main.x" ] \
|
||||
+ [list "plugin claimfile replace lib with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:0:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ -plugin-opt claim:tmpdir/libtext.a \
|
||||
+ -plugin-opt sym:${_}text::0:0:0 \
|
||||
+ -plugin-opt add:tmpdir/text.o \
|
||||
+ $testsrcfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-19.d}} "main.x" ] \
|
||||
+ [list "plugin with empty archive" \
|
||||
+ "-plugin $plugin_path $regclm \
|
||||
+ -plugin-opt read:8 \
|
||||
+ $testobjfiles tmpdir/libempty.a $libs" "" "" "" {{ld plugin-30.d}} "main.x" ] \
|
||||
+]
|
||||
+
|
||||
+set plugin_extra_elf_tests [list \
|
||||
+ [list "plugin set symbol visibility" "-plugin $plugin_path $regclm \
|
||||
+ $regas $regcln -plugin-opt claim:tmpdir/func.o \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func1::0:1:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:2:0 \
|
||||
+ -plugin-opt sym:${_}func3::0:3:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ -plugin-opt add:tmpdir/func1p.o \
|
||||
+ -plugin-opt add:tmpdir/func2i.o \
|
||||
+ -plugin-opt add:tmpdir/func3h.o \
|
||||
+ $testobjfiles $libs --verbose=2" "" "" "" {{ld plugin-12.d} \
|
||||
+ {readelf -s plugin-vis-1.d}} "main.x" ] \
|
||||
+ [list "plugin set symbol visibility with source" \
|
||||
+ "-plugin $plugin_path $regclm $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/func.c \
|
||||
+ -plugin-opt sym:${_}func::0:0:0 \
|
||||
+ -plugin-opt sym:${_}func1::0:1:0 \
|
||||
+ -plugin-opt sym:${_}func2::0:2:0 \
|
||||
+ -plugin-opt sym:${_}func3::0:3:0 \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ -plugin-opt add:tmpdir/func.o \
|
||||
+ -plugin-opt add:tmpdir/func1p.o \
|
||||
+ -plugin-opt add:tmpdir/func2i.o \
|
||||
+ -plugin-opt add:tmpdir/func3h.o \
|
||||
+ $testsrcfiles $libs --verbose=2" "" "" "" {{ld plugin-12.d} \
|
||||
+ {readelf -s plugin-vis-1.d}} "main.x" ] \
|
||||
+]
|
||||
+
|
||||
+if { !$can_compile || $failed_compile } {
|
||||
+ foreach testitem $plugin_tests {
|
||||
+ unsupported [lindex $testitem 0]
|
||||
+ }
|
||||
+ if { [is_elf_format] } {
|
||||
+ foreach testitem $plugin_extra_elf_tests {
|
||||
+ unsupported [lindex $testitem 0]
|
||||
+ }
|
||||
+ }
|
||||
+ set CFLAGS_FOR_TARGET "$old_CFLAGS"
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+run_ld_link_tests $plugin_tests
|
||||
+
|
||||
+if { [is_elf_format] \
|
||||
+ && [ld_compile $CC_FOR_TARGET $srcdir/$subdir/func1p.c tmpdir/func1p.o] \
|
||||
+ && [ld_compile $CC_FOR_TARGET $srcdir/$subdir/func2i.c tmpdir/func2i.o] \
|
||||
+ && [ld_compile $CC_FOR_TARGET $srcdir/$subdir/func3h.c tmpdir/func3h.o] } {
|
||||
+ run_ld_link_tests $plugin_extra_elf_tests
|
||||
+}
|
||||
+
|
||||
+if {![ar_simple_create $ar "" "tmpdir/libtext.a" "tmpdir/text.o"] || \
|
||||
+ ![ar_simple_create $ar "" "tmpdir/libempty.a" ""]} {
|
||||
+ foreach testitem $plugin_lib_tests {
|
||||
+ unsupported [lindex $testitem 0]
|
||||
+ }
|
||||
+} else {
|
||||
+ run_ld_link_tests $plugin_lib_tests
|
||||
+}
|
||||
+
|
||||
+set plugin_src_tests [list \
|
||||
+ [list "plugin 2 with source lib" \
|
||||
+ "-plugin $plugin2_path $regclm $regas $regcln \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ tmpdir/main.o -Ltmpdir -ltext -lfunc $libs" "" "" "" {{ld plugin-20.d}} "main.x" ] \
|
||||
+ [list "load plugin 2 with source" \
|
||||
+ "-plugin $plugin2_path $regclm $regas $regcln \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-21.d}} "main.x" ] \
|
||||
+ [list "load plugin 2 with source and -r" \
|
||||
+ "-r -plugin $plugin2_path $regclm $regas $regcln \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-24.d}} "main.x" ] \
|
||||
+ [list "plugin 3 with source lib" \
|
||||
+ "-plugin $plugin3_path $regclm $regas $regcln \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ tmpdir/main.o -Ltmpdir -ltext -lfunc $libs" "" "" "" {{ld plugin-22.d}} "main.x" ] \
|
||||
+ [list "load plugin 3 with source" \
|
||||
+ "-plugin $plugin3_path $regclm $regas $regcln \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-23.d}} "main.x" ] \
|
||||
+ [list "load plugin 3 with source and -r" \
|
||||
+ "-r -plugin $plugin3_path $regclm $regas $regcln \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ $testsrcfiles $libs" "" "" "" {{ld plugin-25.d}} "main.x" ] \
|
||||
+]
|
||||
+
|
||||
+# Check if nm --plugin works.
|
||||
+set testname "nm --plugin"
|
||||
+set nm_plugin "$NM --plugin $plugin2_path $srcdir/$subdir/func.c"
|
||||
+catch "exec $nm_plugin" plugin_nm_output
|
||||
+send_log "$nm_plugin\n"
|
||||
+send_log "$plugin_nm_output\n"
|
||||
+if { [regexp "0+ T func" "$plugin_nm_output"] &&
|
||||
+ [regexp "0+ T _func" "$plugin_nm_output"] } {
|
||||
+ pass $testname
|
||||
+} else {
|
||||
+ fail $testname
|
||||
+}
|
||||
+
|
||||
+# Check if ar --plugin works.
|
||||
+file delete tmpdir/libfunc.a
|
||||
+if [ar_simple_create $ar "--plugin $plugin2_path" "tmpdir/libfunc.a" \
|
||||
+ "tmpdir/main.o $srcdir/$subdir/func.c"] {
|
||||
+ set testname "ar --plugin"
|
||||
+ set nm_plugin "$NM -s --plugin $plugin2_path tmpdir/libfunc.a"
|
||||
+ catch "exec $nm_plugin" plugin_nm_output
|
||||
+ send_log "$nm_plugin\n"
|
||||
+ send_log "$plugin_nm_output\n"
|
||||
+ if { [regexp "func in func.c" "$plugin_nm_output"] &&
|
||||
+ [regexp "_func in func.c" "$plugin_nm_output"] } {
|
||||
+ pass $testname
|
||||
+ run_ld_link_tests $plugin_src_tests
|
||||
+ } else {
|
||||
+ fail $testname
|
||||
+ }
|
||||
+} else {
|
||||
+ foreach testitem $plugin_src_tests {
|
||||
+ unsupported [lindex $testitem 0]
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+file delete tmpdir/libpr20070.a
|
||||
+if [ar_simple_create $ar "--plugin $plugin4_path" "tmpdir/libpr20070.a" \
|
||||
+ "$srcdir/$subdir/pr20070b.c"] {
|
||||
+ run_ld_link_tests [list \
|
||||
+ [list \
|
||||
+ "PR ld/20070" \
|
||||
+ "-Bstatic -plugin $plugin4_path $regclm \
|
||||
+ $regas $regcln \
|
||||
+ -plugin-opt claim:$srcdir/$subdir/pr20070b.c \
|
||||
+ -plugin-opt claim:tmpdir/libpr20070.a \
|
||||
+ -plugin-opt dumpresolutions \
|
||||
+ tmpdir/pr20070a.o tmpdir/text.o tmpdir/libpr20070.a $libs" \
|
||||
+ "" "" "" {{ld pr20070.d}} "pr20070.x" \
|
||||
+ ] \
|
||||
+ ]
|
||||
+} else {
|
||||
+ unsupported "PR ld/20070"
|
||||
+}
|
||||
+
|
||||
+set CFLAGS_FOR_TARGET "$old_CFLAGS"
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/pr20070.d binutils-2.38-new/ld/testsuite/ld-plugin/pr20070.d
|
||||
--- binutils-2.38/ld/testsuite/ld-plugin/pr20070.d 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-plugin/pr20070.d 2022-04-26 13:54:54.193534868 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-plugin/pr20070.d binutils-2.39-new/ld/testsuite/ld-plugin/pr20070.d
|
||||
--- binutils-2.39/ld/testsuite/ld-plugin/pr20070.d 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-plugin/pr20070.d 2022-10-30 12:41:31.099023768 +0100
|
||||
@@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI
|
||||
Sym: 'undef' Resolution: LDPR_UNDEF
|
||||
Sym: 'weakundef' Resolution: LDPR_UNDEF
|
||||
@ -691,9 +290,9 @@ diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-plugin/pr20070.d binut
|
||||
+#...
|
||||
hook called: cleanup.
|
||||
#...
|
||||
diff -rupN --no-dereference binutils-2.38/ld/testsuite/ld-srec/srec.exp binutils-2.38-new/ld/testsuite/ld-srec/srec.exp
|
||||
--- binutils-2.38/ld/testsuite/ld-srec/srec.exp 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ld/testsuite/ld-srec/srec.exp 2022-04-26 13:54:54.194534869 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ld/testsuite/ld-srec/srec.exp binutils-2.39-new/ld/testsuite/ld-srec/srec.exp
|
||||
--- binutils-2.39/ld/testsuite/ld-srec/srec.exp 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ld/testsuite/ld-srec/srec.exp 2022-10-30 12:41:31.099023768 +0100
|
||||
@@ -21,6 +21,8 @@
|
||||
|
||||
# Get the offset from an S-record line to the start of the data.
|
||||
|
||||
67
binutils-gas-dwarf-skip-empty-functions.patch
Normal file
67
binutils-gas-dwarf-skip-empty-functions.patch
Normal file
@ -0,0 +1,67 @@
|
||||
diff -rupN --no-dereference binutils-2.39/gas/dwarf2dbg.c binutils-2.39-new/gas/dwarf2dbg.c
|
||||
--- binutils-2.39/gas/dwarf2dbg.c 2022-07-08 11:46:47.000000000 +0200
|
||||
+++ binutils-2.39-new/gas/dwarf2dbg.c 2022-10-30 12:41:40.297023812 +0100
|
||||
@@ -2882,6 +2882,7 @@ out_debug_info (segT info_seg, segT abbr
|
||||
{
|
||||
const char *name;
|
||||
size_t len;
|
||||
+ expressionS size = { .X_op = O_constant };
|
||||
|
||||
/* Skip warning constructs (see above). */
|
||||
if (symbol_get_bfdsym (symp)->flags & BSF_WARNING)
|
||||
@@ -2895,6 +2896,18 @@ out_debug_info (segT info_seg, segT abbr
|
||||
if (!S_IS_DEFINED (symp) || !S_IS_FUNCTION (symp))
|
||||
continue;
|
||||
|
||||
+#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */
|
||||
+ size.X_add_number = S_GET_SIZE (symp);
|
||||
+ if (size.X_add_number == 0 && IS_ELF
|
||||
+ && symbol_get_obj (symp)->size != NULL)
|
||||
+ {
|
||||
+ size.X_op = O_add;
|
||||
+ size.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size);
|
||||
+ }
|
||||
+#endif
|
||||
+ if (size.X_op == O_constant && size.X_add_number == 0)
|
||||
+ continue;
|
||||
+
|
||||
subseg_set (str_seg, 0);
|
||||
name_sym = symbol_temp_new_now_octets ();
|
||||
name = S_GET_NAME (symp);
|
||||
@@ -2920,29 +2933,17 @@ out_debug_info (segT info_seg, segT abbr
|
||||
emit_expr (&exp, sizeof_address);
|
||||
|
||||
/* DW_AT_high_pc */
|
||||
- exp.X_op = O_constant;
|
||||
-#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */
|
||||
- exp.X_add_number = S_GET_SIZE (symp);
|
||||
- if (exp.X_add_number == 0 && IS_ELF
|
||||
- && symbol_get_obj (symp)->size != NULL)
|
||||
- {
|
||||
- exp.X_op = O_add;
|
||||
- exp.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size);
|
||||
- }
|
||||
-#else
|
||||
- exp.X_add_number = 0;
|
||||
-#endif
|
||||
if (DWARF2_VERSION < 4)
|
||||
{
|
||||
- if (exp.X_op == O_constant)
|
||||
- exp.X_op = O_symbol;
|
||||
- exp.X_add_symbol = symp;
|
||||
- emit_expr (&exp, sizeof_address);
|
||||
+ if (size.X_op == O_constant)
|
||||
+ size.X_op = O_symbol;
|
||||
+ size.X_add_symbol = symp;
|
||||
+ emit_expr (&size, sizeof_address);
|
||||
}
|
||||
- else if (exp.X_op == O_constant)
|
||||
- out_uleb128 (exp.X_add_number);
|
||||
+ else if (size.X_op == O_constant)
|
||||
+ out_uleb128 (size.X_add_number);
|
||||
else
|
||||
- emit_leb128_expr (symbol_get_value_expression (exp.X_op_symbol), 0);
|
||||
+ emit_leb128_expr (symbol_get_value_expression (size.X_op_symbol), 0);
|
||||
}
|
||||
|
||||
/* End of children. */
|
||||
@ -1,92 +0,0 @@
|
||||
diff -rupN --no-dereference binutils-2.38/gas/dwarf2dbg.c binutils-2.38-new/gas/dwarf2dbg.c
|
||||
--- binutils-2.38/gas/dwarf2dbg.c 2022-01-22 13:14:08.000000000 +0100
|
||||
+++ binutils-2.38-new/gas/dwarf2dbg.c 2022-04-26 13:55:04.339549352 +0200
|
||||
@@ -402,18 +402,27 @@ set_or_check_view (struct line_entry *e,
|
||||
if (viewx.X_op != O_constant || viewx.X_add_number)
|
||||
{
|
||||
expressionS incv;
|
||||
+ expressionS *p_view;
|
||||
|
||||
if (!p->loc.u.view)
|
||||
- {
|
||||
- p->loc.u.view = symbol_temp_make ();
|
||||
- gas_assert (!S_IS_DEFINED (p->loc.u.view));
|
||||
- }
|
||||
+ p->loc.u.view = symbol_temp_make ();
|
||||
|
||||
memset (&incv, 0, sizeof (incv));
|
||||
incv.X_unsigned = 1;
|
||||
incv.X_op = O_symbol;
|
||||
incv.X_add_symbol = p->loc.u.view;
|
||||
incv.X_add_number = 1;
|
||||
+ p_view = symbol_get_value_expression (p->loc.u.view);
|
||||
+ if (p_view->X_op == O_constant || p_view->X_op == O_symbol)
|
||||
+ {
|
||||
+ /* If we can, constant fold increments so that a chain of
|
||||
+ expressions v + 1 + 1 ... + 1 is not created.
|
||||
+ resolve_expression isn't ideal for this purpose. The
|
||||
+ base v might not be resolvable until later. */
|
||||
+ incv.X_op = p_view->X_op;
|
||||
+ incv.X_add_symbol = p_view->X_add_symbol;
|
||||
+ incv.X_add_number = p_view->X_add_number + 1;
|
||||
+ }
|
||||
|
||||
if (viewx.X_op == O_constant)
|
||||
{
|
||||
diff -rupN --no-dereference binutils-2.38/gas/symbols.c binutils-2.38-new/gas/symbols.c
|
||||
--- binutils-2.38/gas/symbols.c 2022-01-22 13:14:08.000000000 +0100
|
||||
+++ binutils-2.38-new/gas/symbols.c 2022-04-26 13:55:04.338549351 +0200
|
||||
@@ -61,8 +61,10 @@ struct symbol_flags
|
||||
/* Whether the symbol can be re-defined. */
|
||||
unsigned int volatil : 1;
|
||||
|
||||
- /* Whether the symbol is a forward reference. */
|
||||
+ /* Whether the symbol is a forward reference, and whether such has
|
||||
+ been determined. */
|
||||
unsigned int forward_ref : 1;
|
||||
+ unsigned int forward_resolved : 1;
|
||||
|
||||
/* This is set if the symbol is defined in an MRI common section.
|
||||
We handle such sections as single common symbols, so symbols
|
||||
@@ -202,7 +204,7 @@ static void *
|
||||
symbol_entry_find (htab_t table, const char *name)
|
||||
{
|
||||
hashval_t hash = htab_hash_string (name);
|
||||
- symbol_entry_t needle = { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
+ symbol_entry_t needle = { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
hash, name, 0, 0, 0 } };
|
||||
return htab_find_with_hash (table, &needle, hash);
|
||||
}
|
||||
@@ -784,7 +786,9 @@ symbol_clone (symbolS *orgsymP, int repl
|
||||
symbolS *
|
||||
symbol_clone_if_forward_ref (symbolS *symbolP, int is_forward)
|
||||
{
|
||||
- if (symbolP && !symbolP->flags.local_symbol)
|
||||
+ if (symbolP
|
||||
+ && !symbolP->flags.local_symbol
|
||||
+ && !symbolP->flags.forward_resolved)
|
||||
{
|
||||
symbolS *orig_add_symbol = symbolP->x->value.X_add_symbol;
|
||||
symbolS *orig_op_symbol = symbolP->x->value.X_op_symbol;
|
||||
@@ -837,6 +841,7 @@ symbol_clone_if_forward_ref (symbolS *sy
|
||||
|
||||
symbolP->x->value.X_add_symbol = add_symbol;
|
||||
symbolP->x->value.X_op_symbol = op_symbol;
|
||||
+ symbolP->flags.forward_resolved = 1;
|
||||
}
|
||||
|
||||
return symbolP;
|
||||
diff -rupN --no-dereference binutils-2.38/gas/testsuite/gas/elf/dwarf2-18.d binutils-2.38-new/gas/testsuite/gas/elf/dwarf2-18.d
|
||||
--- binutils-2.38/gas/testsuite/gas/elf/dwarf2-18.d 2022-01-22 13:14:08.000000000 +0100
|
||||
+++ binutils-2.38-new/gas/testsuite/gas/elf/dwarf2-18.d 2022-04-26 13:55:04.339549352 +0200
|
||||
@@ -2,9 +2,8 @@
|
||||
#readelf: -x.rodata -wL
|
||||
#name: DWARF2 18
|
||||
# The am33 cr16 crx ft32 mn10 msp430 nds32 and rl78 targets do not evaluate the subtraction of symbols at assembly time.
|
||||
-# The mep targets turns some view computations into complex relocations.
|
||||
# The riscv targets do not support the subtraction of symbols.
|
||||
-#xfail: am3*-* cr16-* crx-* ft32*-* mep-* mn10*-* msp430-* nds32*-* riscv*-* rl78-*
|
||||
+#xfail: am3*-* cr16-* crx-* ft32*-* mn10*-* msp430-* nds32*-* riscv*-* rl78-*
|
||||
|
||||
Hex dump of section '\.rodata':
|
||||
0x00000000 0100 *.*
|
||||
@ -1,6 +1,6 @@
|
||||
diff -rupN --no-dereference binutils-2.38/gold/i386.cc binutils-2.38-new/gold/i386.cc
|
||||
--- binutils-2.38/gold/i386.cc 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/gold/i386.cc 2022-04-26 13:55:00.467543824 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/gold/i386.cc binutils-2.39-new/gold/i386.cc
|
||||
--- binutils-2.39/gold/i386.cc 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/gold/i386.cc 2022-10-30 12:41:35.714023790 +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),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
158
binutils-ld-read-only-script.patch
Normal file
158
binutils-ld-read-only-script.patch
Normal file
@ -0,0 +1,158 @@
|
||||
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
|
||||
|
||||
236
binutils-libtool-lib64.patch
Normal file
236
binutils-libtool-lib64.patch
Normal file
@ -0,0 +1,236 @@
|
||||
diff -rcp ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
|
||||
--- a/bfd/configure 2010-04-08 14:53:48.000000000 +0100
|
||||
+++ b/bfd/configure 2010-04-08 14:56:50.000000000 +0100
|
||||
@@ -10762,10 +10762,34 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # find out which ABI we are using
|
||||
+ libsuff=
|
||||
+ case "$host_cpu" in
|
||||
+ x86_64*|s390*|powerpc*|ppc*|sparc*)
|
||||
+ echo 'int i;' > conftest.$ac_ext
|
||||
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
+ (eval $ac_compile) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; then
|
||||
+ case `/usr/bin/file conftest.$ac_objext` in
|
||||
+ *64-bit*)
|
||||
+ libsuff=64
|
||||
+ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
|
||||
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
+ fi
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ rm -rf conftest*
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
diff -rcp ../binutils-2.20.51.0.7.original/binutils/configure ./binutils/configure
|
||||
--- a/binutils/configure 2010-04-08 14:53:45.000000000 +0100
|
||||
+++ b/binutils/configure 2010-04-08 14:56:21.000000000 +0100
|
||||
@@ -10560,10 +10560,34 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # find out which ABI we are using
|
||||
+ libsuff=
|
||||
+ case "$host_cpu" in
|
||||
+ x86_64*|s390*|powerpc*|ppc*|sparc*)
|
||||
+ echo 'int i;' > conftest.$ac_ext
|
||||
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
+ (eval $ac_compile) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; then
|
||||
+ case `/usr/bin/file conftest.$ac_objext` in
|
||||
+ *64-bit*)
|
||||
+ libsuff=64
|
||||
+ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
|
||||
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
+ fi
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ rm -rf conftest*
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
diff -rcp ../binutils-2.20.51.0.7.original/gas/configure ./gas/configure
|
||||
--- a/gas/configure 2010-04-08 14:53:47.000000000 +0100
|
||||
+++ b/gas/configure 2010-04-08 14:57:24.000000000 +0100
|
||||
@@ -10547,10 +10547,34 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # find out which ABI we are using
|
||||
+ libsuff=
|
||||
+ case "$host_cpu" in
|
||||
+ x86_64*|s390*|powerpc*|ppc*|sparc*)
|
||||
+ echo 'int i;' > conftest.$ac_ext
|
||||
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
+ (eval $ac_compile) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; then
|
||||
+ case `/usr/bin/file conftest.$ac_objext` in
|
||||
+ *64-bit*)
|
||||
+ libsuff=64
|
||||
+ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
|
||||
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
+ fi
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ rm -rf conftest*
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
diff -rcp ../binutils-2.20.51.0.7.original/gprof/configure ./gprof/configure
|
||||
--- a/gprof/configure 2010-04-08 14:53:45.000000000 +0100
|
||||
+++ b/gprof/configure 2010-04-08 14:57:50.000000000 +0100
|
||||
@@ -10485,10 +10485,34 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # find out which ABI we are using
|
||||
+ libsuff=
|
||||
+ case "$host_cpu" in
|
||||
+ x86_64*|s390*|powerpc*|ppc*|sparc*)
|
||||
+ echo 'int i;' > conftest.$ac_ext
|
||||
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
+ (eval $ac_compile) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; then
|
||||
+ case `/usr/bin/file conftest.$ac_objext` in
|
||||
+ *64-bit*)
|
||||
+ libsuff=64
|
||||
+ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
|
||||
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
+ fi
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ rm -rf conftest*
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
diff -rcp ../binutils-2.20.51.0.7.original/ld/configure ./ld/configure
|
||||
--- a/ld/configure 2010-04-08 14:53:44.000000000 +0100
|
||||
+++ b/ld/configure 2010-04-08 14:58:21.000000000 +0100
|
||||
@@ -10966,10 +10966,34 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # find out which ABI we are using
|
||||
+ libsuff=
|
||||
+ case "$host_cpu" in
|
||||
+ x86_64*|s390*|powerpc*|ppc*|sparc*)
|
||||
+ echo 'int i;' > conftest.$ac_ext
|
||||
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
+ (eval $ac_compile) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; then
|
||||
+ case `/usr/bin/file conftest.$ac_objext` in
|
||||
+ *64-bit*)
|
||||
+ libsuff=64
|
||||
+ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
|
||||
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
+ fi
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ rm -rf conftest*
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
Only in .: .#libtool.m4
|
||||
Only in .: #libtool.m4#
|
||||
diff -rcp ../binutils-2.20.51.0.7.original/opcodes/configure ./opcodes/configure
|
||||
--- a/opcodes/configure 2010-04-08 14:53:45.000000000 +0100
|
||||
+++ b/opcodes/configure 2010-04-08 14:59:10.000000000 +0100
|
||||
@@ -10496,10 +10496,34 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # find out which ABI we are using
|
||||
+ libsuff=
|
||||
+ case "$host_cpu" in
|
||||
+ x86_64*|s390*|powerpc*|ppc*|sparc*)
|
||||
+ echo 'int i;' > conftest.$ac_ext
|
||||
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
+ (eval $ac_compile) 2>&5
|
||||
+ ac_status=$?
|
||||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
+ (exit $ac_status); }; then
|
||||
+ case `/usr/bin/file conftest.$ac_objext` in
|
||||
+ *64-bit*)
|
||||
+ libsuff=64
|
||||
+ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
|
||||
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
+ fi
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ rm -rf conftest*
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
@ -1,6 +1,6 @@
|
||||
diff -rupN --no-dereference binutils-2.38/ltmain.sh binutils-2.38-new/ltmain.sh
|
||||
--- binutils-2.38/ltmain.sh 2022-01-22 13:14:09.000000000 +0100
|
||||
+++ binutils-2.38-new/ltmain.sh 2022-04-26 13:55:02.394546575 +0200
|
||||
diff -rupN --no-dereference binutils-2.39/ltmain.sh binutils-2.39-new/ltmain.sh
|
||||
--- binutils-2.39/ltmain.sh 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/ltmain.sh 2022-10-30 12:41:38.049023801 +0100
|
||||
@@ -7103,6 +7103,7 @@ EOF
|
||||
rpath="$finalize_rpath"
|
||||
test "$mode" != relink && rpath="$compile_rpath$rpath"
|
||||
File diff suppressed because it is too large
Load Diff
197
binutils-package-metadata.patch
Normal file
197
binutils-package-metadata.patch
Normal file
@ -0,0 +1,197 @@
|
||||
diff -rupN --no-dereference binutils-2.39/elfcpp/elfcpp.h binutils-2.39-new/elfcpp/elfcpp.h
|
||||
--- binutils-2.39/elfcpp/elfcpp.h 2022-07-08 11:46:47.000000000 +0200
|
||||
+++ binutils-2.39-new/elfcpp/elfcpp.h 2022-10-30 12:41:39.175023806 +0100
|
||||
@@ -999,7 +999,9 @@ enum
|
||||
// string.
|
||||
NT_GNU_GOLD_VERSION = 4,
|
||||
// Program property note, as described in "Linux Extensions to the gABI".
|
||||
- NT_GNU_PROPERTY_TYPE_0 = 5
|
||||
+ NT_GNU_PROPERTY_TYPE_0 = 5,
|
||||
+ // FDO .note.package notes as defined on https://systemd.io/ELF_PACKAGE_METADATA/
|
||||
+ FDO_PACKAGING_METADATA = 0xcafe1a7e
|
||||
};
|
||||
|
||||
// The OS values which may appear in word 0 of a NT_GNU_ABI_TAG note.
|
||||
diff -rupN --no-dereference binutils-2.39/gold/configure.ac binutils-2.39-new/gold/configure.ac
|
||||
--- binutils-2.39/gold/configure.ac 2022-10-30 12:41:34.538023785 +0100
|
||||
+++ binutils-2.39-new/gold/configure.ac 2022-10-30 12:41:39.173023806 +0100
|
||||
@@ -591,6 +591,32 @@ if test "$threads" = "yes"; then
|
||||
fi
|
||||
AM_CONDITIONAL(THREADS, test "$threads" = "yes")
|
||||
|
||||
+# Used to validate --package-metadata= input. Disabled by default.
|
||||
+AC_ARG_ENABLE([jansson],
|
||||
+ [AS_HELP_STRING([--enable-jansson],
|
||||
+ [enable jansson [default=no]])],
|
||||
+ [enable_jansson=$enableval],
|
||||
+ [enable_jansson="no"])
|
||||
+
|
||||
+if test "x$enable_jansson" != "xno"; then
|
||||
+ PKG_PROG_PKG_CONFIG
|
||||
+ AS_IF([test -n "$PKG_CONFIG"],
|
||||
+ [
|
||||
+ PKG_CHECK_MODULES(JANSSON, [jansson],
|
||||
+ [
|
||||
+ AC_DEFINE(HAVE_JANSSON, 1, [The jansson library is to be used])
|
||||
+ AC_SUBST([JANSSON_CFLAGS])
|
||||
+ AC_SUBST([JANSSON_LIBS])
|
||||
+ ],
|
||||
+ [
|
||||
+ AC_MSG_ERROR([Cannot find jansson library])
|
||||
+ ])
|
||||
+ ],
|
||||
+ [
|
||||
+ AC_MSG_ERROR([Cannot find pkg-config])
|
||||
+ ])
|
||||
+fi
|
||||
+
|
||||
dnl We have to check these in C, not C++, because autoconf generates
|
||||
dnl tests which have no type information, and current glibc provides
|
||||
dnl multiple declarations of functions like basename when compiling
|
||||
diff -rupN --no-dereference binutils-2.39/gold/layout.cc binutils-2.39-new/gold/layout.cc
|
||||
--- binutils-2.39/gold/layout.cc 2022-10-30 12:41:33.405023779 +0100
|
||||
+++ binutils-2.39-new/gold/layout.cc 2022-10-30 12:41:39.174023806 +0100
|
||||
@@ -38,6 +38,9 @@
|
||||
#include <windows.h>
|
||||
#include <rpcdce.h>
|
||||
#endif
|
||||
+#ifdef HAVE_JANSSON
|
||||
+#include <jansson.h>
|
||||
+#endif
|
||||
|
||||
#include "parameters.h"
|
||||
#include "options.h"
|
||||
@@ -2439,6 +2442,7 @@ Layout::create_notes()
|
||||
this->create_gold_note();
|
||||
this->create_stack_segment();
|
||||
this->create_build_id();
|
||||
+ this->create_package_metadata();
|
||||
}
|
||||
|
||||
// Create the dynamic sections which are needed before we read the
|
||||
@@ -3536,6 +3540,52 @@ Layout::create_build_id()
|
||||
}
|
||||
}
|
||||
|
||||
+// If --package-metadata was used, set up the package metadata note.
|
||||
+// https://systemd.io/ELF_PACKAGE_METADATA/
|
||||
+
|
||||
+void
|
||||
+Layout::create_package_metadata()
|
||||
+{
|
||||
+ if (!parameters->options().user_set_package_metadata())
|
||||
+ return;
|
||||
+
|
||||
+ const char* desc = parameters->options().package_metadata();
|
||||
+ if (strcmp(desc, "") == 0)
|
||||
+ return;
|
||||
+
|
||||
+#ifdef HAVE_JANSSON
|
||||
+ json_error_t json_error;
|
||||
+ json_t *json = json_loads(desc, 0, &json_error);
|
||||
+ if (json)
|
||||
+ json_decref(json);
|
||||
+ else
|
||||
+ {
|
||||
+ gold_fatal(_("error: --package-metadata=%s does not contain valid "
|
||||
+ "JSON: %s\n"),
|
||||
+ desc, json_error.text);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
+ // Create the note.
|
||||
+ size_t trailing_padding;
|
||||
+ // Ensure the trailing NULL byte is always included, as per specification.
|
||||
+ size_t descsz = strlen(desc) + 1;
|
||||
+ Output_section* os = this->create_note("FDO", elfcpp::FDO_PACKAGING_METADATA,
|
||||
+ ".note.package", descsz, true,
|
||||
+ &trailing_padding);
|
||||
+ if (os == NULL)
|
||||
+ return;
|
||||
+
|
||||
+ Output_section_data* posd = new Output_data_const(desc, descsz, 4);
|
||||
+ os->add_output_section_data(posd);
|
||||
+
|
||||
+ if (trailing_padding != 0)
|
||||
+ {
|
||||
+ posd = new Output_data_zero_fill(trailing_padding, 0);
|
||||
+ os->add_output_section_data(posd);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
// If we have both .stabXX and .stabXXstr sections, then the sh_link
|
||||
// field of the former should point to the latter. I'm not sure who
|
||||
// started this, but the GNU linker does it, and some tools depend
|
||||
diff -rupN --no-dereference binutils-2.39/gold/layout.h binutils-2.39-new/gold/layout.h
|
||||
--- binutils-2.39/gold/layout.h 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/gold/layout.h 2022-10-30 12:41:39.174023806 +0100
|
||||
@@ -1107,6 +1107,10 @@ class Layout
|
||||
void
|
||||
create_build_id();
|
||||
|
||||
+ // Create a package metadata note if needed.
|
||||
+ void
|
||||
+ create_package_metadata();
|
||||
+
|
||||
// Link .stab and .stabstr sections.
|
||||
void
|
||||
link_stabs_sections();
|
||||
@@ -1453,6 +1457,8 @@ class Layout
|
||||
Gdb_index* gdb_index_data_;
|
||||
// The space for the build ID checksum if there is one.
|
||||
Output_section_data* build_id_note_;
|
||||
+ // The space for the package metadata JSON if there is one.
|
||||
+ Output_section_data* package_metadata_note_;
|
||||
// The output section containing dwarf abbreviations
|
||||
Output_reduced_debug_abbrev_section* debug_abbrev_;
|
||||
// The output section containing the dwarf debug info tree
|
||||
diff -rupN --no-dereference binutils-2.39/gold/Makefile.am binutils-2.39-new/gold/Makefile.am
|
||||
--- binutils-2.39/gold/Makefile.am 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/gold/Makefile.am 2022-10-30 12:41:39.173023806 +0100
|
||||
@@ -35,7 +35,7 @@ THREADFLAGS = @PTHREAD_CFLAGS@
|
||||
THREADLIBS = @PTHREAD_LIBS@
|
||||
|
||||
AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC) $(THREADFLAGS)
|
||||
-AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC) $(THREADFLAGS)
|
||||
+AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC) $(THREADFLAGS) $(JANSSON_CFLAGS)
|
||||
AM_LDFLAGS = $(THREADFLAGS)
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
@@ -187,7 +187,7 @@ libgold_a_LIBADD = $(LIBOBJS)
|
||||
sources_var = main.cc
|
||||
deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
|
||||
ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) \
|
||||
- $(THREADLIBS) $(LIBDL) $(ZLIB)
|
||||
+ $(THREADLIBS) $(LIBDL) $(ZLIB) $(JANSSON_LIBS)
|
||||
ldflags_var = $(GOLD_LDFLAGS)
|
||||
|
||||
ld_new_SOURCES = $(sources_var)
|
||||
@@ -201,12 +201,12 @@ incremental_dump_SOURCES = incremental-d
|
||||
incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \
|
||||
$(LIBINTL_DEP)
|
||||
incremental_dump_LDADD = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \
|
||||
- $(THREADLIBS) $(LIBDL) $(ZLIB)
|
||||
+ $(THREADLIBS) $(LIBDL) $(ZLIB) $(JANSSON_LIBS)
|
||||
|
||||
dwp_SOURCES = dwp.cc
|
||||
dwp_DEPENDENCIES = libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
|
||||
dwp_LDADD = libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) $(THREADLIBS) \
|
||||
- $(LIBDL) $(ZLIB)
|
||||
+ $(LIBDL) $(ZLIB) $(JANSSON_LIBS)
|
||||
dwp_LDFLAGS = $(GOLD_LDFLAGS)
|
||||
|
||||
CONFIG_STATUS_DEPENDENCIES = $(srcdir)/../bfd/development.sh
|
||||
diff -rupN --no-dereference binutils-2.39/gold/options.h binutils-2.39-new/gold/options.h
|
||||
--- binutils-2.39/gold/options.h 2022-07-08 11:46:48.000000000 +0200
|
||||
+++ binutils-2.39-new/gold/options.h 2022-10-30 12:41:39.175023806 +0100
|
||||
@@ -1102,6 +1102,10 @@ class General_options
|
||||
DEFINE_bool(p, options::ONE_DASH, 'p', false,
|
||||
N_("Ignored for ARM compatibility"), NULL);
|
||||
|
||||
+ DEFINE_optional_string(package_metadata, options::TWO_DASHES, '\0', NULL,
|
||||
+ N_("Generate package metadata note"),
|
||||
+ N_("[=JSON]"));
|
||||
+
|
||||
DEFINE_bool(pie, options::ONE_DASH, '\0', false,
|
||||
N_("Create a position independent executable"),
|
||||
N_("Do not create a position independent executable"));
|
||||
@ -1,7 +1,7 @@
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/readelf.c binutils-2.38-new/binutils/readelf.c
|
||||
--- binutils-2.38/binutils/readelf.c 2022-04-26 13:54:50.369529409 +0200
|
||||
+++ binutils-2.38-new/binutils/readelf.c 2022-04-26 13:54:51.333530785 +0200
|
||||
@@ -12991,11 +12991,13 @@ print_dynamic_symbol (Filedata *filedata
|
||||
diff -rupN --no-dereference binutils-2.39/binutils/readelf.c binutils-2.39-new/binutils/readelf.c
|
||||
--- binutils-2.39/binutils/readelf.c 2022-10-30 12:41:26.462023746 +0100
|
||||
+++ binutils-2.39-new/binutils/readelf.c 2022-10-30 12:41:27.687023752 +0100
|
||||
@@ -13177,11 +13177,13 @@ print_dynamic_symbol (Filedata *filedata
|
||||
unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
|
||||
|
||||
printf (" %-7s", get_symbol_visibility (vis));
|
||||
@ -15,7 +15,7 @@ diff -rupN --no-dereference binutils-2.38/binutils/readelf.c binutils-2.38-new/b
|
||||
}
|
||||
printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx));
|
||||
|
||||
@@ -13049,7 +13051,17 @@ print_dynamic_symbol (Filedata *filedata
|
||||
@@ -13235,7 +13237,17 @@ print_dynamic_symbol (Filedata *filedata
|
||||
version_string);
|
||||
}
|
||||
|
||||
@ -34,129 +34,3 @@ diff -rupN --no-dereference binutils-2.38/binutils/readelf.c binutils-2.38-new/b
|
||||
|
||||
if (ELF_ST_BIND (psym->st_info) == STB_LOCAL
|
||||
&& section != NULL
|
||||
diff -rupN --no-dereference binutils-2.38/binutils/readelf.c.orig binutils-2.38-new/binutils/readelf.c.orig
|
||||
--- binutils-2.38/binutils/readelf.c.orig 2022-04-26 13:54:50.375529417 +0200
|
||||
+++ binutils-2.38-new/binutils/readelf.c.orig 2022-04-26 13:54:49.332527928 +0200
|
||||
@@ -22327,46 +22327,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 = (bfd_size_type) statbuf.st_size;
|
||||
@@ -22374,33 +22381,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;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
36
binutils-update-linker-manual.patch
Normal file
36
binutils-update-linker-manual.patch
Normal file
@ -0,0 +1,36 @@
|
||||
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
|
||||
\&\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
|
||||
.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
|
||||
needed and older dynamic tags will be omitted. If you specify
|
||||
'--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
|
||||
@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
|
||||
-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 ELF systems.
|
||||
|
||||
@kindex --hash-size=@var{number}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
diff -rupN --no-dereference binutils-2.38/bfd/Makefile.am binutils-2.38-new/bfd/Makefile.am
|
||||
--- binutils-2.38/bfd/Makefile.am 2022-01-22 13:14:07.000000000 +0100
|
||||
+++ binutils-2.38-new/bfd/Makefile.am 2022-04-26 13:54:46.008523184 +0200
|
||||
@@ -977,8 +977,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD
|
||||
diff -rupN --no-dereference binutils-2.39/bfd/Makefile.am binutils-2.39-new/bfd/Makefile.am
|
||||
--- binutils-2.39/bfd/Makefile.am 2022-07-08 11:46:47.000000000 +0200
|
||||
+++ binutils-2.39-new/bfd/Makefile.am 2022-10-30 12:41:21.707023724 +0100
|
||||
@@ -973,8 +973,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.38/bfd/Makefile.am binutils-2.38-new/bfd/
|
||||
bfd_version_package="\"$(PKGVERSION)\"" ;\
|
||||
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
|
||||
. $(srcdir)/development.sh ;\
|
||||
@@ -989,7 +989,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
|
||||
@@ -985,7 +985,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.38/bfd/Makefile.am binutils-2.38-new/bfd/
|
||||
-e "s,@report_bugs_to@,$$report_bugs_to," \
|
||||
< $(srcdir)/version.h > $@; \
|
||||
echo "$${bfd_soversion}" > libtool-soversion
|
||||
diff -rupN --no-dereference binutils-2.38/bfd/Makefile.in binutils-2.38-new/bfd/Makefile.in
|
||||
--- binutils-2.38/bfd/Makefile.in 2022-02-09 12:45:13.000000000 +0100
|
||||
+++ binutils-2.38-new/bfd/Makefile.in 2022-04-26 13:54:46.008523184 +0200
|
||||
@@ -2094,8 +2094,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) $(MKDOC
|
||||
diff -rupN --no-dereference binutils-2.39/bfd/Makefile.in binutils-2.39-new/bfd/Makefile.in
|
||||
--- binutils-2.39/bfd/Makefile.in 2022-08-05 11:53:59.000000000 +0200
|
||||
+++ binutils-2.39-new/bfd/Makefile.in 2022-10-30 12:41:21.708023724 +0100
|
||||
@@ -2443,8 +2443,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.38/bfd/Makefile.in binutils-2.38-new/bfd/
|
||||
bfd_version_package="\"$(PKGVERSION)\"" ;\
|
||||
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
|
||||
. $(srcdir)/development.sh ;\
|
||||
@@ -2106,7 +2106,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
|
||||
@@ -2455,7 +2455,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
|
||||
fi ;\
|
||||
$(SED) -e "s,@bfd_version@,$$bfd_version," \
|
||||
-e "s,@bfd_version_string@,$$bfd_version_string," \
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
%global mingw_build_ucrt64 1
|
||||
|
||||
Name: mingw-binutils
|
||||
Version: 2.38
|
||||
Version: 2.39
|
||||
Release: 2%{?dist}
|
||||
Summary: Cross-compiled version of binutils for Win32 and Win64 environments
|
||||
|
||||
@ -92,57 +92,45 @@ Patch11: binutils-fix-testsuite-failures.patch
|
||||
# Lifetime: Fixed in 2.39 (maybe)
|
||||
Patch12: binutils-gold-mismatched-section-flags.patch
|
||||
|
||||
# Purpose: Add a check to the GOLD linker for a corrupt input file
|
||||
# with a fuzzed section offset.
|
||||
# Lifetime: Fixed in 2.39 (maybe)
|
||||
Patch13: binutils-CVE-2019-1010204.patch
|
||||
|
||||
# Purpose: Change the gold configuration script to only warn about
|
||||
# unsupported targets. This allows the binutils to be built with
|
||||
# BPF support enabled.
|
||||
# Lifetime: Permanent.
|
||||
Patch14: binutils-gold-warn-unsupported.patch
|
||||
|
||||
# Purpose: Use the "unsigned long long" type for pointers on hosts where
|
||||
# long is a 32-bit type but pointers are a 64-bit type. Necessary
|
||||
# because users expect to be able to install both the i686- and
|
||||
# x86_64 versions of binutils-devel on the same machine, so they
|
||||
# need to identical versions of the bfd.h header file.
|
||||
# Lifetime: Permanent.
|
||||
Patch15: binutils-use-long-long.patch
|
||||
Patch13: binutils-gold-warn-unsupported.patch
|
||||
|
||||
# Purpose: Fix testsuite failures due to the patches applied here.
|
||||
# Lifetime: Permanent, but varying with each new rebase.
|
||||
Patch16: binutils-testsuite-fixes.patch
|
||||
Patch14: binutils-testsuite-fixes.patch
|
||||
|
||||
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
|
||||
# linker for x86 binaries.
|
||||
# Lifetime: Fixed in 2.38 maybe
|
||||
Patch17: binutils-gold-i386-gnu-property-notes.patch
|
||||
Patch15: 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 ?)
|
||||
Patch18: binutils-autoconf-version.patch
|
||||
Patch16: binutils-autoconf-version.patch
|
||||
|
||||
# Purpose: Stop libtool from inserting useless runpaths into binaries.
|
||||
# Lifetime: Who knows.
|
||||
Patch19: gcc12-libtool-no-rpath.patch
|
||||
Patch17: binutils-libtool-no-rpath.patch
|
||||
|
||||
# Purpose: Add support for specifying section types in linker scripts.
|
||||
# Lifetime: Fixed in 2.39
|
||||
Patch20: binutils-section-type.patch
|
||||
# Purpose: Change ld man page so that it says that --enable-new-dtags is the default.
|
||||
# Lifetime: Permanent
|
||||
# Not needed, mingw does not ship man
|
||||
# Patch18: binutils-update-linker-manual.patch
|
||||
|
||||
# Purpose: Simplify the evaluation of assembler loc view expression chains.
|
||||
# Lifetime: Fixed in 2.39
|
||||
Patch21: binutils-gas-loc-view.patch
|
||||
# Purpose: Add a --package-metadata option to the linkers.
|
||||
# Lifetime: Fixed in 2.40
|
||||
Patch19: binutils-package-metadata.patch
|
||||
|
||||
# Purpose: Add an option to disable access to debuginfod servers.
|
||||
# Lifetime: Fixed in 2.39
|
||||
Patch22: binutils-do-not-use-debuginfod.patch
|
||||
# Purpose: Stop the assembler from generating DIE information for zero-sized functions.
|
||||
# Lifetime: Fixed in 2.40
|
||||
Patch20: binutils-gas-dwarf-skip-empty-functions.patch
|
||||
|
||||
# Backport proposed fix for https://sourceware.org/bugzilla/show_bug.cgi?id=29006
|
||||
Patch100: 29006.patch
|
||||
# Backport patch for CVE-2022-38533
|
||||
Patch21: CVE-2022-38533.patch
|
||||
|
||||
|
||||
BuildRequires: make
|
||||
@ -476,24 +464,44 @@ rm -rf %{buildroot}%{_mandir}/man1/*
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri May 06 2022 Richard W.M. Jones <rjones@redhat.com> - 2.38-2
|
||||
- Rebase to Fedora Rawhide
|
||||
resolves: rhbz#2080169
|
||||
* Sun Oct 30 2022 Sandro Mani <manisandro@gmail.com> - 2.39-2
|
||||
- Backport patch for CVE-2022-38533
|
||||
|
||||
* Thu Aug 12 2021 Richard W.M. Jones <rjones@redhat.com> - 2.37-1
|
||||
- Rebase to binutils 2.37
|
||||
resolves: rhbz#1953913
|
||||
* Tue Aug 16 2022 Sandro Mani <manisandro@gmail.com> - 2.39-1
|
||||
- Update to 2.39
|
||||
|
||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.34-10
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.38-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Apr 26 2021 Richard W.M. Jones <rjones@redhat.com> - 2.34-9
|
||||
- Add fix for broken CVE-2021-20197 fix
|
||||
related: rhbz#1951278
|
||||
* Tue Apr 26 2022 Sandro Mani <manisandro@gmail.com> - 2.38-2
|
||||
- Backport proposed fix for binutils #29006
|
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.34-8
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
* Fri Mar 11 2022 Sandro Mani <manisandro@gmail.com> - 2.38-1
|
||||
- Update to 2.38
|
||||
|
||||
* Wed Feb 23 2022 Marc-André Lureau <marcandre.lureau@redhat.com> - 2.37-5
|
||||
- Add ucrt64 target. Related to rhbz#2055254.
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.37-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Sat Dec 18 2021 Sandro Mani <manisandro@gmail.com> - 2.37-3
|
||||
- Backport fix for CVE-2021-45078
|
||||
|
||||
* Thu Aug 12 2021 Sandro Mani <manisandro@gmail.com> - 2.37-2
|
||||
- Drop man pages
|
||||
|
||||
* Sat Jul 24 2021 Sandro Mani <manisandro@gmail.com> - 2.37-1
|
||||
- Update to 2.37
|
||||
|
||||
* Sat Jul 24 2021 Sandro Mani <manisandro@gmail.com> - 2.36.1-3
|
||||
- Backport fix for "relocation truncated to fit" errors
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.36.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Sat Feb 13 2021 Sandro Mani <manisandro@gmail.com> - 2.36.1-1
|
||||
- Update to 2.36.1
|
||||
|
||||
* Thu Jan 28 2021 Richard W.M. Jones <rjones@redhat.com> - 2.34-7
|
||||
- Backport fixes for CVE-2021-20197.
|
||||
|
||||
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (binutils-2.38.tar.xz) = 8bf0b0d193c9c010e0518ee2b2e5a830898af206510992483b427477ed178396cd210235e85fd7bd99a96fc6d5eedbeccbd48317a10f752b7336ada8b2bb826d
|
||||
SHA512 (binutils-2.39.tar.xz) = 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
|
||||
|
||||
Loading…
Reference in New Issue
Block a user