Rebase to 2.40.
Retire: binutils-package-metadata.patch Retire: binutils-gas-dwarf-skip-empty-functions.patch Retire: binutils-CVE-38128-dwarf-abbrev-parsing.patch Retire: binutils-readelf-no-sections.patch Retire: binutils-libiberty-configure-compile-warnings.patch Retire: binutils-CVE-2022-4285.patch
This commit is contained in:
parent
6bfd06790b
commit
d8e1d9b57a
1
.gitignore
vendored
1
.gitignore
vendored
@ -69,3 +69,4 @@ stamp-*
|
|||||||
/binutils-2.37.tar.xz
|
/binutils-2.37.tar.xz
|
||||||
/binutils-2.38.tar.xz
|
/binutils-2.38.tar.xz
|
||||||
/binutils-2.39.tar.xz
|
/binutils-2.39.tar.xz
|
||||||
|
/binutils-2.40.tar.xz
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
--- binutils.orig/bfd/elf.c 2022-12-13 15:21:20.040233487 +0000
|
|
||||||
+++ binutils-2.39/bfd/elf.c 2022-12-13 15:22:33.580986232 +0000
|
|
||||||
@@ -8868,7 +8868,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd
|
|
||||||
bfd_set_error (bfd_error_file_too_big);
|
|
||||||
goto error_return_verref;
|
|
||||||
}
|
|
||||||
- elf_tdata (abfd)->verref = (Elf_Internal_Verneed *) bfd_alloc (abfd, amt);
|
|
||||||
+ if (amt == 0)
|
|
||||||
+ goto error_return_verref;
|
|
||||||
+ elf_tdata (abfd)->verref = (Elf_Internal_Verneed *) bfd_zalloc (abfd, amt);
|
|
||||||
if (elf_tdata (abfd)->verref == NULL)
|
|
||||||
goto error_return_verref;
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
|||||||
--- binutils.orig/binutils/dwarf.c 2022-08-31 11:58:08.918685348 +0100
|
|
||||||
+++ binutils-2.39/binutils/dwarf.c 2022-08-31 15:24:13.881865797 +0100
|
|
||||||
@@ -6365,7 +6365,11 @@ display_debug_abbrev (struct dwarf_secti
|
|
||||||
list->start_of_next_abbrevs = start;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- start = list->start_of_next_abbrevs;
|
|
||||||
+ {
|
|
||||||
+ if (start == list->start_of_next_abbrevs)
|
|
||||||
+ break;
|
|
||||||
+ start = list->start_of_next_abbrevs;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (list->first_abbrev == NULL)
|
|
||||||
continue;
|
|
@ -1,7 +1,7 @@
|
|||||||
diff -rup binutils.orig/configure binutils-2.30/configure
|
diff -rup binutils.orig/configure binutils-2.40/configure
|
||||||
--- binutils.orig/configure 2018-09-24 17:50:06.967172922 +0100
|
--- binutils.orig/configure 2023-02-13 14:43:00.728877170 +0000
|
||||||
+++ binutils-2.30/configure 2018-09-24 17:51:16.648624865 +0100
|
+++ binutils-2.40/configure 2023-02-13 14:43:13.671864892 +0000
|
||||||
@@ -4996,49 +4996,6 @@ if test -z "$LD"; then
|
@@ -5442,49 +5442,6 @@ if test -z "$LD"; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -51,10 +51,10 @@ diff -rup binutils.orig/configure binutils-2.30/configure
|
|||||||
|
|
||||||
|
|
||||||
if test -n "$ac_tool_prefix"; then
|
if test -n "$ac_tool_prefix"; then
|
||||||
diff -rup binutils.orig/configure.ac binutils-2.30/configure.ac
|
diff -rup binutils.orig/configure.ac binutils-2.40/configure.ac
|
||||||
--- binutils.orig/configure.ac 2018-09-24 17:50:07.241170767 +0100
|
--- binutils.orig/configure.ac 2023-02-13 14:43:00.728877170 +0000
|
||||||
+++ binutils-2.30/configure.ac 2018-09-24 17:50:29.908992486 +0100
|
+++ binutils-2.40/configure.ac 2023-02-13 14:43:13.671864892 +0000
|
||||||
@@ -1288,26 +1288,6 @@ if test -z "$LD"; then
|
@@ -1435,26 +1435,6 @@ if test -z "$LD"; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -79,5 +79,7 @@ diff -rup binutils.orig/configure.ac binutils-2.30/configure.ac
|
|||||||
-fi
|
-fi
|
||||||
-
|
-
|
||||||
ACX_PROG_GNAT
|
ACX_PROG_GNAT
|
||||||
|
ACX_PROG_GDC
|
||||||
ACX_PROG_CMP_IGNORE_INITIAL
|
ACX_PROG_CMP_IGNORE_INITIAL
|
||||||
|
Only in binutils-2.40: configure.ac.orig
|
||||||
|
Only in binutils-2.40: configure.orig
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
--- binutils.orig/binutils/readelf.c 2021-07-19 12:39:14.206556025 +0100
|
diff -rup binutils.orig/binutils/readelf.c binutils-2.40/binutils/readelf.c
|
||||||
+++ binutils-2.37/binutils/readelf.c 2021-07-19 12:44:37.712728732 +0100
|
--- binutils.orig/binutils/readelf.c 2023-02-13 14:38:44.081029276 +0000
|
||||||
@@ -21873,45 +21873,52 @@ process_file (char * file_name)
|
+++ binutils-2.40/binutils/readelf.c 2023-02-13 14:38:56.201022315 +0000
|
||||||
|
@@ -22858,46 +22858,53 @@ process_file (char * file_name)
|
||||||
|
Filedata * filedata = NULL;
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
char armag[SARMAG];
|
char armag[SARMAG];
|
||||||
bool ret = true;
|
- bool ret = true;
|
||||||
|
+ bool ret = false;
|
||||||
+ char * name;
|
+ char * name;
|
||||||
+ char * saved_program_name;
|
+ char * saved_program_name;
|
||||||
+
|
+
|
||||||
@ -66,8 +69,8 @@
|
|||||||
+ goto done;
|
+ goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
filedata->file_size = (bfd_size_type) statbuf.st_size;
|
filedata->file_size = statbuf.st_size;
|
||||||
@@ -21919,33 +21926,39 @@ process_file (char * file_name)
|
@@ -22905,33 +22912,39 @@ process_file (char * file_name)
|
||||||
|
|
||||||
if (memcmp (armag, ARMAG, SARMAG) == 0)
|
if (memcmp (armag, ARMAG, SARMAG) == 0)
|
||||||
{
|
{
|
||||||
@ -121,14 +124,4 @@
|
|||||||
|
|
||||||
free (ba_cache.strtab);
|
free (ba_cache.strtab);
|
||||||
ba_cache.strtab = NULL;
|
ba_cache.strtab = NULL;
|
||||||
--- binutils.orig/binutils/readelf.c 2021-08-10 10:15:22.088016072 +0100
|
Only in binutils-2.40/binutils: readelf.c.orig
|
||||||
+++ binutils-2.37/binutils/readelf.c 2021-08-10 10:15:55.567907891 +0100
|
|
||||||
@@ -21884,7 +21884,7 @@ 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;
|
|
||||||
|
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
From b53c44bfe31fb036f212275b6d70edd5eee7b088 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Beulich via Binutils <binutils@sourceware.org>
|
|
||||||
Date: Tue, 9 Aug 2022 13:12:03 +0200
|
|
||||||
Subject: [PATCH] gas/Dwarf: properly skip zero-size functions
|
|
||||||
|
|
||||||
PR gas/29451
|
|
||||||
|
|
||||||
While out_debug_abbrev() properly skips such functions, out_debug_info()
|
|
||||||
mistakenly didn't. It needs to calculate the high_pc expression ahead of
|
|
||||||
time, in order to skip emitting any data for the function if the value
|
|
||||||
is zero.
|
|
||||||
|
|
||||||
The one case which would still leave a zero-size entry is when
|
|
||||||
symbol_get_obj(symp)->size ends up evaluating to zero. I hope we can
|
|
||||||
expect that to not be the case, otherwise we'd need to have a way to
|
|
||||||
post-process .debug_info contents between resolving expressions and
|
|
||||||
actually writing the data out to the file. Even then it wouldn't be
|
|
||||||
entirely obvious in which way to alter the data.
|
|
||||||
---
|
|
||||||
gas/dwarf2dbg.c | 39 ++++++++++++++++++++-------------------
|
|
||||||
1 file changed, 20 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
|
|
||||||
index 868ec79ee2c..f346bd6a412 100644
|
|
||||||
--- a/gas/dwarf2dbg.c
|
|
||||||
+++ b/gas/dwarf2dbg.c
|
|
||||||
@@ -2882,6 +2882,7 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
{
|
|
||||||
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 abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
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 abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
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. */
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,283 +0,0 @@
|
|||||||
diff -rup binutils.orig/libiberty/acinclude.m4 binutils-2.39/libiberty/acinclude.m4
|
|
||||||
--- binutils.orig/libiberty/acinclude.m4 2022-11-23 14:41:57.639262100 +0000
|
|
||||||
+++ binutils-2.39/libiberty/acinclude.m4 2022-11-23 14:43:07.139042148 +0000
|
|
||||||
@@ -24,6 +24,8 @@ AC_CACHE_CHECK([for working strncmp], ac
|
|
||||||
[AC_TRY_RUN([
|
|
||||||
/* Test by Jim Wilson and Kaveh Ghazi.
|
|
||||||
Check whether strncmp reads past the end of its string parameters. */
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_H
|
|
||||||
@@ -51,7 +53,8 @@ AC_CACHE_CHECK([for working strncmp], ac
|
|
||||||
|
|
||||||
#define MAP_LEN 0x10000
|
|
||||||
|
|
||||||
-main ()
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
|
|
||||||
char *p;
|
|
||||||
@@ -157,7 +160,10 @@ if test $ac_cv_os_cray = yes; then
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
|
|
||||||
-[AC_TRY_RUN([find_stack_direction ()
|
|
||||||
+[AC_TRY_RUN([#include <stdlib.h>
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+find_stack_direction (void)
|
|
||||||
{
|
|
||||||
static char *addr = 0;
|
|
||||||
auto char dummy;
|
|
||||||
@@ -169,7 +175,9 @@ AC_CACHE_CHECK(stack direction for C all
|
|
||||||
else
|
|
||||||
return (&dummy > addr) ? 1 : -1;
|
|
||||||
}
|
|
||||||
-main ()
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
exit (find_stack_direction() < 0);
|
|
||||||
}],
|
|
||||||
diff -rup binutils.orig/libiberty/configure binutils-2.39/libiberty/configure
|
|
||||||
--- binutils.orig/libiberty/configure 2022-11-23 14:41:57.652262059 +0000
|
|
||||||
+++ binutils-2.39/libiberty/configure 2022-11-23 14:46:31.556395168 +0000
|
|
||||||
@@ -1766,7 +1766,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) >= 0)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1783,7 +1783,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1810,7 +1810,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) < 0)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1827,7 +1827,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1862,7 +1862,7 @@ while test "x$ac_lo" != "x$ac_hi"; do
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1892,7 +1892,7 @@ static unsigned long int ulongval () { r
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
FILE *f = fopen ("conftest.val", "w");
|
|
||||||
@@ -1952,7 +1952,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
if (sizeof ($2))
|
|
||||||
return 0;
|
|
||||||
@@ -1965,7 +1965,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
if (sizeof (($2)))
|
|
||||||
return 0;
|
|
||||||
@@ -2037,7 +2037,7 @@ choke me
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
return $2 ();
|
|
||||||
;
|
|
||||||
@@ -2077,7 +2077,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#ifndef $as_decl_name
|
|
||||||
#ifdef __cplusplus
|
|
||||||
@@ -3459,7 +3459,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <stdio.h>
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
printf ("hello world\n");
|
|
||||||
;
|
|
||||||
@@ -3487,7 +3487,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3627,7 +3627,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <stdio.h>
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
FILE *f = fopen ("conftest.out", "w");
|
|
||||||
return ferror (f) || fclose (f) != 0;
|
|
||||||
@@ -3692,7 +3692,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3743,7 +3743,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#ifndef __GNUC__
|
|
||||||
choke me
|
|
||||||
@@ -3784,7 +3784,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3799,7 +3799,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3815,7 +3815,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3901,7 +3901,7 @@ int pairnames (int, char **, FILE *(*)(s
|
|
||||||
int argc;
|
|
||||||
char **argv;
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
|
|
||||||
;
|
|
||||||
@@ -6919,7 +6919,10 @@ else
|
|
||||||
else
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
-find_stack_direction ()
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+find_stack_direction (void)
|
|
||||||
{
|
|
||||||
static char *addr = 0;
|
|
||||||
auto char dummy;
|
|
||||||
@@ -6931,7 +6934,9 @@ find_stack_direction ()
|
|
||||||
else
|
|
||||||
return (&dummy > addr) ? 1 : -1;
|
|
||||||
}
|
|
||||||
-main ()
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (int)
|
|
||||||
{
|
|
||||||
exit (find_stack_direction() < 0);
|
|
||||||
}
|
|
||||||
@@ -7756,6 +7761,8 @@ else
|
|
||||||
|
|
||||||
/* Test by Jim Wilson and Kaveh Ghazi.
|
|
||||||
Check whether strncmp reads past the end of its string parameters. */
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_H
|
|
||||||
@@ -7783,7 +7790,8 @@ else
|
|
||||||
|
|
||||||
#define MAP_LEN 0x10000
|
|
||||||
|
|
||||||
-main ()
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
|
|
||||||
char *p;
|
|
||||||
diff -rup binutils.orig/gas/acinclude.m4 binutils-2.39/gas/acinclude.m4
|
|
||||||
--- binutils.orig/gas/acinclude.m4 2022-11-23 14:56:11.793442492 +0000
|
|
||||||
+++ binutils-2.39/gas/acinclude.m4 2022-11-23 14:59:17.778057190 +0000
|
|
||||||
@@ -23,6 +23,7 @@ AC_DEFUN([GAS_WORKING_ASSERT],
|
|
||||||
[AC_MSG_CHECKING([for working assert macro])
|
|
||||||
AC_CACHE_VAL(gas_cv_assert_ok,
|
|
||||||
AC_TRY_LINK([#include <assert.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <stdio.h>], [
|
|
||||||
/* check for requoting problems */
|
|
||||||
static int a, b, c, d;
|
|
||||||
diff -rup binutils.orig/gas/configure binutils-2.39/gas/configure
|
|
||||||
--- binutils.orig/gas/configure 2022-11-23 14:56:12.402441231 +0000
|
|
||||||
+++ binutils-2.39/gas/configure 2022-11-23 14:59:37.266016817 +0000
|
|
||||||
@@ -13758,6 +13758,7 @@ else
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <assert.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
int
|
|
||||||
main ()
|
|
@ -1,197 +0,0 @@
|
|||||||
diff -rup binutils.orig/gold/Makefile.am binutils-2.38/gold/Makefile.am
|
|
||||||
--- binutils.orig/gold/Makefile.am 2022-08-04 11:11:01.788495165 +0100
|
|
||||||
+++ binutils-2.38/gold/Makefile.am 2022-08-04 11:12:26.124013955 +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 -rup binutils.orig/gold/configure.ac binutils-2.38/gold/configure.ac
|
|
||||||
--- binutils.orig/gold/configure.ac 2022-08-04 11:11:01.783495194 +0100
|
|
||||||
+++ binutils-2.38/gold/configure.ac 2022-08-04 11:12:26.124013955 +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 -rup binutils.orig/gold/layout.cc binutils-2.38/gold/layout.cc
|
|
||||||
--- binutils.orig/gold/layout.cc 2022-08-04 11:11:01.783495194 +0100
|
|
||||||
+++ binutils-2.38/gold/layout.cc 2022-08-04 11:12:26.125013949 +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 -rup binutils.orig/gold/layout.h binutils-2.38/gold/layout.h
|
|
||||||
--- binutils.orig/gold/layout.h 2022-08-04 11:11:01.788495165 +0100
|
|
||||||
+++ binutils-2.38/gold/layout.h 2022-08-04 11:12:26.125013949 +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 -rup binutils.orig/gold/options.h binutils-2.38/gold/options.h
|
|
||||||
--- binutils.orig/gold/options.h 2022-08-04 11:11:01.785495182 +0100
|
|
||||||
+++ binutils-2.38/gold/options.h 2022-08-04 11:12:26.125013949 +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"));
|
|
||||||
diff -rup binutils.orig/elfcpp/elfcpp.h binutils-2.38/elfcpp/elfcpp.h
|
|
||||||
--- binutils.orig/elfcpp/elfcpp.h 2022-08-04 11:11:00.940500003 +0100
|
|
||||||
+++ binutils-2.38/elfcpp/elfcpp.h 2022-08-04 11:12:26.124013955 +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.
|
|
@ -1,29 +0,0 @@
|
|||||||
--- binutils.orig/binutils/readelf.c 2022-10-03 13:20:42.707527855 +0100
|
|
||||||
+++ binutils-2.39/binutils/readelf.c 2022-10-03 13:21:25.785436781 +0100
|
|
||||||
@@ -6357,6 +6357,13 @@ get_32bit_section_headers (Filedata * fi
|
|
||||||
/* PR binutils/17531: Cope with unexpected section header sizes. */
|
|
||||||
if (size == 0 || num == 0)
|
|
||||||
return false;
|
|
||||||
+
|
|
||||||
+ /* The section header cannot be at the start of the file - that is
|
|
||||||
+ where the ELF file header is located. A file with absolutely no
|
|
||||||
+ sections in it will use a shoff of 0. */
|
|
||||||
+ if (filedata->file_header.e_shoff == 0)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
if (size < sizeof * shdrs)
|
|
||||||
{
|
|
||||||
if (! probe)
|
|
||||||
@@ -6421,6 +6428,12 @@ get_64bit_section_headers (Filedata * fi
|
|
||||||
if (size == 0 || num == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
+ /* The section header cannot be at the start of the file - that is
|
|
||||||
+ where the ELF file header is located. A file with absolutely no
|
|
||||||
+ sections in it will use a shoff of 0. */
|
|
||||||
+ if (filedata->file_header.e_shoff == 0)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
if (size < sizeof * shdrs)
|
|
||||||
{
|
|
||||||
if (! probe)
|
|
@ -123,82 +123,6 @@ diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.29.1/ld
|
|||||||
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144
|
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d 2017-11-15 13:32:39.408064384 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d 2017-11-15 15:19:48.097433680 +0000
|
|
||||||
@@ -19,7 +19,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d 2017-11-15 13:32:39.401064469 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d 2017-11-15 15:10:56.077760324 +0000
|
|
||||||
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d 2017-11-15 13:32:39.405064420 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d 2017-11-15 15:10:42.828916844 +0000
|
|
||||||
@@ -19,6 +19,7 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
+#pass
|
|
||||||
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d 2017-11-15 13:32:39.416064288 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d 2017-11-15 15:11:11.550577531 +0000
|
|
||||||
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d 2017-11-15 13:32:39.411064348 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d 2017-11-15 15:09:52.664509478 +0000
|
|
||||||
@@ -19,7 +19,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d 2017-11-15 13:32:39.413064324 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d 2017-11-15 15:11:22.975442559 +0000
|
|
||||||
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 13:32:39.417064276 +0000
|
--- binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 13:32:39.417064276 +0000
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 15:05:02.950932110 +0000
|
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 15:05:02.950932110 +0000
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: binutils%{?_with_debug:-debug}
|
Name: binutils%{?_with_debug:-debug}
|
||||||
Version: 2.39
|
Version: 2.40
|
||||||
Release: 10%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://sourceware.org/binutils
|
URL: https://sourceware.org/binutils
|
||||||
|
|
||||||
@ -235,57 +235,33 @@ Patch12: binutils-gold-mismatched-section-flags.patch
|
|||||||
# Lifetime: Permanent.
|
# Lifetime: Permanent.
|
||||||
Patch13: binutils-gold-warn-unsupported.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.
|
|
||||||
Patch14: binutils-testsuite-fixes.patch
|
|
||||||
|
|
||||||
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
|
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
|
||||||
# linker for x86 binaries.
|
# linker for x86 binaries.
|
||||||
# Lifetime: Fixed in 2.38 maybe
|
# Lifetime: Permanent.
|
||||||
Patch15: binutils-gold-i386-gnu-property-notes.patch
|
Patch14: binutils-gold-i386-gnu-property-notes.patch
|
||||||
|
|
||||||
# Purpose: Allow the binutils to be configured with any (recent) version of
|
# Purpose: Allow the binutils to be configured with any (recent) version of
|
||||||
# autoconf.
|
# autoconf.
|
||||||
# Lifetime: Fixed in 2.39 (maybe ?)
|
# Lifetime: Fixed in 2.39 (maybe ?)
|
||||||
Patch16: binutils-autoconf-version.patch
|
Patch15: binutils-autoconf-version.patch
|
||||||
|
|
||||||
# Purpose: Stop libtool from inserting useless runpaths into binaries.
|
# Purpose: Stop libtool from inserting useless runpaths into binaries.
|
||||||
# Lifetime: Who knows.
|
# Lifetime: Who knows.
|
||||||
Patch17: binutils-libtool-no-rpath.patch
|
Patch16: binutils-libtool-no-rpath.patch
|
||||||
|
|
||||||
%if %{enable_new_dtags}
|
%if %{enable_new_dtags}
|
||||||
# Purpose: Change ld man page so that it says that --enable-new-dtags is the default.
|
# Purpose: Change ld man page so that it says that --enable-new-dtags is the default.
|
||||||
# Lifetime: Permanent
|
# Lifetime: Permanent
|
||||||
Patch18: binutils-update-linker-manual.patch
|
Patch17: binutils-update-linker-manual.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Purpose: Add a --package-metadata option to the linkers.
|
|
||||||
# Lifetime: Fixed in 2.40
|
|
||||||
Patch19: binutils-package-metadata.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
|
|
||||||
|
|
||||||
# Purpose: Stop an infinite loop in the binutils DWARF decoder. (CVE 2022-38128)
|
|
||||||
# Lifetime: Fixed in 2.40
|
|
||||||
Patch21: binutils-CVE-38128-dwarf-abbrev-parsing.patch
|
|
||||||
|
|
||||||
# Purpose: Stop readelf from incorrectly decoding ELF files with no sections.
|
|
||||||
# Lifetime: Fixed in 2.40
|
|
||||||
Patch22: binutils-readelf-no-sections.patch
|
|
||||||
|
|
||||||
# Purpose: Stop compile time warnings from configure test files in the libiberty directory.
|
|
||||||
# Lifetime: Fixed in 2.40
|
|
||||||
Patch23: binutils-libiberty-configure-compile-warnings.patch
|
|
||||||
|
|
||||||
# Purpose: Fix a potential reference of a NULL pointer.
|
|
||||||
# Lifetime: Fixed in 2.40
|
|
||||||
Patch24: binutils-CVE-2022-4285.patch
|
|
||||||
|
|
||||||
# Purpose: Speed up objcopy's note merging algorithm.
|
# Purpose: Speed up objcopy's note merging algorithm.
|
||||||
# Lifetime: Fixed in 2.41
|
# Lifetime: Fixed in 2.41
|
||||||
Patch25: binutils-objcopy-note-merge-speedup.patch
|
Patch18: binutils-objcopy-note-merge-speedup.patch
|
||||||
|
|
||||||
|
# # Purpose: Fix testsuite failures due to the patches applied here.
|
||||||
|
# # Lifetime: Permanent, but varying with each new rebase.
|
||||||
|
Patch19: binutils-testsuite-fixes.patch
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -788,8 +764,13 @@ run_tests()
|
|||||||
pushd build-$target
|
pushd build-$target
|
||||||
|
|
||||||
if test x$native == x1 ; then
|
if test x$native == x1 ; then
|
||||||
make -k check < /dev/null || :
|
make -k check-gas check-binutils check-ld < /dev/null
|
||||||
|
%if %{with gold}
|
||||||
|
# The GOLD testsuite always returns an error code, even if no tests fail.
|
||||||
|
make -k check-gold < /dev/null || :
|
||||||
|
%endif
|
||||||
else
|
else
|
||||||
|
# Do not try running linking tests for the cross-binutils.
|
||||||
make -k check-gas check-binutils < /dev/null || :
|
make -k check-gas check-binutils < /dev/null || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1146,6 +1127,7 @@ exit 0
|
|||||||
%{_infodir}/ld.info.*
|
%{_infodir}/ld.info.*
|
||||||
%{_infodir}/bfd.info.*
|
%{_infodir}/bfd.info.*
|
||||||
%{_infodir}/ctf-spec.info.*
|
%{_infodir}/ctf-spec.info.*
|
||||||
|
%{_infodir}/sframe-spec.info.*
|
||||||
%exclude %{_infodir}/gprofng*
|
%exclude %{_infodir}/gprofng*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1217,6 +1199,15 @@ exit 0
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 13 2023 Nick Clifton <nickc@redhat.com> - 2.40-1
|
||||||
|
- Rebase to 2.40.
|
||||||
|
- Retire: binutils-package-metadata.patch
|
||||||
|
- Retire: binutils-gas-dwarf-skip-empty-functions.patch
|
||||||
|
- Retire: binutils-CVE-38128-dwarf-abbrev-parsing.patch
|
||||||
|
- Retire: binutils-readelf-no-sections.patch
|
||||||
|
- Retire: binutils-libiberty-configure-compile-warnings.patch
|
||||||
|
- Retire: binutils-CVE-2022-4285.patch
|
||||||
|
|
||||||
* Tue Jan 31 2023 Nick Clifton <nickc@redhat.com> - 2.39-10
|
* Tue Jan 31 2023 Nick Clifton <nickc@redhat.com> - 2.39-10
|
||||||
- Spec File: Add (disabled by default) support for cross-builds of the binutils.
|
- Spec File: Add (disabled by default) support for cross-builds of the binutils.
|
||||||
|
|
||||||
|
3
sources
3
sources
@ -1,2 +1 @@
|
|||||||
SHA512 (binutils-2.39.tar.xz) = 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
|
SHA512 (binutils-2.40.tar.xz) = a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925
|
||||||
SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2
|
|
||||||
|
Loading…
Reference in New Issue
Block a user