numactl/numactl-2.0.3-dso-destructor.patch
2009-08-10 14:06:26 +00:00

36 lines
1.4 KiB
Diff

diff -up numactl-2.0.3/libnuma.c.orig numactl-2.0.3/libnuma.c
--- numactl-2.0.3/libnuma.c.orig 2009-08-10 09:59:24.000000000 -0400
+++ numactl-2.0.3/libnuma.c 2009-08-10 10:00:40.000000000 -0400
@@ -95,6 +95,19 @@ numa_init(void)
memset(&numa_no_nodes, 0, sizeof(numa_no_nodes));
}
+void
+numa_fini(void)
+{
+ if (numa_all_cpus_ptr)
+ numa_bitmask_free(numa_all_cpus_ptr);
+ if (numa_all_nodes_ptr)
+ numa_bitmask_free(numa_all_nodes_ptr);
+ if (numa_no_nodes_ptr)
+ numa_bitmask_free(numa_no_nodes_ptr);
+ if (nodes_allowed_list)
+ free(nodes_allowed_list);
+}
+
/*
* The following bitmask declarations, bitmask_*() routines, and associated
* _setbit() and _getbit() routines are:
diff -up numactl-2.0.3/Makefile.orig numactl-2.0.3/Makefile
--- numactl-2.0.3/Makefile.orig 2009-06-10 08:30:03.000000000 -0400
+++ numactl-2.0.3/Makefile 2009-08-10 10:00:00.000000000 -0400
@@ -81,7 +81,7 @@ stream_main.o: stream_main.c
libnuma.so.1: versions.ldscript
libnuma.so.1: libnuma.o syscall.o distance.o
- ${CC} ${LDFLAGS} -shared -Wl,-soname=libnuma.so.1 -Wl,--version-script,versions.ldscript -Wl,-init,numa_init -o libnuma.so.1 $(filter-out versions.ldscript,$^)
+ ${CC} ${LDFLAGS} -shared -Wl,-soname=libnuma.so.1 -Wl,--version-script,versions.ldscript -Wl,-init,numa_init -Wl,-fini,numa_fini -o libnuma.so.1 $(filter-out versions.ldscript,$^)
libnuma.so: libnuma.so.1
ln -sf libnuma.so.1 libnuma.so