commit 97702f91de0da42a3fd62764cee8099351a23452
Author: zyppe <210hcl@gmail.com>
Date:   Wed Feb 28 21:51:43 2024 +0800

    Initialize for numactl

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..46ac7f8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+numactl-2.0.14.20.g4ee5e0c.tar.gz
diff --git a/.numactl.metadata b/.numactl.metadata
new file mode 100644
index 0000000..85fe8c8
--- /dev/null
+++ b/.numactl.metadata
@@ -0,0 +1 @@
+0693c639eede49ace60a68200c998ed59d6304c1d497479ec442cf7d55ee175f numactl-2.0.14.20.g4ee5e0c.tar.gz
diff --git a/0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch b/0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch
new file mode 100644
index 0000000..ee7a603
--- /dev/null
+++ b/0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch
@@ -0,0 +1,40 @@
+From 5dce07818a2f2c6ebde399f58702fe5beecb2eed Mon Sep 17 00:00:00 2001
+From: Julian Wolf <juwolf@suse.com>
+Date: Fri, 18 Jul 2014 14:05:05 +0200
+Subject: [PATCH] Fixed segfault when no node could be found in sysfs
+ bnc#872922
+
+---
+ distance.c | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+Index: numactl-2.0.10/distance.c
+===================================================================
+--- numactl-2.0.10.orig/distance.c	2014-10-03 22:49:11.000000000 +0200
++++ numactl-2.0.10/distance.c	2015-01-20 19:07:43.397202100 +0100
+@@ -58,19 +58,16 @@
+ 	int *table = NULL;
+ 	int err = -1;
+ 
+-	for (nd = 0;; nd++) {
++	for (nd = 0; nd < maxnode; nd++) {
+ 		char fn[100];
+ 		FILE *dfh;
+ 		sprintf(fn, "/sys/devices/system/node/node%d/distance", nd);
+ 		dfh = fopen(fn, "r");
+-		if (!dfh) {
+-			if (errno == ENOENT)
+-				err = 0;
+-			if (!err && nd<maxnode)
+-				continue;
+-			else
+-				break;
+-		}
++		if (dfh) 
++			err = 0;
++		else
++			continue;
++		
+ 		len = getdelim(&line, &linelen, '\n', dfh);
+ 		fclose(dfh);
+ 		if (len <= 0)
diff --git a/baselibs.conf b/baselibs.conf
new file mode 100644
index 0000000..46bd05f
--- /dev/null
+++ b/baselibs.conf
@@ -0,0 +1,7 @@
+libnuma1
+  obsoletes "numactl-<targettype> <= <version>"
+  provides "numactl-<targettype> = <version>"
+arch ppc package libnuma-devel
+   requires -numactl1-<targettype>
+   requires -libnuma-<targettype>
+   requires "numactl-<targettype> = <version>"
diff --git a/numactl-clearcache-pie.patch b/numactl-clearcache-pie.patch
new file mode 100644
index 0000000..eb554b5
--- /dev/null
+++ b/numactl-clearcache-pie.patch
@@ -0,0 +1,28 @@
+--- numactl-2.0.10.orig/clearcache.c
++++ numactl-2.0.10/clearcache.c
+@@ -54,24 +54,5 @@ void fallback_clearcache(void)
+ 
+ void clearcache(unsigned char *mem, unsigned size)
+ {
+-#if defined(__i386__) || defined(__x86_64__)
+-	unsigned i, cl, eax, feat;
+-	/* get clflush unit and feature */
+-	asm("cpuid" : "=a" (eax), "=b" (cl), "=d" (feat) : "0" (1) : "cx");
+-	if (!(feat & (1 << 19)))
+-		fallback_clearcache();
+-	cl = ((cl >> 8) & 0xff) * 8;
+-	for (i = 0; i < size; i += cl)
+-		asm("clflush %0" :: "m" (mem[i]));
+-#elif defined(__ia64__)
+-        unsigned long cl, endcl;
+-        // flush probable 128 byte cache lines (but possibly 64 bytes)
+-        cl = (unsigned long)mem;
+-        endcl = (unsigned long)(mem + (size-1));
+-        for (; cl <= endcl; cl += 64)
+-                asm ("fc %0" :: "r"(cl) : "memory" );
+-#else
+-#warning "Consider adding a clearcache implementation for your architecture"
+-	fallback_clearcache();
+-#endif
++     __builtin___clear_cache(mem, (mem + (size-1)));
+ }
diff --git a/numactl.changes b/numactl.changes
new file mode 100644
index 0000000..254b54a
--- /dev/null
+++ b/numactl.changes
@@ -0,0 +1,426 @@
+* Wed Sep  1 2021 trenn@suse.de
+- Update to version 2.0.14.20.g4ee5e0c:
+  * Fix system call numbers on s390x
+  * numactl.c: fixed debug verify for --preferred option
+  * numactl.c: Fixed description for the usage of numactl
+* Mon Jul 19 2021 trenn@suse.de
+- Update to version 2.0.14.17.g498385e:
+  * numactl.c: fix use after free
+  * sysfs.c: prevent mem leak in sysfs_node_read()
+  * sysfs.c: don't leak fd if fail in sysfs_read()
+  * shm.c: fix memleak in verify_shm()
+  * shm.c: fix memleak in dump_shm()
+  * fix description for numa_node_size64 in man as well
+  * fix numa_node_size definition in manpage numa.3
+  * link with -latomic if needed
+  * libnuma: make numa_police_memory() free of race
+  * numademo: Use first two nodes instead of node 0 and 1
+- Enhance _service magic
+- Enable automake
+* Tue Dec 15 2020 mliska@suse.cz
+- Enable LTO (boo#1133098) as it works now.
+* Sat Oct  3 2020 dmueller@suse.com
+- update to 2.0.14 (SLE-17217):
+  * manpage update
+  * numademo: fix issue on 32 bit systems
+  * drop custom cflags for libnuma
+  * use symvers attribute for symbol versioning
+* Sat Jan 11 2020 stefan.bruens@rwth-aachen.de
+- Update to version 2.0.13:
+  * Release numactl 2.0.13
+  * Skip `test/move_pages` if we don't have at least two nodes available
+  * Add license files: GPLv2 + LGPLv2.1
+  * Handle cpu-less node for bind_range test
+  * Convert numastat.c to standard numactl coding style
+  * Disable clang travis targets for now
+  * numastat.8: clarify that information relates to resident pages
+  * Fix all declarations to be C prototypes
+  * numatopology: Add check for cpu-less nodes
+  * Update INSTALL.md
+  * numastat: when reading no-exist pid, return EXIT_FAILURE
+  * numastat: Add KReclaimable to list of known fields in meminfo
+  * numastat: Better diagnostic when find unknown string in meminfo
+  * Enable building on s390x
+  * Correct sysconf constants
+  * Removed unnecessary exit from memhog.c Solves issue #50
+  * Synchronized usage function with man page
+  * Added memhog.8 to Makefile.am
+  * memhog: add man page
+  * Allow linking with lld by deduplicating symbols
+  * numademo: free the node_to_use on the way out
+  * numademo: free test nodemask
+  * libnuma: cleanup node cpu mask in destructor
+  * numactl: add va_end to usage function
+  * travis: add build matrix
+  * remove kernel version check
+  * add missing linux version header
+  * make MPOL_ macros match linux kernel
+  * add missing policy
+  * Fix: Add ShmemHugePages and ShmemPmdMapped to system_meminfo[]
+  * Fix: move_pages test for non-contiguous nodes
+  * Correct calculation of nr_nodes and re-enable move_pages test
+  * Fix: regress test numastat function and few test fixes
+  * Fix: distance test to include all existing nodes
+  * numademo: fix wrong node input
+  * Fix: node_list with memory-less nodes
+- Drop autoconf/libtool BuildRequires and autoreconf invocation,
+  bundled configure is up-to-date.
+- Drop obsolete revert_date_in_numastat.patch, gcc sets __DATE__
+  based on SOURCE_DATE_EPOCH now.
+- Correct License for devel subpackage, same as for the library
+  (LGPL-2.1-or-later).
+* Tue Sep 10 2019 kukuk@suse.de
+- numastat doesn't need perl anymore since 2012
+* Wed May 15 2019 trenn@suse.de
+- For obs regression checker, this version includes following SLE
+  fixes:
+  - enable build for aarch64 (fate#319973) (bsc#976199)
+    factory has an extra patch to disable ARM 32 bit archs which
+    looks a bit misleading as %%arm macro only covers 32 bit ARM.
+  - Bug 955334 - numactl/libnuma: add patch for Dynamic Reconfiguration
+    bsc#955334
+* Tue Apr 23 2019 mliska@suse.cz
+- Disable LTO (boo#1133098).
+* Wed Nov  7 2018 egotthold@suse.com
+- Update to version 2.0.12:
+  * Release numactl 2.0.12
+  * Cleanup whitespace from *.c and *.h files
+  * Add Travis build status to numactl README
+  * Convert README and INSTALL to Markdown
+  * Remove `threadtest.c`
+  * Remove `mkolddemo` script
+  * Remove file TODO, which has outdated contents
+  * Remove file DESIGN, which has no contents
+  * Remove changelogs from the repository
+  * Revert "make clearcache work on x86/PIC"
+  * Add "NAME" section to numastat manpage
+  * Allow building on ARM systems
+  * Add pkg-config file for NUMA library
+  * readdir_r(3) is deprecated, use readdir(3) instead
+  * Avoid filename truncation in numastat
+  * fix coding style in last change
+  * Fix: numademo test between sparse nodes
+  * Fix: allocation of dynamic array
+  * Fix: numactl distance between sparse nodes
+  * include sys/sysmacros.h for major/minor
+  * make clearcache work on x86/PIC
+  * Fix regress test for invalid hard code of nodenames
+  * Fix end of line check in distance parsing
+  * Optimize numa_distance check
+  * affinity: Include sys/sysmacros.h to fix warning
+  * numademo: Increase buffer to avoid theoretical buffer overflow
+  * Check for invalid nodes in numa_distance
+* Wed Aug  1 2018 schwab@suse.de
+- sysmacros.patch: Include <sys/sysmacros.h> for major/minor (bsc#1181571) (bsc#1183796)
+* Fri Jan  5 2018 matwey.kornilov@gmail.com
+- Disable building at 32-bit ARM.
+  NUMA is not supported by 32-bit ARM Linux Kernel, so build failed
+  with
+  [#]error "Add syscalls for your architecture or update kernel headers"
+* Fri Jul  7 2017 fschnizlein@suse.com
+- Update to latest HEAD (ea3a70681c2f523fe58e1d44527f478ca76db74e)
+  * Fix usage of __GLIBC_PREREQ for non-glibc toolchains
+  * Fix usage of __GLIBC_PREREQ for non-glibc toolchains
+  * Clean up numa_error() calls.
+  * Handle sched_getaffinity() failing with errno != EINVAL.
+  * "Further more" should be a single word
+  * Fix for numa_police_memory()
+  * Segment fault when numa nodes not sequential or contiguous
+  * Update prototype of get_mempolicy
+* Thu Mar  9 2017 fschnizlein@suse.com
+- Update to 2.0.11
+  * 150116 libnuma: numa_node_to_cpu skips over non-existing
+    nodes (Petr Holasek)
+  * 151210 libnuma: supress warnings for non-existing node (Petr Holasek)
+* Sun Aug  2 2015 mpluskal@suse.com
+- Cleanup spec file with spec-cleaner
+- Use autoreconf to update configure
+* Mon Feb 23 2015 crrodriguez@opensuse.org
+- package fails to build with PIE globally enabled, due to
+  error: inconsistent operand constraints in an 'asm'.
+  Turns out there is a GCC builtin for doing the operation
+  cleanly. (numactl-clearcache-pie.patch)
+* Tue Jan 27 2015 trenn@suse.de
+- Change license from GPL-2.0+ to GPL-2.0
+* Tue Jan 20 2015 trenn@suse.de
+- Make latest factory version build against SLE11 as well
+* Thu Nov 27 2014 meissner@suse.com
+- cleanup, also build for i586
+- remove move_pages.2 , as it is in manual-pages rpm.
+* Sat Nov 22 2014 mailaender@opensuse.org
+- Update to version 2.0.10:
+  * 131123 numactl: numactl check for NUMA available (Elena Ufimtseva)
+  * 140715 numactl: fix numactl --show  and preferrred node (Bill Gray)
+  * 140722 makefile: remove warning about missing .depend (Filipe Brandenburger)
+  * 140820 convert the build procedure to automake (Filipe Brandenburger)
+- Cleanup spec file
+  * use RPM macros where possible
+  * remove redundant %%clean
+* Tue Jul 29 2014 juwolf@suse.com
+- Fixed patch 0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch
+  for bnc#872922
+* Fri Jun 13 2014 juwolf@suse.com
+- Add: 0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch
+  Fixes segfault when no node could be found in sysfs. bnc#872922
+* Tue Dec 10 2013 dvaleev@suse.com
+- enable ppc64le
+* Wed Oct  9 2013 trenn@suse.de
+- Update to version 2.0.9:
+- 130207 Add a prototype for numa_bitmask_weight (Cliff W.)
+- 130725 Fix hubstats huge pages bug, version number, man page (Bill Gray)
+- 130726 Disable the regress-io test (Cliff W.)
+- 130730 Fix typos in numactl man page; add short opts to --help
+  (Petr Holasek)
+- 130906 numactl: option --all/-a added for policy settings (Petr Holasek)
+- 130906 libnuma: new function numa_run_on_node_mask_all (Petr Holasek)
+* Thu Nov  8 2012 trenn@suse.de
+- Update to version 2.0.8:
+  Drop patch numactl_install_all_manpages, merged upstream
+- Removed __DATE__ in numastat to avoid constant rebuilding in build
+  service (added patch revert_date_in_numastat.patch)
+- adjusted license strings
+* Wed Oct 12 2011 tabraham@novell.com
+- Update from 2.0.6 to 2.0.7
+  * Add numa_realloc() (and realloc_test)
+  * Re-fix numa_get_run_node_mask() and fix numa_get_run_node_mask
+  * Fix the numa_get_run_node_mask() man page (cpus vs nodes)
+  * Fix the cpu and node parsing to be cpuset aware
+  * Fix test/checkaffininty to be cpuset aware
+  * Fix two typos in numactl.8
+* Wed Mar 16 2011 trenn@novell.com
+- Only use LGPL for the library licence, remove the gpl part.
+* Wed Mar 16 2011 trenn@novell.com
+- Add lesser GPL public license to libnuma as metioned in the
+  sources
+* Wed Mar 16 2011 trenn@novell.com
+- Adjust/refresh patch, no functional change
+* Tue Jan  4 2011 trenn@novell.com
+- Update from 2.0.6-rc3 to final version 2.0.6
+* Sun Oct 31 2010 jengelh@medozas.de
+- Use %%_smp_mflags
+* Tue Oct 12 2010 trenn@novell.com
+- Updated to version 2.0.6-rc3
+  * Fix numa_get_run_node_mask() to return a cpuset-aware node mask (Cliff W.)
+  * Add a better warning to numa_node_to_cpus()
+* Tue Oct  5 2010 trenn@novell.com
+- Updated to version 2.0.6-rc1
+  * numa_num_task_cpus()/..nodes() to return actual counts (Cliff W.)
+  * Correct numa_max_node() use of broken numa_num_configured_nodes() (Tim Pepper)
+  * Use numa_max_node() not numa_num_configured_nodes() (Tim Pepper)
+  * Fix numa_num_configured_nodes() to match man page description (Tim Pepper)
+  * Clarify comment for numa_all_nodes_ptr extern (Tim Pepper)
+  * numactl --hardware should handle sparse node numbering (Tim Pepper)
+  * Maintain compatibility with 2.0.3 numa_num_thread...()'s (Cliff W.)
+* Sun Oct  3 2010 aj@suse.de
+- Update to 2.0.5:
+  * Remove merged patch numactl_fix_mem_corrup_numa_init.patch
+  * Various bug fixes.
+* Mon Jun 21 2010 trenn@novell.com
+- Forgot to increase the version string from 2.0.4-rc1 to 2.0.4-rc2
+* Wed Jun  9 2010 trenn@novell.com
+- Fixed corrupt tar.bz2 and added a mem corruption fix from Jan.
+* Thu May 20 2010 trenn@novell.com
+- Update to version 2.0.4-rc2
+* Thu Feb 11 2010 jengelh@medozas.de
+- workaround broken Makefile which uses uname -m to detect bitness
+  and libdir
+- remove sparcv9 from special-casing in baselibs.conf
+* Tue Dec 15 2009 jengelh@medozas.de
+- add baselibs.conf as a source
+- add baselibs for SPARC
+- add SPARC to ExclusiveArch
+- enable parallel building
+* Fri Dec 11 2009 trenn@suse.de
+- Update to version 2.0.4-rc1
+- Added missing manpages: numastat, migspeed, migratepages
+* Thu Dec 10 2009 meissner@suse.de
+- fixed build with asneeded on platforms with non-builtin sqrt()
+* Wed Feb  4 2009 cthiel@suse.de
+- fix baselibs.conf syntax
+* Wed Jan 28 2009 bwalle@suse.de
+- Fixes the function to print all available CPUs.
+* Mon Jan 26 2009 cthiel@suse.de
+- fix baselibs.conf, to require libnuma1-32bit on ppc
+* Thu Jan 15 2009 bwalle@suse.de
+- Update to 2.0.3-rc1
+  o Fixes to libnuma.c numa.h numacompat1.h by Daniel Gollub to fix
+    v1 compatiblity
+  o Fixes for 64-bit big-endian systems
+  o Restore nodemask_zero() and nodemask_equal()
+  o Fixes to read_mask()
+  o Drops a warning message about this not being a NUMA system
+  o Remove the numa_maps.5 man page (it's in Linux now)
+  o Fix makefiles in tests
+  o Fix off-by-ones in test mbind_mig_pages
+- Drop numactl-compat.diff: Mainline.
+- Drop numactl-fix-for-ppc64.patch: Mainline.
+* Wed Jan 14 2009 ro@suse.de
+- baselibs.conf: really create libnuma-devel-32bit only on ppc
+* Wed Jan 14 2009 bwalle@suse.de
+- Don't include the numa_maps(5) manpage since it's in man-pages
+  for some time (bnc #456823).
+- Add libnuma-devel to baselibs.conf to get a libnuma-devel-32bit
+  on PPC (bnc #456823)
+* Tue Jan 13 2009 olh@suse.de
+- obsolete old -XXbit packages (bnc#437293)
+* Tue Jan 13 2009 bwalle@suse.de
+- Fix "memset fails with 'mbind: Invalid argument'" on PPC64
+  (bnc #455977).
+* Mon Dec  8 2008 kukuk@suse.de
+- Fix baselibs.conf
+* Fri Dec  5 2008 bwalle@suse.de
+- Revert last change, it breaks other architectures.
+* Fri Dec  5 2008 bwalle@suse.de
+- Fix numademo memset fails with 'mbind: Invalid argument'
+  (bnc #455977).
+* Thu Nov 20 2008 bwalle@suse.de
+- Fixes to libnuma.c numa.h numacompat1.h by Daniel Gollub to fix
+  v1 compatiblity (bnc#441440).
+* Tue Aug  5 2008 bwalle@suse.de
+- update to 2.0.2
+  o Various numademo improvements:
+  * Fix random benchmark to use all specified memory
+  * Rename to random2 to signify it's different
+  * Optimize random benchmark by inlining random number generator
+    fast path.
+  * Clear caches between runs for more stable results
+  * Add new random pointer chaser benchmark
+  * Compile benchmarks with gcc vectorization if available
+  * run numademo in regression test
+  o Add numa_exit_on_warn
+  o Fix no cpuset fallback in libnuma.c
+  o Install symlinks for the manpages of all new functions
+  o Make internal libnuma functions static
+  o Add copy_bitmask_to_bitmask() to numa.h
+  o Some cleanups
+  o Fix line reading in proc
+  o Add versions.ldscript to libnuma.so dependencies
+  o Remove the non-"numa_" functions from numacompat1.h and numa.h
+  o Add ia64 clearcache() to numademo
+  o Add -t to numademo for regression testing
+  o Remove "numa_all_cpus" from numa.h
+  o Changed VERSION1_COMPATIBILITY to NUMA_VERSION1_COMPATIBILITY
+  o Defined LIBNUMA_API_VERSION 2 in numa.h
+  o Fix numaif.h and numaint.h (migrate_pages)
+  o Fixes to numademo (min/max, and array index)
+* Wed Jun 25 2008 bwalle@suse.de
+- change RPM version to '2.0.1+2.0.2_rc1' for a clean update path
+- don't package the static library
+- update baselibs.conf to reflect the package split
+- remove Provides/Obsoletes since the 'numactl' package still
+  exists and provides the numactl binary
+- move Changelog from 'libnuma1' package to 'numactl' package
+* Tue Jun 17 2008 bwalle@suse.de
+- update to 2.0.2-rc1
+  o Various numademo improvements:
+  * Fix random benchmark to use all specified memory
+  * Rename to random2 to signify it's different
+  * Optimize random benchmark by inlining random number generator
+    fast path.
+  * Clear caches between runs for more stable results
+  * Add new random pointer chaser benchmark
+  * Compile benchmarks with gcc vectorization if available
+  * run numademo in regression test
+  o Add numa_exit_on_warn
+  o Fix no cpuset fallback in libnuma.c
+  o Fix no cpuset fallback in libnuma.c
+  o Install symlinks for the manpages of all new functions
+  o Make internal libnuma functions static
+  o Add copy_bitmask_to_bitmask() to numa.h
+  o Some cleanups
+  o Fix line reading in proc
+  o Add versions.ldscript to libnuma.so dependencies
+  o Remove the non-"numa_" functions from numacompat1.h and numa.h
+  o Add ia64 clearcache() to numademo
+  o Add -t to numademo for regression testing
+* Wed Jun 11 2008 bwalle@suse.de
+- update to 2.0.1 (see CHANGES file for a changelog)
+- follow shared library packaging policy
+* Thu Apr 10 2008 ro@suse.de
+- added baselibs.conf file to build xxbit packages
+  for multilib support
+* Mon Mar 17 2008 jeffm@suse.com
+- Update to 1.0.2
+  * Fix parallel Makefile build (Andreas Herrmann)
+  * Fix target command argument parsing for numactl
+  * Clarify numa_node_to_cpus() manpage
+* Wed Aug 15 2007 ak@suse.de
+- Update to 1.0.1
+  * Only bug fixes since the previous version, no
+    new functionality.
+* Thu Jun  8 2006 ak@suse.de
+- Save/restore errno correctly (#182158)
+* Thu Jun  8 2006 ak@suse.de
+- Fix cpu buffer sizing for affinity syscalls (#182145)
+* Tue May 23 2006 ak@suse.de
+- Fix cpumap parsing again (#177749)
+* Thu Mar 30 2006 ak@suse.de
+- Fix the cpumap parsing fix to not corrupt memory (still #161089)
+* Tue Mar 28 2006 ak@suse.de
+- Update to 0.9.6: (#161089)
+  * consolidates earlier changes
+  * fix migrate pages error handling
+  * add numa_maps manpage
+  * fix cpumap parsing on large systems
+  * some build fixes
+* Thu Mar 23 2006 ak@suse.de
+- Don't install syscall manpages which are in the normal
+  manpages now (#158550)
+* Sun Feb 12 2006 ak@suse.de
+- Install migratepages manpage (followon for #143825)
+* Wed Feb  8 2006 ak@suse.de
+- Add support for page migration (#143825)
+* Wed Jan 25 2006 mls@suse.de
+- converted neededforbuild to BuildRequires
+* Wed Jan  4 2006 ak@suse.de
+- Update to numactl 0.9.1 to fix ppc32 build.
+* Tue Jan  3 2006 ak@suse.de
+- Update to numactl 0.9
+* Mon Dec 19 2005 ak@suse.de
+- Update to numactl 0.8
+* Fri Dec 16 2005 ro@suse.de
+- do not build as root
+* Mon Oct 10 2005 ak@suse.de
+- use RPM_OPT_FLAGS
+- fix build on ia64 with debuginfo package
+* Mon Oct 10 2005 ak@suse.de
+- Fix includes in manpages (#72853)
+- Fix buffer length calculation (#118980)
+* Wed Apr 27 2005 jplack@suse.de
+- override broken calculation of libdir in Makefile by using
+  %%{_libdir} rpm macro (#75249). Now it builds on ppc also.
+* Mon Apr 25 2005 jplack@suse.de
+- added numactl-LDPS1255-ppc (#75249 - LTC14536)
+* Tue Apr  5 2005 ak@suse.de
+- Fix manpages (#72835, #65944)
+- Fix thread handling with NPTL (#64496)
+* Mon Nov 22 2004 ak@suse.de
+- Fix C++ compilation (#45796)
+* Tue Sep  7 2004 ak@suse.de
+- Fix numa_node_to_cpus on big machines (#44433)
+* Wed Jun 16 2004 ak@suse.de
+- Fix --cpubind on kernels with large NR_CPUS (#42041)
+* Sat Jun  5 2004 ak@suse.de
+- update to 0.6.4:
+  * add copyright headers for GPL and LGPL (#41685)
+- Add requires to perl for numastat
+* Thu May 20 2004 ak@suse.de
+- update to 0.6.3:
+  * fix cpu map parsing with large number of CPUs (#40820)
+* Tue May 11 2004 ak@suse.de
+- update to 0.6.2:
+  * fix numademo to use STREAM
+  * make headers C++ clean
+  * some other bug fixes.
+  * add preliminary i386 syscalls
+* Sun Apr  4 2004 ak@suse.de
+- compile on ia64 too
+* Thu Apr  1 2004 ak@suse.de
+- update to 0.6 final. fix a few bugs in numactl and libnuma and
+  work on IA64 too
+* Mon Mar 22 2004 ak@suse.de
+- update to 0.6pre.
+* Mon May 19 2003 ak@suse.de
+- update to numactl-0.3. add libnuma and new manpages. add numademo.
+* Wed May  7 2003 ak@suse.de
+- package written and created
diff --git a/numactl.spec b/numactl.spec
new file mode 100644
index 0000000..7a811d6
--- /dev/null
+++ b/numactl.spec
@@ -0,0 +1,84 @@
+#
+# spec file for package numactl
+#
+# Copyright (c) 2022-2023 ZhuningOS
+#
+
+
+Name:           numactl
+Version:        2.0.14.20.g4ee5e0c
+Release:        150400.1.24
+Summary:        NUMA Policy Control
+License:        GPL-2.0-only
+Group:          System/Management
+URL:            https://github.com/numactl/numactl/releases
+Source0:        %{name}-%{version}.tar.gz
+Source2:        baselibs.conf
+# PATCH-FIX-OPENSUSE -- Avoid segfault when no node can be found in sysfs
+Patch1:         0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch
+Patch2:         numactl-clearcache-pie.patch
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  libtool
+
+%description
+Control NUMA policy for individual processes. Offer libnuma for
+individual NUMA policy in applications.
+
+%package -n libnuma1
+Summary:        NUMA Policy Control
+License:        LGPL-2.1-or-later
+Group:          Development/Languages/C and C++
+
+%description -n libnuma1
+Control NUMA policy for individual processes. Offer libnuma for
+individual NUMA policy in applications.
+
+%package -n libnuma-devel
+Summary:        NUMA Policy Control
+License:        LGPL-2.1-or-later
+Group:          Development/Languages/C and C++
+Requires:       libnuma1 = %{version}
+
+%description -n libnuma-devel
+Control NUMA policy for individual processes. Offer libnuma for
+individual NUMA policy in applications.
+
+%prep
+%setup -q
+%patch1 -p1
+%patch2 -p1
+
+%build
+./autogen.sh
+%configure \
+  --disable-static
+make %{?_smp_mflags} CFLAGS="%{optflags}" V=1
+
+%install
+%make_install
+rm  %{buildroot}%{_mandir}/man2/move_pages.2*
+rm -f %{buildroot}/%{_libdir}/lib*.la
+
+%post -n libnuma1 -p /sbin/ldconfig
+
+%postun -n libnuma1 -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root)
+%license LICENSE.GPL2 LICENSE.LGPL2.1
+%{_bindir}/*
+%{_mandir}/man8/*
+
+%files -n libnuma1
+%defattr(-,root,root)
+%{_libdir}/lib*so.*
+
+%files -n libnuma-devel
+%defattr(-,root,root)
+%{_mandir}/man3/*
+%{_includedir}/*
+%{_libdir}/lib*so
+%{_libdir}/pkgconfig/numa.pc
+
+%changelog