diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..793412e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/numactl-2.0.14.tar.gz diff --git a/.numactl.metadata b/.numactl.metadata new file mode 100644 index 0000000..3d3c08c --- /dev/null +++ b/.numactl.metadata @@ -0,0 +1 @@ +1325d20027bbfc9ec5b840a599f6773d38b54a00 SOURCES/numactl-2.0.14.tar.gz diff --git a/SOURCES/0001-libnuma-make-numa_police_memory-free-of-race.patch b/SOURCES/0001-libnuma-make-numa_police_memory-free-of-race.patch new file mode 100644 index 0000000..f724cda --- /dev/null +++ b/SOURCES/0001-libnuma-make-numa_police_memory-free-of-race.patch @@ -0,0 +1,35 @@ +From 93867c59b0bb29470873a427dc7f06ebaf305221 Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Mon, 29 Mar 2021 17:33:06 +0800 +Subject: [PATCH] libnuma: make numa_police_memory() free of race + +When numa_police_memory() read-write to memory, it can risk the race of +another thread write to the same area. + +Using atomic function to protect the read-write operation + +Signed-off-by: Pingfan Liu +--- + libnuma.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libnuma.c b/libnuma.c +index f073c50..7b8290c 100644 +--- a/libnuma.c ++++ b/libnuma.c +@@ -864,8 +864,10 @@ void numa_police_memory(void *mem, size_t size) + { + int pagesize = numa_pagesize_int(); + unsigned long i; +- for (i = 0; i < size; i += pagesize) +- ((volatile char*)mem)[i] = ((volatile char*)mem)[i]; ++ char *p = mem; ++ for (i = 0; i < size; i += pagesize, p += pagesize) ++ __atomic_and_fetch(p, 0xff, __ATOMIC_RELAXED); ++ + } + + make_internal_alias(numa_police_memory); +-- +2.29.2 + diff --git a/SOURCES/0002-shm.c-fix-memleak-in-dump_shm.patch b/SOURCES/0002-shm.c-fix-memleak-in-dump_shm.patch new file mode 100644 index 0000000..76540d2 --- /dev/null +++ b/SOURCES/0002-shm.c-fix-memleak-in-dump_shm.patch @@ -0,0 +1,44 @@ +From 7b5f3e98680f0720f9e6d06b6acdcbf92af4aedd Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Thu, 10 Jun 2021 10:54:08 +0800 +Subject: [PATCH 2/6] shm.c: fix memleak in dump_shm() + +Signed-off-by: Pingfan Liu +--- + shm.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/shm.c b/shm.c +index 79043c9..c0b6ee3 100644 +--- a/shm.c ++++ b/shm.c +@@ -182,7 +182,7 @@ dumppol(unsigned long long start, unsigned long long end, int pol, struct bitmas + /* Dump policies in a shared memory segment. */ + void dump_shm(void) + { +- struct bitmask *nodes, *prevnodes; ++ struct bitmask *nodes, *prevnodes, *tag; + int prevpol = -1, pol; + unsigned long long c, start; + +@@ -193,7 +193,7 @@ void dump_shm(void) + } + + nodes = numa_allocate_nodemask(); +- prevnodes = numa_allocate_nodemask(); ++ tag = prevnodes = numa_allocate_nodemask(); + + for (c = 0; c < shmlen; c += shm_pagesize) { + if (get_mempolicy(&pol, nodes->maskp, nodes->size, c+shmptr, +@@ -208,6 +208,8 @@ void dump_shm(void) + start = c; + } + dumppol(start, c, prevpol, prevnodes); ++ numa_free_nodemask(nodes); ++ numa_free_nodemask(tag); + } + + static void dumpnode(unsigned long long start, unsigned long long end, int node) +-- +2.29.2 + diff --git a/SOURCES/0003-shm.c-fix-memleak-in-verify_shm.patch b/SOURCES/0003-shm.c-fix-memleak-in-verify_shm.patch new file mode 100644 index 0000000..53f6871 --- /dev/null +++ b/SOURCES/0003-shm.c-fix-memleak-in-verify_shm.patch @@ -0,0 +1,60 @@ +From 8ae75219cc7a0dc69e77e22ba2547104078769d8 Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Thu, 10 Jun 2021 11:06:07 +0800 +Subject: [PATCH 3/6] shm.c: fix memleak in verify_shm() + +Signed-off-by: Pingfan Liu +--- + shm.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/shm.c b/shm.c +index c0b6ee3..e5192e5 100644 +--- a/shm.c ++++ b/shm.c +@@ -273,8 +273,6 @@ void verify_shm(int policy, struct bitmask *nodes) + int pol2; + struct bitmask *nodes2; + +- nodes2 = numa_allocate_nodemask(); +- + if (policy == MPOL_INTERLEAVE) { + if (get_mempolicy(&ilnode, NULL, 0, shmptr, + MPOL_F_ADDR|MPOL_F_NODE) +@@ -282,6 +280,8 @@ void verify_shm(int policy, struct bitmask *nodes) + err("get_mempolicy"); + } + ++ nodes2 = numa_allocate_nodemask(); ++ + for (p = shmptr; p - (char *)shmptr < shmlen; p += shm_pagesize) { + if (get_mempolicy(&pol2, nodes2->maskp, nodes2->size, p, + MPOL_F_ADDR) < 0) +@@ -289,7 +289,7 @@ void verify_shm(int policy, struct bitmask *nodes) + if (pol2 != policy) { + vwarn(p, "wrong policy %s, expected %s\n", + policy_name(pol2), policy_name(policy)); +- return; ++ goto out; + } + if (memcmp(nodes2, nodes, numa_bitmask_nbytes(nodes))) { + vwarn(p, "mismatched node mask\n"); +@@ -307,7 +307,7 @@ void verify_shm(int policy, struct bitmask *nodes) + if (node != ilnode) { + vwarn(p, "expected interleave node %d, got %d\n", + ilnode,node); +- return; ++ goto out; + } + ilnode = interleave_next(ilnode, nodes2); + break; +@@ -325,4 +325,6 @@ void verify_shm(int policy, struct bitmask *nodes) + } + } + ++out: ++ numa_free_nodemask(nodes2); + } +-- +2.29.2 + diff --git a/SOURCES/0004-sysfs.c-don-t-leak-fd-if-fail-in-sysfs_read.patch b/SOURCES/0004-sysfs.c-don-t-leak-fd-if-fail-in-sysfs_read.patch new file mode 100644 index 0000000..08b8840 --- /dev/null +++ b/SOURCES/0004-sysfs.c-don-t-leak-fd-if-fail-in-sysfs_read.patch @@ -0,0 +1,29 @@ +From dfca78c8ee1d21d967b3a51d5488a8e8cd818ec4 Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Thu, 10 Jun 2021 11:13:59 +0800 +Subject: [PATCH 4/6] sysfs.c: don't leak fd if fail in sysfs_read() + +Signed-off-by: Pingfan Liu +--- + sysfs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysfs.c b/sysfs.c +index f1cdcdc..9ddf50d 100644 +--- a/sysfs.c ++++ b/sysfs.c +@@ -17,10 +17,10 @@ hidden char *sysfs_read(char *name) + int n; + int fd; + +- fd = open(name, O_RDONLY); + buf = malloc(SYSFS_BLOCK); + if (!buf) + return NULL; ++ fd = open(name, O_RDONLY); + n = read(fd, buf, SYSFS_BLOCK - 1); + close(fd); + if (n <= 0) { +-- +2.29.2 + diff --git a/SOURCES/0005-sysfs.c-prevent-mem-leak-in-sysfs_node_read.patch b/SOURCES/0005-sysfs.c-prevent-mem-leak-in-sysfs_node_read.patch new file mode 100644 index 0000000..3d04f42 --- /dev/null +++ b/SOURCES/0005-sysfs.c-prevent-mem-leak-in-sysfs_node_read.patch @@ -0,0 +1,60 @@ +From cc1d7d17c6d2df0f603932becf238fdf264a9e30 Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Thu, 10 Jun 2021 11:17:40 +0800 +Subject: [PATCH 5/6] sysfs.c: prevent mem leak in sysfs_node_read() + +Signed-off-by: Pingfan Liu +--- + sysfs.c | 23 +++++++++++++++-------- + 1 file changed, 15 insertions(+), 8 deletions(-) + +diff --git a/sysfs.c b/sysfs.c +index 9ddf50d..a35c4b5 100644 +--- a/sysfs.c ++++ b/sysfs.c +@@ -33,7 +33,7 @@ hidden char *sysfs_read(char *name) + + hidden int sysfs_node_read(struct bitmask *mask, char *fmt, ...) + { +- int n; ++ int n, ret = 0; + va_list ap; + char *p, *fn, *m, *end; + int num; +@@ -51,12 +51,18 @@ hidden int sysfs_node_read(struct bitmask *mask, char *fmt, ...) + m = p; + do { + num = strtol(m, &end, 0); +- if (m == end) +- return -1; +- if (num < 0) +- return -2; +- if (num >= numa_num_task_nodes()) +- return -1; ++ if (m == end) { ++ ret = -1; ++ goto out; ++ } ++ if (num < 0) { ++ ret = -2; ++ goto out; ++ } ++ if (num >= numa_num_task_nodes()) { ++ ret = -1; ++ goto out; ++ } + numa_bitmask_setbit(mask, num); + + /* Continuation not supported by kernel yet. */ +@@ -64,6 +70,7 @@ hidden int sysfs_node_read(struct bitmask *mask, char *fmt, ...) + while (isspace(*m) || *m == ',') + m++; + } while (isdigit(*m)); ++out: + free(p); +- return 0; ++ return ret; + } +-- +2.29.2 + diff --git a/SOURCES/0006-numactl.c-fix-use-after-free.patch b/SOURCES/0006-numactl.c-fix-use-after-free.patch new file mode 100644 index 0000000..8832709 --- /dev/null +++ b/SOURCES/0006-numactl.c-fix-use-after-free.patch @@ -0,0 +1,30 @@ +From 498385e3aaf265d6e9786e0a391196cd82ab3260 Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Fri, 18 Jun 2021 18:14:20 +0800 +Subject: [PATCH 6/6] numactl.c: fix use after free + +The following command can trigger the bug + numactl --length 65536 --shm xxx -p0 -V > /dev/null + +So reset mask to block any new access inside this loop. + +Signed-off-by: Pingfan Liu +--- + numactl.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/numactl.c b/numactl.c +index 5a9d2df..ae41d6c 100644 +--- a/numactl.c ++++ b/numactl.c +@@ -544,6 +544,7 @@ int main(int ac, char **av) + if (nnodes != 1) + usage(); + numa_bitmask_free(mask); ++ mask = NULL; + errno = 0; + did_node_cpu_parse = 1; + numa_set_bind_policy(0); +-- +2.29.2 + diff --git a/SPECS/numactl.spec b/SPECS/numactl.spec new file mode 100644 index 0000000..f42fde0 --- /dev/null +++ b/SPECS/numactl.spec @@ -0,0 +1,384 @@ +Name: numactl +Summary: Library for tuning for Non Uniform Memory Access machines +Version: 2.0.14 +Release: 8%{dist} +# libnuma is LGPLv2 and GPLv2 +# numactl binaries are GPLv2 only +License: GPLv2 +URL: https://github.com/numactl/numactl +Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: make +BuildRequires: libtool automake autoconf + +ExcludeArch: s390 %{arm} + +#START INSERT +# +# Patches 0 through 100 are meant for x86 +# + +# +# Patches 101 through 200 are meant for x86_64 +# + +# +# Patches 301 through 400 are meant for ppc64le +# + +# +# Patches 401 through 500 are meant for s390x +# + +# +# Patches 501 through 600 are meant for aarch64 +# + +# +# Patches 601 onward are generic patches +# +Patch601: 0001-libnuma-make-numa_police_memory-free-of-race.patch +Patch602: 0002-shm.c-fix-memleak-in-dump_shm.patch +Patch603: 0003-shm.c-fix-memleak-in-verify_shm.patch +Patch604: 0004-sysfs.c-don-t-leak-fd-if-fail-in-sysfs_read.patch +Patch605: 0005-sysfs.c-prevent-mem-leak-in-sysfs_node_read.patch +Patch606: 0006-numactl.c-fix-use-after-free.patch + + +%description +Simple NUMA policy support. It consists of a numactl program to run +other programs with a specific NUMA policy. + +%package libs +Summary: libnuma libraries +# There is a tiny bit of GPLv2 code in libnuma.c +License: LGPLv2 and GPLv2 + +%description libs +numactl-libs provides libnuma, a library to do allocations with +NUMA policy in applications. + +%package devel +Summary: Development package for building Applications that use numa +Requires: %{name}-libs = %{version}-%{release} +License: LGPLv2 and GPLv2 + +%description devel +Provides development headers for numa library calls + +%prep +%autosetup + +#patch +#%patch601 -p1 + +%build +%configure --prefix=/usr --libdir=%{_libdir} +# Using recipe to fix rpaths, from here: +# https://fedoraproject.org/wiki/RPath_Packaging_Draft#Removing_Rpath +sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ + -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +%make_build + +%install +rm -rf $RPM_BUILD_ROOT +%make_install + +%ldconfig_scriptlets +%ldconfig_scriptlets libs + +%files +%doc README.md +%{_bindir}/numactl +%{_bindir}/numademo +%{_bindir}/numastat +%{_bindir}/memhog +%{_bindir}/migspeed +%{_bindir}/migratepages +%{_mandir}/man8/*.8* +%exclude %{_mandir}/man2/*.2* + +%files libs +%{_libdir}/libnuma.so.1.0.0 +%{_libdir}/libnuma.so.1 + +%files devel +%{_libdir}/libnuma.so +%exclude %{_libdir}/libnuma.a +%exclude %{_libdir}/libnuma.la +%{_libdir}/pkgconfig/numa.pc +%{_includedir}/numa.h +%{_includedir}/numaif.h +%{_includedir}/numacompat1.h +%{_mandir}/man3/*.3* + +%changelog +* Tue Jan 4 2022 Pingfan Liu - 2.0.14-8 +- For GA release + +* Mon Aug 09 2021 Mohan Boddu - 2.0.14-7 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Tue Jul 6 2021 Pingfan Liu - 2.0.14-6 +- fix covscan complain + +* Mon May 24 2021 Pingfan Liu - 2.0.14-5 +- libnuma: make numa_police_memory() free of race + +* Fri Apr 16 2021 Mohan Boddu - 2.0.14-4 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.0.14-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Nov 11 2020 Florian Weimer - 2.0.14-2 +- Trigger rebuild to avoid DT_INIT/DT_FINI with zero values + +* Thu Sep 17 2020 Filipe Brandenburger - 2.0.14-1 +- Upgrade to 2.0.14 +- Re-enabled LTO, now that upstream has been fixed to support it. + +* Tue Jul 28 2020 Fedora Release Engineering - 2.0.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 01 2020 Jeff Law - 2.0.12-5 +- Disable LTO + +* Wed Jan 29 2020 Fedora Release Engineering - 2.0.12-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 2.0.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 2.0.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jul 25 2018 Filipe Brandenburger - 2.0.12-1 +- Rebased to version 2.0.12 + +* Wed Jul 25 2018 Filipe Brandenburger +- Fix check-rpaths warning about including /usr/lib64 in RPATH of the binaries. + +* Fri Jul 13 2018 Fedora Release Engineering - 2.0.11-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Mar 24 2018 Richard W.M. Jones - 2.0.11-9%{dist} +- Fix major/minor macros on glibc 2.27. +- Update config.{guess,sub} with versions which understand riscv64. +- Remove obsolete Buildroot tag. + +* Sat Feb 24 2018 Florian Weimer - 2.0.11-8%{dist} +- Use LDFLAGS from redhat-rpm-config + +* Fri Feb 09 2018 Igor Gnatenko - 2.0.11-7 +- Escape macros in %%changelog + +* Thu Feb 08 2018 Fedora Release Engineering - 2.0.11-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 2.0.11-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2.0.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Feb 06 2017 Petr Holasek - 2.0.11-3 +- s390x arch enabled (bz1419064) + +* Thu Feb 04 2016 Fedora Release Engineering - 2.0.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 14 2015 Petr Holasek - 2.0.11-1 +- Rebased to version 2.0.11 (bz1290941) + +* Wed Jun 17 2015 Fedora Release Engineering - 2.0.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Oct 13 2014 Petr Holasek 2.0.10-2 +- Fixing package conflict with man-pages (bz1151552) + +* Wed Oct 08 2014 Petr Holasek 2.0.10-1 +- Rebased to version 2.0.10 (bz1150511) + +* Sun Aug 17 2014 Fedora Release Engineering - 2.0.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 31 2014 Petr Holasek 2.0.9-3 +- fixed segfault on non-NUMA systems (bz1080421) + +* Sat Jun 07 2014 Fedora Release Engineering - 2.0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Oct 09 2013 Petr Holasek 2.0.9-1 +- rebased to version 2.0.9 + +* Fri Aug 02 2013 Karsten Hopp 2.0.8-4 +- rebuild in F20 to fix some dependency issues on PPC + +* Thu Feb 14 2013 Fedora Release Engineering - 2.0.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Jan 22 2013 Petr Holasek - 2.0.8-3 +- deleted empty numastat file + +* Thu Nov 1 2012 Tom Callaway - 2.0.8-2 +- fix license issues + +* Fri Oct 26 2012 Petr Holasek - 2.0.8-1 +- Rebased to version 2.0.8 + +* Fri Jul 20 2012 Fedora Release Engineering - 2.0.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat May 19 2012 Petr Holasek - 2.0.7-6 +- numademo segfault fix (bz823125, bz823127) + +* Sun Apr 15 2012 Petr Holasek - 2.0.7-5 +- Library splitted out of numactl package to numactl-libs + +* Fri Jan 13 2012 Fedora Release Engineering - 2.0.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Jan 02 2012 Anton Arapov - 2.0.7-3 +- Include missing manpages + +* Sat Jun 18 2011 Peter Robinson - 2.0.7-2 +- Exclude ARM platforms + +* Fri Apr 15 2011 Anton Arapov - 2.0.7-1 +- Update to latest upstream stable version (bz 696703) + +* Tue Mar 22 2011 Anton Arapov - 2.0.6-2 +- Better manpages (bz 673613) + +* Tue Feb 08 2011 Fedora Release Engineering - 2.0.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 04 2011 Neil Horman - 2.0.6-1 +- Update to latest upstream stable version (bz 666379) + +* Mon Oct 18 2010 Neil Horman - 2.0.5-1 +- Update to latest stable upstream source + +* Mon Feb 15 2010 Neil Horman - 2.0.3-8 +- Remove static libs from numactl (bz 556088) + +* Mon Aug 10 2009 Neil Horman - 2.0.3-7 +- Add destructor to libnuma.so to free allocated memory (bz 516227) + +* Mon Aug 10 2009 Neil Horman - 2.0.3-6 +- Fix obo in nodes_allowed_list strncpy (bz 516223) + +* Sat Jul 25 2009 Fedora Release Engineering - 2.0.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jun 26 2009 Neil Horman +- Update to full 2.0.3 version (bz 506795) + +* Wed Jun 17 2009 Neil Horman +- Fix silly libnuma warnings again (bz 499633) + +* Fri May 08 2009 Neil Horman +- Update to 2.0.3-rc3 (bz 499633) + +* Wed Mar 25 2009 Mark McLoughlin - 2.0.2-4 +- Remove warning from libnuma (bz 484552) + +* Wed Feb 25 2009 Fedora Release Engineering - 2.0.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Sep 29 2008 Neil Horman - 2.0.2-2 +- Fix build break due to register selection in asm + +* Mon Sep 29 2008 Neil Horman - 2.0.2-1 +- Update rawhide to version 2.0.2 of numactl + +* Fri Apr 25 2008 Neil Horman - 1.0.2-6 +- Fix buffer size passing and arg sanity check for physcpubind (bz 442521) + +* Fri Mar 14 2008 Neil Horman - 1.0.2-5 +- Fixing spec file to actually apply alpha patch :) + +* Fri Mar 14 2008 Neil Horman - 1.0.2-4 +- Add alpha syscalls (bz 396361) + +* Tue Feb 19 2008 Fedora Release Engineering - 1.0.2-3 +- Autorebuild for GCC 4.3 + +* Thu Dec 20 2007 Neil Horman - 1.0.2-1 +- Update numactl to fix get_mempolicy signature (bz 418551) + +* Fri Dec 14 2007 Neil Horman - 1.0.2-1 +- Update numactl to latest version (bz 425281) + +* Tue Aug 07 2007 Neil Horman - 0.9.8-4 +- Fixing some remaining merge review issues (bz 226207) + +* Fri Aug 03 2007 Neil Horman - 0.9.8-3 +- fixing up merge review (bz 226207) + +* Fri Jan 12 2007 Neil Horman - 0.9.8-2 +- Properly fixed bz 221982 +- Updated revision string to include %%{dist} + +* Thu Jan 11 2007 Neil Horman - 0.9.8-1.38 +- Fixed -devel to depend on base package so libnuma.so resolves + +* Thu Sep 21 2006 Neil Horman - 0.9.8-1.36 +- adding nodebind patch for bz 207404 + +* Fri Aug 25 2006 Neil Horman - 0.9.8-1.35 +- moving over libnuma.so to -devel package as well + +* Fri Aug 25 2006 Neil Horman - 0.9.8-1.34 +- split out headers/devel man pages to a devel subpackage + +* Tue Aug 15 2006 Neil Horman - 0.9.8-1.32 +- add patch for broken cpu/nodebind output (bz 201906) + +* Wed Jul 12 2006 Jesse Keating - 0.9.8-1.31 +- rebuild + +* Tue Jun 13 2006 Neil Horman +- Rebased numactl to version 0.9.8 for FC6/RHEL5 + +* Wed Apr 26 2006 Neil Horman +- Added patches for 64 bit overflows and cpu mask problem + +* Fri Mar 10 2006 Bill Nottingham +- rebuild for ppc TLS issue (#184446) + +* Fri Feb 10 2006 Jesse Keating - 0.6.4-1.25.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Thu Jul 7 2005 Dave Jones +- numactl doesn't own the manpage dirs. (#161547) + +* Tue Mar 1 2005 Dave Jones +- Rebuild for gcc4 + +* Tue Feb 8 2005 Dave Jones +- rebuild with -D_FORTIFY_SOURCE=2 + +* Wed Nov 10 2004 David Woodhouse +- Fix build on x86_64 + +* Thu Oct 21 2004 David Woodhouse +- Add PPC support + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Sat Jun 05 2004 Warren Togami +- spec cleanup + +* Sat Jun 05 2004 Arjan van de Ven +- initial packaging +