Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package numactl for openSUSE:Factory checked in at 2026-02-21 21:01:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/numactl (Old) and /work/SRC/openSUSE:Factory/.numactl.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "numactl" Sat Feb 21 21:01:05 2026 rev:80 rq:1334018 version:2.0.19.27.gc9475de Changes: -------- --- /work/SRC/openSUSE:Factory/numactl/numactl.changes 2025-08-14 11:36:20.356122031 +0200 +++ /work/SRC/openSUSE:Factory/.numactl.new.1977/numactl.changes 2026-02-21 21:01:34.211929711 +0100 @@ -1,0 +2,18 @@ +Thu Feb 19 15:05:53 UTC 2026 - [email protected] + +- Update to version 2.0.19.27.gc9475de: + * Fix: distance test avoid out-of-bounds write causing segfault + * test: use sizeof(int) instead of sizeof(int *) for status and nodes + * Fix off-by-one bug in arguments to mbind/get_mempolicy/set_mempolicy + * __atomic_compare_exchange_n may fail and cause a segmentation fault so use strong variation + * remove extra whitespace + * Set _GNU_SOURCE more broadly + * Change a #warning to #pragma message + * Handle parallel allocation races with other thread for node mask + * Fix numademo regression on kernels without weighted interleave + * Enable numa_fail_alloc_on_error to improve error messages + * Add numa_fail_alloc_on_error + * Add numa_exit_on_warn to header file + * Fix out of memory handling buffer growing for nodes probing + +------------------------------------------------------------------- Old: ---- numactl-2.0.19.14.g690a72c.obscpio New: ---- numactl-2.0.19.27.gc9475de.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ numactl.spec ++++++ --- /var/tmp/diff_new_pack.7ktiXX/_old 2026-02-21 21:01:35.711991209 +0100 +++ /var/tmp/diff_new_pack.7ktiXX/_new 2026-02-21 21:01:35.711991209 +0100 @@ -1,7 +1,7 @@ # # spec file for package numactl # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: numactl -Version: 2.0.19.14.g690a72c +Version: 2.0.19.27.gc9475de Release: 0 Summary: NUMA Policy Control License: GPL-2.0-only ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.7ktiXX/_old 2026-02-21 21:01:35.767993505 +0100 +++ /var/tmp/diff_new_pack.7ktiXX/_new 2026-02-21 21:01:35.775993833 +0100 @@ -3,6 +3,6 @@ <param name="url">https://github.com/numactl/numactl</param> <param name="changesrevision">4bfdcc6e6111c5bf5d4ccb46f227aea80cc57159</param></service><service name="tar_scm"> <param name="url">http://github.com/numactl/numactl</param> - <param name="changesrevision">690a72cabb010d02c910f54782641737bf947e77</param></service></servicedata> + <param name="changesrevision">c9475de805517966a87a3c6d17f7c91d5955a128</param></service></servicedata> (No newline at EOF) ++++++ numactl-2.0.19.14.g690a72c.obscpio -> numactl-2.0.19.27.gc9475de.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/clearcache.c new/numactl-2.0.19.27.gc9475de/clearcache.c --- old/numactl-2.0.19.14.g690a72c/clearcache.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/clearcache.c 2026-02-02 03:28:06.000000000 +0100 @@ -71,7 +71,7 @@ for (; cl <= endcl; cl += 64) asm ("fc %0" :: "r"(cl) : "memory" ); #else -#warning "Consider adding a clearcache implementation for your architecture" +#pragma message "Consider adding a clearcache implementation for your architecture" fallback_clearcache(); #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/distance.c new/numactl-2.0.19.27.gc9475de/distance.c --- old/numactl-2.0.19.14.g690a72c/distance.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/distance.c 2026-02-02 03:28:06.000000000 +0100 @@ -16,7 +16,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA All calls are undefined when numa_available returns an error. */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <errno.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/libnuma.c new/numactl-2.0.19.27.gc9475de/libnuma.c --- old/numactl-2.0.19.14.g690a72c/libnuma.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/libnuma.c 2026-02-02 03:28:06.000000000 +0100 @@ -17,7 +17,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA All calls are undefined when numa_available returns an error. */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE #include <stdlib.h> #include <stdio.h> #include <unistd.h> @@ -84,6 +84,7 @@ int numa_exit_on_error = 0; int numa_exit_on_warn = 0; +int numa_fail_alloc_on_error = 0; static void set_sizes(void); /* @@ -310,21 +311,33 @@ static void setpol(int policy, struct bitmask *bmp) { - if (set_mempolicy(policy, bmp->maskp, bmp->size + 1) < 0) + if (set_mempolicy(policy, bmp->maskp, bmp->size) < 0) numa_error("set_mempolicy"); } static void getpol(int *oldpolicy, struct bitmask *bmp) { - if (get_mempolicy(oldpolicy, bmp->maskp, bmp->size + 1, 0, 0) < 0) + if (get_mempolicy(oldpolicy, bmp->maskp, bmp->size, 0, 0) < 0) numa_error("get_mempolicy"); } -static void dombind(void *mem, size_t size, int pol, struct bitmask *bmp) +static int dombind(void *mem, size_t size, int pol, struct bitmask *bmp) { - if (mbind(mem, size, pol, bmp ? bmp->maskp : NULL, bmp ? bmp->size + 1 : 0, - mbind_flags) < 0) + if (mbind(mem, size, pol, bmp ? bmp->maskp : NULL, bmp ? bmp->size : 0, + mbind_flags) < 0) { numa_error("mbind"); + return -1; + } + return 0; +} + +static void *dombind_or_free(void *mem, size_t size, int pol, struct bitmask *bmp) +{ + if (dombind(mem, size, pol, bmp) < 0 && numa_fail_alloc_on_error) { + munmap(mem, size); + return NULL; + } + return mem; } /* (undocumented) */ @@ -423,14 +436,17 @@ done: if (nodemask_sz == 0) {/* fall back on error */ int pol; - unsigned long *mask = NULL; + unsigned long *mask = NULL, *origmask; nodemask_sz = 16; do { nodemask_sz <<= 1; + origmask = mask; mask = realloc(mask, nodemask_sz / 8 + sizeof(unsigned long)); - if (!mask) + if (!mask) { + free(origmask); return; - } while (get_mempolicy(&pol, mask, nodemask_sz + 1, 0, 0) < 0 && errno == EINVAL && + } + } while (get_mempolicy(&pol, mask, nodemask_sz, 0, 0) < 0 && errno == EINVAL && nodemask_sz < 4096*8); free(mask); } @@ -641,7 +657,7 @@ if (!tmp || !bmp) goto out; - if (get_mempolicy(&oldp, bmp->maskp, bmp->size + 1, 0, 0) < 0) + if (get_mempolicy(&oldp, bmp->maskp, bmp->size, 0, 0) < 0) goto out; if (set_mempolicy(MPOL_PREFERRED_MANY, tmp->maskp, tmp->size) == 0) { @@ -987,7 +1003,7 @@ return NULL; bitmask.maskp = (unsigned long *)mask; bitmask.size = sizeof(nodemask_t); - dombind(mem, size, MPOL_INTERLEAVE, &bitmask); + mem = dombind_or_free(mem, size, MPOL_INTERLEAVE, &bitmask); return mem; } @@ -1000,7 +1016,7 @@ 0, 0); if (mem == (char *)-1) return NULL; - dombind(mem, size, MPOL_INTERLEAVE, bmp); + mem = dombind_or_free(mem, size, MPOL_INTERLEAVE, bmp); return mem; } @@ -1022,7 +1038,7 @@ 0, 0); if (mem == (char *)-1) return NULL; - dombind(mem, size, MPOL_WEIGHTED_INTERLEAVE, bmp); + mem = dombind_or_free(mem, size, MPOL_WEIGHTED_INTERLEAVE, bmp); return mem; } @@ -1145,7 +1161,8 @@ if (mem == (char *)-1) mem = NULL; else - dombind(mem, size, bind_policy, bmp); + mem = dombind_or_free(mem, size, bind_policy, bmp); + numa_bitmask_free(bmp); return mem; } @@ -1158,7 +1175,7 @@ if (mem == (char *)-1) mem = NULL; else - dombind(mem, size, MPOL_LOCAL, NULL); + mem = dombind_or_free(mem, size, MPOL_LOCAL, NULL); return mem; } @@ -1312,7 +1329,7 @@ bmp = numa_allocate_nodemask(); if (!bmp) return NULL; - if (get_mempolicy(NULL, bmp->maskp, bmp->size + 1, 0, + if (get_mempolicy(NULL, bmp->maskp, bmp->size, 0, MPOL_F_MEMS_ALLOWED) < 0) numa_error("get_mempolicy"); return bmp; @@ -1398,7 +1415,14 @@ static void init_node_cpu_mask_v2(void) { int nnodes = numa_max_possible_node_v2_int() + 1; - node_cpu_mask_v2 = calloc (nnodes, sizeof(struct bitmask *)); + struct bitmask **new_ncm, **null_ncm = NULL; + new_ncm = calloc (nnodes, sizeof(struct bitmask *)); + /* Check for races with another thread */ + if (new_ncm && !__atomic_compare_exchange_n(&node_cpu_mask_v2, &null_ncm, + new_ncm, 0, + __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) { + free(new_ncm); + } } static void cleanup_node_cpu_mask_v2(void) @@ -1478,7 +1502,7 @@ } free(line); - memcpy(buffer, mask, buflen_needed); + memmove(buffer, mask, buflen_needed); /* slightly racy, see above */ if (node_cpu_mask_v1[node]) { @@ -1518,7 +1542,7 @@ size_t len = 0; struct bitmask *mask; - if (!node_cpu_mask_v2) + if (!__atomic_load_n(&node_cpu_mask_v2, __ATOMIC_CONSUME)) init_node_cpu_mask_v2(); if (node > nnodes) { @@ -1955,7 +1979,7 @@ bmp = __numa_preferred(); first_node = numa_find_first(bmp); numa_bitmask_free(bmp); - + return first_node; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/memhog.c new/numactl-2.0.19.27.gc9475de/memhog.c --- old/numactl-2.0.19.14.g690a72c/memhog.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/memhog.c 2026-02-02 03:28:06.000000000 +0100 @@ -15,6 +15,7 @@ on your Linux system; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define _GNU_SOURCE #include <fcntl.h> #include <stdlib.h> #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/migspeed.c new/numactl-2.0.19.27.gc9475de/migspeed.c --- old/numactl-2.0.19.14.g690a72c/migspeed.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/migspeed.c 2026-02-02 03:28:06.000000000 +0100 @@ -4,6 +4,7 @@ * (C) 2007 Silicon Graphics, Inc. Christoph Lameter <[email protected]> * */ +#define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include "numa.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/numa.3 new/numactl-2.0.19.27.gc9475de/numa.3 --- old/numactl-2.0.19.14.g690a72c/numa.3 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/numa.3 2026-02-02 03:28:06.000000000 +0100 @@ -197,6 +197,8 @@ .br .BI "extern int " numa_exit_on_warn ; .br +.BI "extern int " numa_fail_on_error_error ; +.br .BI "void numa_warn(int " number ", char *" where ", ...);" .br @@ -1168,6 +1170,11 @@ The default value of .I numa_exit_on_error is zero. +When the +.I numa_fail_alloc_on_error +variable is set to 1 make +.I numa_alloc +functions fail with a NULL return if the policy cannot be set. Default 0. .BR numa_warn () is a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/numa.h new/numactl-2.0.19.27.gc9475de/numa.h --- old/numactl-2.0.19.14.g690a72c/numa.h 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/numa.h 2026-02-02 03:28:06.000000000 +0100 @@ -328,6 +328,14 @@ /* When true exit the program when a NUMA system call (except numa_available) fails */ extern int numa_exit_on_error; + +/* When true exit when libnuma would print a warning. */ +extern int numa_exit_on_warn; + +/* When true make numa_alloc functions fail when policy could not be set. + Default false. */ +extern int numa_fail_alloc_on_error; + /* Warning function. Can also be overwritten. Default is to print on stderr once. */ void numa_warn(int num, char *fmt, ...); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/numademo.c new/numactl-2.0.19.27.gc9475de/numademo.c --- old/numactl-2.0.19.14.g690a72c/numademo.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/numademo.c 2026-02-02 03:28:06.000000000 +0100 @@ -17,7 +17,7 @@ You should find a copy of v2 of the GNU General Public License somewhere on your Linux system; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE #include <stdio.h> #include <string.h> #include <stdlib.h> @@ -326,6 +326,7 @@ int i, k; char buf[512]; struct bitmask *nodes; + int old_eoe = numa_exit_on_error; nodes = numa_allocate_nodemask(); thistest = type; @@ -339,7 +340,10 @@ memtest("local memory", numa_alloc_local(msize)); memtest("memory interleaved on all nodes", numa_alloc_interleaved(msize)); + + numa_exit_on_error = 0; /* Do no exit for old kernels */ memtest("memory weighted interleaved on all nodes", numa_alloc_weighted_interleaved(msize)); + numa_exit_on_error = old_eoe; for (i = 0; i < numnodes; i++) { if (regression_testing && (i % fract_nodes)) { /* for regression testing (-t) do only every eighth node */ @@ -375,7 +379,10 @@ strcat(buf, buf2); } memtest(buf, numa_alloc_interleaved_subset(msize, nodes)); + + numa_exit_on_error = 0; memtest(buf, numa_alloc_weighted_interleaved_subset(msize, nodes)); + numa_exit_on_error = old_eoe; if (!numa_has_preferred_many()) continue; @@ -413,6 +420,7 @@ } + numa_exit_on_error = 0; numa_set_weighted_interleave_mask(numa_all_nodes_ptr); memtest("manual interleaving to all nodes", numa_alloc(msize)); @@ -426,6 +434,8 @@ } + numa_exit_on_error = old_eoe; + numa_bitmask_free(nodes); numa_set_interleave_mask(numa_no_nodes_ptr); @@ -447,9 +457,10 @@ memtest("memory interleaved on all nodes", numa_alloc_interleaved(msize)); + numa_exit_on_error = 0; memtest("memory weighted interleaved on all nodes", numa_alloc_weighted_interleaved(msize)); - + numa_exit_on_error = old_eoe; if (numnodes >= 2) { numa_bitmask_clearall(nodes); @@ -457,8 +468,12 @@ numa_bitmask_setbit(nodes, node_to_use[1]); memtest("memory interleaved on first two nodes", numa_alloc_interleaved_subset(msize, nodes)); + + old_eoe = numa_exit_on_error; + numa_exit_on_error = 0; memtest("memory weighted interleaved on first two nodes", numa_alloc_weighted_interleaved_subset(msize, nodes)); + numa_exit_on_error = old_eoe; } @@ -528,6 +543,7 @@ int nr_nodes; int force = 0; + numa_fail_alloc_on_error = 1; while (av[1] && av[1][0] == '-') { ac--; switch (av[1][1]) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/shm.c new/numactl-2.0.19.27.gc9475de/shm.c --- old/numactl-2.0.19.14.g690a72c/shm.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/shm.c 2026-02-02 03:28:06.000000000 +0100 @@ -17,7 +17,7 @@ on your Linux system; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <string.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/syscall.c new/numactl-2.0.19.27.gc9475de/syscall.c --- old/numactl-2.0.19.14.g690a72c/syscall.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/syscall.c 2026-02-02 03:28:06.000000000 +0100 @@ -13,6 +13,7 @@ You should find a copy of v2.1 of the GNU Lesser General Public License somewhere on your Linux system; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define _GNU_SOURCE #include <unistd.h> #include <sys/types.h> #include <asm/unistd.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/sysfs.c new/numactl-2.0.19.27.gc9475de/sysfs.c --- old/numactl-2.0.19.14.g690a72c/sysfs.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/sysfs.c 2026-02-02 03:28:06.000000000 +0100 @@ -1,5 +1,5 @@ /* Utility functions for reading sysfs values */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE #include <fcntl.h> #include <stdio.h> #include <stdlib.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/test/distance.c new/numactl-2.0.19.27.gc9475de/test/distance.c --- old/numactl-2.0.19.14.g690a72c/test/distance.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/test/distance.c 2026-02-02 03:28:06.000000000 +0100 @@ -12,7 +12,7 @@ exit(1); } maxnode = numa_max_node(); - node_to_use = (int *)malloc(maxnode * sizeof(int)); + node_to_use = malloc((maxnode + 1) * sizeof(*node_to_use)); for (a = 0; a <= maxnode; a++) { if (numa_bitmask_isbitset(numa_nodes_ptr, a)){ node_to_use[got_nodes++] = a; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/test/mbind_mig_pages.c new/numactl-2.0.19.27.gc9475de/test/mbind_mig_pages.c --- old/numactl-2.0.19.14.g690a72c/test/mbind_mig_pages.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/test/mbind_mig_pages.c 2026-02-02 03:28:06.000000000 +0100 @@ -51,8 +51,8 @@ page_base = malloc((pagesize + 1) * page_count); addr = malloc(sizeof(char *) * page_count); - status = malloc(sizeof(int *) * page_count); - nodes = malloc(sizeof(int *) * page_count); + status = malloc(sizeof(int) * page_count); + nodes = malloc(sizeof(int) * page_count); if (!page_base || !addr || !status || !nodes) { printf("Unable to allocate memory\n"); exit(1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/test/migrate_pages.c new/numactl-2.0.19.27.gc9475de/test/migrate_pages.c --- old/numactl-2.0.19.14.g690a72c/test/migrate_pages.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/test/migrate_pages.c 2026-02-02 03:28:06.000000000 +0100 @@ -50,8 +50,8 @@ page_base = malloc((pagesize + 1) * page_count); addr = malloc(sizeof(char *) * page_count); - status = malloc(sizeof(int *) * page_count); - nodes = malloc(sizeof(int *) * page_count); + status = malloc(sizeof(int) * page_count); + nodes = malloc(sizeof(int) * page_count); if (!page_base || !addr || !status || !nodes) { printf("Unable to allocate memory\n"); exit(1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/test/tbitmap.c new/numactl-2.0.19.27.gc9475de/test/tbitmap.c --- old/numactl-2.0.19.14.g690a72c/test/tbitmap.c 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/test/tbitmap.c 2026-02-02 03:28:06.000000000 +0100 @@ -1,5 +1,5 @@ /* Unit test bitmap parser */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE //#include <asm/bitops.h> #include <stdio.h> #include <string.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numactl-2.0.19.14.g690a72c/versions.ldscript new/numactl-2.0.19.27.gc9475de/versions.ldscript --- old/numactl-2.0.19.14.g690a72c/versions.ldscript 2025-06-25 22:36:22.000000000 +0200 +++ new/numactl-2.0.19.27.gc9475de/versions.ldscript 2026-02-02 03:28:06.000000000 +0100 @@ -184,3 +184,10 @@ local: *; } libnuma_1.7; + +libnuma_2.2{ + global: + numa_fail_alloc_on_error; + local: + *; +} libnuma_1.7; ++++++ numactl.obsinfo ++++++ --- /var/tmp/diff_new_pack.7ktiXX/_old 2026-02-21 21:01:36.036004493 +0100 +++ /var/tmp/diff_new_pack.7ktiXX/_new 2026-02-21 21:01:36.048004984 +0100 @@ -1,5 +1,5 @@ name: numactl -version: 2.0.19.14.g690a72c -mtime: 1750883782 -commit: 690a72cabb010d02c910f54782641737bf947e77 +version: 2.0.19.27.gc9475de +mtime: 1769999286 +commit: c9475de805517966a87a3c6d17f7c91d5955a128
