commit:     2abd41e4abfcaf2cad94d37450e246446e751461
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 18 20:01:27 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Feb 18 20:01:27 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2abd41e4

sys-devel/dwz/files: drop unused patches

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-devel/dwz/files/dwz-0.15-gdb-15.patch       | 369 ------------------------
 sys-devel/dwz/files/dwz-0.15-lapack-crash.patch |  63 ----
 2 files changed, 432 deletions(-)

diff --git a/sys-devel/dwz/files/dwz-0.15-gdb-15.patch 
b/sys-devel/dwz/files/dwz-0.15-gdb-15.patch
deleted file mode 100644
index 3d1754f37ddc..000000000000
--- a/sys-devel/dwz/files/dwz-0.15-gdb-15.patch
+++ /dev/null
@@ -1,369 +0,0 @@
-https://sourceware.org/git/?p=dwz.git;a=commit;h=1ae37f476bc6c9f7a756fee4830766f03600866c
-
-From 1ae37f476bc6c9f7a756fee4830766f03600866c Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <[email protected]>
-Date: Wed, 2 Oct 2024 23:20:57 +0200
-Subject: [PATCH] Add support for version 9 .gdb_index
-
-Version 9 .gdb_index adds a new shortcut table. The table itself is
-just two offset_type values (2 * 4 bytes) describing the language of
-the main function expresses as an DW_LANG_ constant and the offset of
-the main function's name in the constant pool.
-
-The offset to the shortcut table in the header is between the symbol
-table and constant pool offsets.
-
-write_gdb_index explicitly copies the function's name into the new
-constant pool (if lang is not zero) because it might not be an offset
-to an existing name of a symbol.
-
-Some extra checks and warnings have been added to let the user know
-when parsing the .gdb_index fails. Add a const char *file argument to
-write_gdb_index for better error reporting.
-
-Add -D_GNU_SOURCE to Makefile CFLAGS_COMMON to use memrchr.
-
-This fixes the gdb-add-index.sh testcase with gdb 15+.
-
-https://sourceware.org/PR32146
---- a/Makefile
-+++ b/Makefile
-@@ -8,7 +8,7 @@ CFLAGS = -O2 -g
- DWZ_VERSION := $(shell cat $(srcdir)/VERSION)
- CFLAGS_VERSION = -DDWZ_VERSION='"$(DWZ_VERSION)"'
- CFLAGS_COPYRIGHT = $(shell cat $(srcdir)/COPYRIGHT_YEARS)
--CFLAGS_COMMON = -Wall -W -D_FILE_OFFSET_BITS=64
-+CFLAGS_COMMON = -Wall -W -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
- XXH_PROG = "\#define XXH_INLINE_ALL 1\n\#include <xxhash.h>\n"
- XXH_INLINE_ALL_WORKS = $(shell printf $(XXH_PROG) \
-               | $(CC) -xc -c - -o /dev/null 2>/dev/null \
---- a/dwz.c
-+++ b/dwz.c
-@@ -1,6 +1,7 @@
- /* Copyright (C) 2001-2021 Red Hat, Inc.
-    Copyright (C) 2003 Free Software Foundation, Inc.
-    Copyright (C) 2019-2021 SUSE LLC.
-+   Copyright (C) 2024 Mark J. Wielaard <[email protected]>
-    Written by Jakub Jelinek <[email protected]>, 2012.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -13222,12 +13223,13 @@ gdb_index_tu_cmp (const void *p, const void *q)
- /* Construct new .gdb_index section in malloced memory
-    if it needs adjustment.  */
- static void
--write_gdb_index (void)
-+write_gdb_index (const char *file)
- {
-   dw_cu_ref cu, cu_next, first_tu = NULL;
--  unsigned char *gdb_index, *ptr, *inptr, *end;
-+  unsigned char *gdb_index, *ptr, *inptr, *end, *conststart;
-   unsigned int ncus = 0, npus = 0, ntus = 0, ndelcus = 0, ver;
-   unsigned int culistoff, cutypesoff, addressoff, symboloff, constoff;
-+  unsigned int headersize, shortcutoff, nextoff;
-   unsigned int *tuindices = NULL, tuidx = 0, *cumap = NULL, i, j, k;
-   bool fail = false;
- 
-@@ -13235,14 +13237,27 @@ write_gdb_index (void)
-   if (likely (!op_multifile)
-       && (debug_sections[GDB_INDEX].data == NULL
-         || debug_sections[GDB_INDEX].size < 0x18))
--    return;
-+    {
-+      if (file && debug_sections[GDB_INDEX].data != NULL)
-+      error (0, 0, "%s: .gdb_index too small 0x%zx", file,
-+             debug_sections[GDB_INDEX].size);
-+      return;
-+    }
-   inptr = (unsigned char *) debug_sections[GDB_INDEX].data;
-   if (unlikely (op_multifile))
-     ver = multi_gdb_index_ver;
-   else
-     ver = buf_read_ule32 (inptr);
--  if (ver < 4 || ver > 8)
--    return;
-+  if (ver < 4 || ver > 9)
-+    {
-+      if (file)
-+      error (0, 0, "%s: Unknown .gdb_index section version 0x%x", file, ver);
-+      return;
-+    }
-+
-+  /* Version 9 added a shortcut table offset (4 bytes) between the
-+     address and symbol table offsets.  */
-+  headersize = ver < 9 ? 0x18 : 0x1c;
- 
-   for (cu = first_cu; cu; cu = cu->cu_next)
-     if (cu->cu_kind == CU_PU)
-@@ -13259,25 +13274,38 @@ write_gdb_index (void)
-   /* Starting with version 7 CU indexes are limited to 24 bits,
-      so if we have more CUs, give up.  */
-   if (npus + ncus + ntus - ndelcus >= (1U << 24))
--    return;
-+    {
-+      if (file)
-+      error (0, 0, "%s: Cannot write %u CUs to .gdb_index",
-+             file, npus + ncus + ntus - ndelcus);
-+      return;
-+    }
- 
-   if (unlikely (op_multifile))
-     {
-       assert (ncus == 0 && ntus == 0);
-+      /* Version 9 index contain an (empty) shortcut table of 2 32bit
-+       entries (8 byte).  */
-       debug_sections[GDB_INDEX].new_size
--      = 0x18 + npus * 16 + 16;
-+      = headersize + npus * 16 + 16 + (ver >= 9 ? 8 : 0);
-       gdb_index = malloc (debug_sections[GDB_INDEX].new_size);
-       if (gdb_index == NULL)
-       dwz_oom ();
-       debug_sections[GDB_INDEX].new_data = gdb_index;
-       /* Write new header.  */
-       buf_write_le32 (gdb_index + 0x00, ver);
--      buf_write_le32 (gdb_index + 0x04, 0x18);
--      buf_write_le32 (gdb_index + 0x08, 0x18 + npus * 16);
--      buf_write_le32 (gdb_index + 0x0c, 0x18 + npus * 16);
--      buf_write_le32 (gdb_index + 0x10, 0x18 + npus * 16);
--      buf_write_le32 (gdb_index + 0x14, 0x18 + npus * 16 + 16);
--      ptr = gdb_index + 0x18;
-+      buf_write_le32 (gdb_index + 0x04, headersize);
-+      buf_write_le32 (gdb_index + 0x08, headersize + npus * 16);
-+      buf_write_le32 (gdb_index + 0x0c, headersize + npus * 16);
-+      buf_write_le32 (gdb_index + 0x10, headersize + npus * 16);
-+      if (ver >= 9)
-+      {
-+        buf_write_le32 (gdb_index + 0x14, headersize + npus * 16 + 16);
-+        buf_write_le32 (gdb_index + 0x18, headersize + npus * 16 + 16 + 8);
-+      }
-+      else
-+      buf_write_le32 (gdb_index + 0x14, headersize + npus * 16 + 16);
-+      ptr = gdb_index + headersize;
-       /* Write new CU list.  */
-       for (cu = first_cu; cu; cu = cu->cu_next)
-       {
-@@ -13290,6 +13318,10 @@ write_gdb_index (void)
-       }
-       /* Write an empty hash table (with two entries).  */
-       memset (ptr, '\0', 16);
-+      /* Write an empty shortcut table (two zero offset types,
-+       indicating no main function or language).  */
-+      if (ver >= 9)
-+      memset (ptr + 16, '\0', 8);
-       return;
-     }
- 
-@@ -13297,18 +13329,34 @@ write_gdb_index (void)
-   cutypesoff = buf_read_ule32 (inptr + 0x08);
-   addressoff = buf_read_ule32 (inptr + 0x0c);
-   symboloff = buf_read_ule32 (inptr + 0x10);
--  constoff = buf_read_ule32 (inptr + 0x14);
--  if (culistoff != 0x18
--      || cutypesoff != 0x18 + ncus * 16
-+  if (ver >= 9)
-+    {
-+      shortcutoff = buf_read_ule32 (inptr + 0x14);
-+      constoff = buf_read_ule32 (inptr + 0x18);
-+      nextoff = shortcutoff;
-+    }
-+  else
-+    {
-+      shortcutoff = 0;
-+      constoff = buf_read_ule32 (inptr + 0x14);
-+      nextoff = constoff;
-+    }
-+
-+  if (culistoff != headersize
-+      || cutypesoff != headersize + ncus * 16
-       || addressoff != cutypesoff + ntus * 24
-       || symboloff < addressoff
-       || ((symboloff - addressoff) % 20) != 0
--      || constoff < symboloff
--      || ((constoff - symboloff) & (constoff - symboloff - 1)) != 0
--      || ((constoff - symboloff) & 7) != 0
-+      || nextoff < symboloff
-+      || ((nextoff - symboloff) & (nextoff - symboloff - 1)) != 0
-+      || ((nextoff - symboloff) & 7) != 0
-       || debug_sections[GDB_INDEX].size < constoff)
--    return;
--  inptr += 0x18;
-+    {
-+      if (file)
-+      error (0, 0, "%s: Unexpected offsets in .gdb_index", file);
-+      return;
-+    }
-+  inptr += headersize;
-   if (ndelcus)
-     cumap = (unsigned int *)
-           obstack_alloc (&ob2, ncus * sizeof (unsigned int));
-@@ -13319,6 +13367,8 @@ write_gdb_index (void)
-         {
-           if (cumap)
-             obstack_free (&ob2, (void *) cumap);
-+          if (file)
-+            error (0, 0, "%s: unexpected cu cu_offset in .gdb_index", file);
-           return;
-         }
-       inptr += 16;
-@@ -13353,6 +13403,8 @@ write_gdb_index (void)
-             obstack_free (&ob2, (void *) cumap);
-           else
-             obstack_free (&ob2, (void *) tuindices);
-+          if (file)
-+            error (0, 0, "%s: unexpected tui cu_offset in .gdb_index", file);
-           return;
-         }
-     }
-@@ -13375,8 +13427,16 @@ write_gdb_index (void)
-   buf_write_le32 (gdb_index + 0x08, cutypesoff + npus * 16 - ndelcus * 16);
-   buf_write_le32 (gdb_index + 0x0c, addressoff + npus * 16 - ndelcus * 16);
-   buf_write_le32 (gdb_index + 0x10, symboloff + npus * 16 - ndelcus * 16);
--  buf_write_le32 (gdb_index + 0x14, constoff + npus * 16 - ndelcus * 16);
--  ptr = gdb_index + 0x18;
-+  if (ver >= 9)
-+    {
-+      buf_write_le32 (gdb_index + 0x14,
-+                    shortcutoff + npus * 16 - ndelcus * 16);
-+      buf_write_le32 (gdb_index + 0x18,
-+                    constoff + npus * 16 - ndelcus * 16);
-+    }
-+  else
-+    buf_write_le32 (gdb_index + 0x14, constoff + npus * 16 - ndelcus * 16);
-+  ptr = gdb_index + headersize;
-   /* Write new CU list.  */
-   for (cu = first_cu; cu; cu = cu_next)
-     {
-@@ -13434,12 +13494,43 @@ write_gdb_index (void)
-       inptr += 20;
-     }
-   /* Copy the symbol hash table.  */
--  memcpy (ptr, inptr, constoff - symboloff);
-+  memcpy (ptr, inptr, nextoff - symboloff);
-   /* Clear the const pool initially.  */
--  memset (ptr + (constoff - symboloff), '\0',
-+  memset (ptr + (nextoff - symboloff) + (ver < 9 ? 0 : 8), '\0',
-         debug_sections[GDB_INDEX].size - constoff);
-+  /* Copy the shortcut table.  */
-+  if (ver >= 9)
-+    {
-+      unsigned char *inscptr = inptr + (nextoff - symboloff);
-+      unsigned char *scptr = ptr + (nextoff - symboloff);
-+      uint32_t lang = buf_read_ule32 (inscptr);
-+      uint32_t name = buf_read_ule32 (inscptr + 4);
-+      buf_write_le32 (scptr, lang);
-+      buf_write_le32 (scptr + 4, name);
-+
-+      /* If lang is not zero then put the name in the const table, it
-+       might not be an offset to the name of a symbol.  */
-+      if (lang != 0)
-+      {
-+        if (name > debug_sections[GDB_INDEX].size - constoff - 1
-+            || memrchr (debug_sections[GDB_INDEX].data
-+                        + debug_sections[GDB_INDEX].size, '\0',
-+                        debug_sections[GDB_INDEX].size
-+                        - constoff - name) == NULL)
-+          {
-+            error (0, 0, "%s: bad shortcut table name in .gdb_index", file);
-+            goto fail;
-+          }
-+        strcpy ((char *) ptr + (constoff - symboloff) + name,
-+                (char *) inptr + (constoff - symboloff) + name);
-+      }
-+    }
-   ptr = ptr + (constoff - symboloff);
--  end = inptr + (constoff - symboloff);
-+  end = inptr + (nextoff - symboloff);
-+  if (ver >= 9)
-+    conststart = end + (constoff - nextoff);
-+  else
-+    conststart = end;
-   /* Finally copy over const objects into the const pool, strings as is,
-      CU vectors with CU indexes adjusted.  */
-   while (inptr < end)
-@@ -13450,9 +13541,11 @@ write_gdb_index (void)
-       inptr += 8;
-       if (name == 0 && cuvec == 0)
-       continue;
--      if (name > debug_sections[GDB_INDEX].size - constoff - 1
--        || cuvec > debug_sections[GDB_INDEX].size - constoff - 4)
-+      if (name > debug_sections[GDB_INDEX].size - nextoff - 1
-+        || cuvec > debug_sections[GDB_INDEX].size - nextoff - 4)
-       {
-+        if (file)
-+          error (0, 0, "%s: name or cuvec too large in .gdb_index", file);
-       fail:
-         free (gdb_index);
-         debug_sections[GDB_INDEX].new_size = 0;
-@@ -13460,26 +13553,36 @@ write_gdb_index (void)
-       }
-       if (ptr[name] == '\0')
-       {
--        unsigned char *strend = end + name;
-+        unsigned char *strend = conststart + name;
-         while (*strend != '\0')
-           {
-             if (strend + 1
--                == end + (debug_sections[GDB_INDEX].size - constoff))
--              goto fail;
-+                == conststart + (debug_sections[GDB_INDEX].size - constoff))
-+              {
-+                if (file)
-+                  error (0, 0, "%s: name too large in .gdb_index", file);
-+                goto fail;
-+              }
-             strend++;
-           }
--        memcpy (ptr + name, end + name, strend + 1 - (end + name));
-+        memcpy (ptr + name, conststart + name,
-+                strend + 1 - (conststart + name));
-       }
-       if (buf_read_ule32 (ptr + cuvec) == 0)
-       {
--        unsigned int count = buf_read_ule32 (end + cuvec);
-+        unsigned int count = buf_read_ule32 (conststart + cuvec);
-         if (count * 4
-             > debug_sections[GDB_INDEX].size - constoff - cuvec - 4)
--          goto fail;
-+          {
-+            if (file)
-+              error (0, 0, "%s: count (%u) too large in .gdb_index",
-+                     file, count);
-+            goto fail;
-+          }
-         buf_write_le32 (ptr + cuvec, count);
-         for (i = 0; i < count; i++)
-           {
--            j = buf_read_ule32 (end + cuvec + (i + 1) * 4);
-+            j = buf_read_ule32 (conststart + cuvec + (i + 1) * 4);
-             if (ver >= 7)
-               k = j & ((1U << 24) - 1);
-             else
-@@ -13506,6 +13609,9 @@ write_gdb_index (void)
-     obstack_free (&ob2, (void *) tuindices);
-   if (fail)
-     {
-+      if (file)
-+      error (0, 0, "%s: fail in .gdb_index", file);
-+
-       free (debug_sections[GDB_INDEX].new_data);
-       debug_sections[GDB_INDEX].new_data = NULL;
-       debug_sections[GDB_INDEX].new_size = 0;
-@@ -15549,7 +15655,7 @@ dwz (const char *file, const char *outfile, struct 
file_result *res)
-             report_progress ();
-             fprintf (stderr, "write_gdb_index\n");
-           }
--        write_gdb_index ();
-+        write_gdb_index (file);
-         /* These sections are optional and it is unclear
-            how to adjust them.  Just remove them.  */
-         debug_sections[DEBUG_PUBNAMES].new_data = NULL;
-@@ -15808,7 +15914,7 @@ optimize_multifile (unsigned int *die_count)
- 
-         write_abbrev ();
-         write_info (die_count);
--        write_gdb_index ();
-+        write_gdb_index (NULL);
-         if (write_multifile_line ())
-           goto fail;
-       }
--- 
-2.43.5

diff --git a/sys-devel/dwz/files/dwz-0.15-lapack-crash.patch 
b/sys-devel/dwz/files/dwz-0.15-lapack-crash.patch
deleted file mode 100644
index b587aa622b22..000000000000
--- a/sys-devel/dwz/files/dwz-0.15-lapack-crash.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-https://sourceware.org/PR32934
-https://sourceware.org/git/?p=dwz.git;a=commit;h=ed021b829933e5f9ee90587196ba941c30ac832a
-
-From ed021b829933e5f9ee90587196ba941c30ac832a Mon Sep 17 00:00:00 2001
-From: Tom de Vries <[email protected]>
-Date: Mon, 12 May 2025 14:01:40 +0200
-Subject: [PATCH] Fix double free in compute_abbrevs
-
-PR32934 reports an abort in obstack_free after a double free.
-
-The relevant code is in compute_abbrevs:
-...
-  t = (struct abbrev_tag *)
-      obstack_alloc (&ob2,
-                     sizeof (*t)
-                     + (max_nattr + 4) * sizeof (struct abbrev_attr)
-                     + (max_nattr + 4) * sizeof (int64_t));
-  ...
-  obstack_free (&ob2, (void *) t);
-  cuarr = (dw_cu_ref *) obstack_alloc (&ob2, ncus * sizeof (dw_cu_ref));
-  ...
-  obstack_free (&ob2, (void *) t);
-...
-
-The following happens:
-- t is allocated
-- t is freed
-- cuarr is allocated
-- t is freed.
-
-Usually, cuarr == t, so effectively cuarr is freed.
-
-But in the case of the PR, cuarr != t, so t is freed twice, triggering the
-abort.
-
-Fix this by freeing cuarr instead.
-
-Tested on x86_64-linux.
-
-Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32934
-
-2025-05-12  Tom de Vries  <[email protected]>
-
-       * dwz.c (compute_abbrevs): Free cuarr instead of double-freeing t.
----
- dwz.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dwz.c b/dwz.c
-index da4121f..a27eb4d 100644
---- a/dwz.c
-+++ b/dwz.c
-@@ -11813,7 +11813,7 @@ compute_abbrevs (DSO *dso)
-       }
-       obstack_free (&ob2, (void *) arr);
-     }
--  obstack_free (&ob2, (void *) t);
-+  obstack_free (&ob2, (void *) cuarr);
-   for (cu = first_cu; cu; cu = cu->cu_next)
-     {
-       struct abbrev_tag **arr;
--- 
-2.43.5

Reply via email to