summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrahmajit Das <brahmajit.xyz@gmail.com>2023-06-26 06:17:48 +0000
committerSam James <sam@gentoo.org>2023-07-23 02:42:11 +0100
commitbd9ea44dff37434afdb34f44096edcdc875bb3f8 (patch)
tree3eb42b7299f05c01801737a1f2f6446ffc61665f /sys-process/numactl
parentnet-misc/curl: drop 8.2.0 (diff)
downloadgentoo-bd9ea44dff37434afdb34f44096edcdc875bb3f8.tar.gz
gentoo-bd9ea44dff37434afdb34f44096edcdc875bb3f8.tar.bz2
gentoo-bd9ea44dff37434afdb34f44096edcdc875bb3f8.zip
sys-process/numactl: Fix build with clang-16 and musl
These are some of the patches from upstream that fixes build with clang-16 and musl, hence the backporting them till a new release. Clsoses: https://bugs.gentoo.org/906539 Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/31610 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-process/numactl')
-rw-r--r--sys-process/numactl/files/numactl-2.0.16-configure-check-for-largefile-support.patch27
-rw-r--r--sys-process/numactl/files/numactl-2.0.16-replace-stat64-with-normal-functions.patch65
-rw-r--r--sys-process/numactl/numactl-2.0.16-r1.ebuild69
3 files changed, 161 insertions, 0 deletions
diff --git a/sys-process/numactl/files/numactl-2.0.16-configure-check-for-largefile-support.patch b/sys-process/numactl/files/numactl-2.0.16-configure-check-for-largefile-support.patch
new file mode 100644
index 000000000000..f22ba23999c1
--- /dev/null
+++ b/sys-process/numactl/files/numactl-2.0.16-configure-check-for-largefile-support.patch
@@ -0,0 +1,27 @@
+https://github.com/numactl/numactl/commit/246b0e695644ad614f6c324505d7cfa6e74f1fc1.patch
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 15 Dec 2022 12:10:37 -0800
+Subject: [PATCH] configure: Check for largefile support
+
+This helps in using 64bit versions of off_t related functions
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index ebf9917..6139132 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,6 +14,9 @@ LT_INIT
+
+ AC_PROG_CC
+
++# Check for enabling LFS support
++AC_SYS_LARGEFILE
++
+ # Override CFLAGS so that we can specify custom CFLAGS for numademo.
+ AX_AM_OVERRIDE_VAR([CFLAGS])
+
+
diff --git a/sys-process/numactl/files/numactl-2.0.16-replace-stat64-with-normal-functions.patch b/sys-process/numactl/files/numactl-2.0.16-replace-stat64-with-normal-functions.patch
new file mode 100644
index 000000000000..9b08a55c2e77
--- /dev/null
+++ b/sys-process/numactl/files/numactl-2.0.16-replace-stat64-with-normal-functions.patch
@@ -0,0 +1,65 @@
+https://github.com/numactl/numactl/commit/851bbd5b963a7a5d95b8fe3102cf05972dc72655.patch
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 15 Dec 2022 12:11:13 -0800
+Subject: [PATCH] shm.c: Replace stat64/fstat64/ftruncate64mmap64 with normal
+ functions
+
+These functions were needed when _FILE_OFFSET_BITS was not 64, using
+AC_SYS_LARGEFILE will detect it correctly and make the normal variants
+of these functions behave same as their *64 counterparts.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ shm.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/shm.c b/shm.c
+index 20537d9..5d0d1ab 100644
+--- a/shm.c
++++ b/shm.c
+@@ -24,8 +24,8 @@
+ #include <sys/mman.h>
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+-#include <sys/fcntl.h>
+ #include <sys/stat.h>
++#include <fcntl.h>
+ #include <stdarg.h>
+ #include <errno.h>
+ #include <unistd.h>
+@@ -135,7 +135,7 @@ void attach_sysvshm(char *name, char *opt)
+ /* Attach a shared memory file. */
+ void attach_shared(char *name, char *opt)
+ {
+- struct stat64 st;
++ struct stat st;
+
+ shmfd = open(name, O_RDWR);
+ if (shmfd < 0) {
+@@ -146,14 +146,14 @@ void attach_shared(char *name, char *opt)
+ if (shmfd < 0)
+ nerror("cannot create file %s", name);
+ }
+- if (fstat64(shmfd, &st) < 0)
++ if (fstat(shmfd, &st) < 0)
+ err("shm stat");
+ /* the file size must be larger than mmap shmlen + shmoffset, otherwise SIGBUS
+ * will be caused when we access memory, because mmaped memory is no longer in
+ * the range of the file laster.
+ */
+ if ((shmlen + shmoffset) > st.st_size) {
+- if (ftruncate64(shmfd, shmlen + shmoffset) < 0) {
++ if (ftruncate(shmfd, shmlen + shmoffset) < 0) {
+ /* XXX: we could do it by hand, but it would it
+ would be impossible to apply policy then.
+ need to fix that in the kernel. */
+@@ -168,7 +168,7 @@ void attach_shared(char *name, char *opt)
+
+ /* RED-PEN For shmlen > address space may need to map in pieces.
+ Left for some poor 32bit soul. */
+- shmptr = mmap64(NULL, shmlen, PROT_READ | PROT_WRITE, MAP_SHARED, shmfd, shmoffset);
++ shmptr = mmap(NULL, shmlen, PROT_READ | PROT_WRITE, MAP_SHARED, shmfd, shmoffset);
+ if (shmptr == (char*)-1)
+ err("shm mmap");
+ }
+
diff --git a/sys-process/numactl/numactl-2.0.16-r1.ebuild b/sys-process/numactl/numactl-2.0.16-r1.ebuild
new file mode 100644
index 000000000000..dca719d54ef6
--- /dev/null
+++ b/sys-process/numactl/numactl-2.0.16-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools multilib-minimal
+
+DESCRIPTION="Utilities and libraries for NUMA systems"
+HOMEPAGE="https://github.com/numactl/numactl"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/numactl/numactl.git"
+else
+ SRC_URI="https://github.com/numactl/numactl/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="static-libs"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.0.14-numademo-cflags.patch # bug #540856
+ "${FILESDIR}"/${PN}-2.0.16-replace-stat64-with-normal-functions.patch # bug #540856
+ "${FILESDIR}"/${PN}-2.0.16-configure-check-for-largefile-support.patch # bug #540856
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ # We need to copy the sources or else tests will fail
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE="${S}" econf $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ multilib_is_native_abi && default || emake libnuma.la
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi ; then
+ if [[ -d /sys/devices/system/node ]] ; then
+ einfo "The only generically safe test is regress2."
+ einfo "The other test cases require 2 NUMA nodes."
+ emake regress2
+ else
+ ewarn "You do not have baseline NUMA support in your kernel, skipping tests."
+ fi
+ fi
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" \
+ install$(multilib_is_native_abi || echo "-libLTLIBRARIES install-includeHEADERS")
+ find "${ED}"/usr/ -type f -name libnuma.la -delete || die
+}
+
+multilib_src_install_all() {
+ local DOCS=( README.md )
+ einstalldocs
+
+ # Delete man pages provided by the man-pages package, bug #238805
+ rm -r "${ED}"/usr/share/man/man[25] || die
+}