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
+61, -0
 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+
+36, -0
 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+
+27, -0
 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