commit 496cbaf
Michael Forney
·
2026-04-30 01:22:36 +0000 UTC
parent 625043f
binutils: Various portability fixes
5 files changed,
+126,
-2
+1,
-1
1@@ -61,7 +61,7 @@ sub('libiberty.ninja', function()
2 obstack.c
3 partition.c pexecute.c physmem.c
4 pex-common.c pex-one.c
5- pex-unix.c vprintf-support.c
6+ pex-unix.c
7 rust-demangle.c
8 safe-ctype.c
9 simple-object.c simple-object-coff.c
1@@ -0,0 +1,61 @@
2+From 7ef6b16d688b3a7911e1cb41384630bb188635f8 Mon Sep 17 00:00:00 2001
3+From: Michael Forney <mforney@mforney.org>
4+Date: Sat, 25 Apr 2026 17:24:26 -0700
5+Subject: [PATCH] x86: expand non-standard a...b case labels
6+
7+---
8+ gas/config/tc-i386-ginsn.c | 17 ++++++++++++-----
9+ 1 file changed, 12 insertions(+), 5 deletions(-)
10+
11+diff --git a/gas/config/tc-i386-ginsn.c b/gas/config/tc-i386-ginsn.c
12+index 89bd6f3a0da..951683dfdd0 100644
13+--- a/gas/config/tc-i386-ginsn.c
14++++ b/gas/config/tc-i386-ginsn.c
15+@@ -833,7 +833,8 @@ x86_ginsn_new (const symbolS *insn_end_sym, enum ginsn_gen_mode gmode)
16+ gas_assert (!ginsn_link_next (ginsn, ginsn_next));
17+ break;
18+
19+- case 0x50 ... 0x57:
20++ case 0x50: case 0x51: case 0x52: case 0x53:
21++ case 0x54: case 0x55: case 0x56: case 0x57:
22+ if (i.tm.opcode_space != SPACE_BASE)
23+ break;
24+ /* push reg. */
25+@@ -853,7 +854,8 @@ x86_ginsn_new (const symbolS *insn_end_sym, enum ginsn_gen_mode gmode)
26+ gas_assert (!ginsn_link_next (ginsn, ginsn_next));
27+ break;
28+
29+- case 0x58 ... 0x5f:
30++ case 0x58: case 0x59: case 0x5a: case 0x5b:
31++ case 0x5c: case 0x5d: case 0x5e: case 0x5f:
32+ if (i.tm.opcode_space != SPACE_BASE)
33+ break;
34+ /* pop reg. */
35+@@ -897,7 +899,10 @@ x86_ginsn_new (const symbolS *insn_end_sym, enum ginsn_gen_mode gmode)
36+ /* PS: Opcodes 0x80 ... 0x8f with opcode_space SPACE_0F are present
37+ only after relaxation. They do not need to be handled for ginsn
38+ creation. */
39+- case 0x70 ... 0x7f:
40++ case 0x70: case 0x71: case 0x72: case 0x73:
41++ case 0x74: case 0x75: case 0x76: case 0x77:
42++ case 0x78: case 0x79: case 0x7a: case 0x7b:
43++ case 0x7c: case 0x7d: case 0x7e: case 0x7f:
44+ if (i.tm.opcode_space != SPACE_BASE)
45+ break;
46+ ginsn = x86_ginsn_jump (insn_end_sym, true);
47+@@ -1061,8 +1066,10 @@ x86_ginsn_new (const symbolS *insn_end_sym, enum ginsn_gen_mode gmode)
48+ ginsn = x86_ginsn_leave (insn_end_sym);
49+ break;
50+
51+- case 0xe0 ... 0xe2: /* loop / loope / loopne. */
52+- case 0xe3: /* jecxz / jrcxz. */
53++ case 0xe0: /* loop. */
54++ case 0xe1: /* loope. */
55++ case 0xe2: /* loopne. */
56++ case 0xe3: /* jecxz / jrcxz. */
57+ if (i.tm.opcode_space != SPACE_BASE)
58+ break;
59+ ginsn = x86_ginsn_jump (insn_end_sym, true);
60+--
61+2.49.0
62+
1@@ -0,0 +1,36 @@
2+From 290e477112bdf59ff1b4bd93b5fe6d039a2ec385 Mon Sep 17 00:00:00 2001
3+From: Michael Forney <mforney@mforney.org>
4+Date: Sat, 25 Apr 2026 17:23:44 -0700
5+Subject: [PATCH] libsframe: remove stray semicolons at top-level
6+
7+The SFRAME_ABI_REG_MAP ends with the closing brace of a function
8+definition, and the ISO C grammar does not allow empty declarations.
9+
10+libsframe/
11+ * sframe-dump.c: Remove stray semicolons at top-level.
12+
13+Signed-off-by: Michael Forney <mforney@mforney.org>
14+---
15+ libsframe/sframe-dump.c | 6 +++---
16+ 1 file changed, 3 insertions(+), 3 deletions(-)
17+
18+diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c
19+index 56cf963566e..b43ceec5b89 100644
20+--- a/libsframe/sframe-dump.c
21++++ b/libsframe/sframe-dump.c
22+@@ -50,9 +50,9 @@ typedef struct
23+
24+ /* Create a map for each supported arch specifying DWARF register numbers for
25+ stack pointer and frame pointer. */
26+-SFRAME_ABI_REG_MAP (amd64, SFRAME_SP (7), SFRAME_FP (6));
27+-SFRAME_ABI_REG_MAP (aarch64, SFRAME_SP (31), SFRAME_FP (29));
28+-SFRAME_ABI_REG_MAP (s390x, SFRAME_SP (15), SFRAME_FP (11));
29++SFRAME_ABI_REG_MAP (amd64, SFRAME_SP (7), SFRAME_FP (6))
30++SFRAME_ABI_REG_MAP (aarch64, SFRAME_SP (31), SFRAME_FP (29))
31++SFRAME_ABI_REG_MAP (s390x, SFRAME_SP (15), SFRAME_FP (11))
32+
33+ static const char *
34+ sframe_get_reg_name (uint8_t abi_arch, unsigned int reg_num, char *buf,
35+--
36+2.49.0
37+
1@@ -0,0 +1,27 @@
2+From 69576e75720d7a1c847791c575df2ec7f97495a7 Mon Sep 17 00:00:00 2001
3+From: Michael Forney <mforney@mforney.org>
4+Date: Wed, 29 Apr 2026 18:20:37 -0700
5+Subject: [PATCH] libiberty: use vasprintf to implement xvasprintf
6+
7+---
8+ libiberty/xvasprintf.c | 5 ++---
9+ 1 file changed, 2 insertions(+), 3 deletions(-)
10+
11+diff --git a/libiberty/xvasprintf.c b/libiberty/xvasprintf.c
12+index 3f022d1814b..26eaa6a25ff 100644
13+--- a/libiberty/xvasprintf.c
14++++ b/libiberty/xvasprintf.c
15+@@ -54,8 +54,7 @@ xvasprintf (const char *format,
16+ #endif
17+ {
18+ char *result;
19+- int total_width = libiberty_vprintf_buffer_size (format, args);
20+- result = (char *) xmalloc (total_width);
21+- vsprintf (result, format, args);
22++ if (vasprintf (&result, format, args) < 0)
23++ xmalloc_failed (0);
24+ return result;
25+ }
26+--
27+2.49.0
28+
+1,
-1
1@@ -1 +1 @@
2-2.46.0
3+2.46.0 r1