diff options
author | Sam James <sam@gentoo.org> | 2023-12-19 09:17:45 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-12-19 11:03:38 +0000 |
commit | a0af8e51987d130db563c5d9c18dba9f214719f1 (patch) | |
tree | 2eafc7666637e143095f5bc2f3338eaf1315639e /dev-libs/papi | |
parent | dev-python/spyder: drop 6.0.0_alpha2 (diff) | |
download | gentoo-a0af8e51987d130db563c5d9c18dba9f214719f1.tar.gz gentoo-a0af8e51987d130db563c5d9c18dba9f214719f1.tar.bz2 gentoo-a0af8e51987d130db563c5d9c18dba9f214719f1.zip |
dev-libs/papi: further modern C fixes
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/papi')
-rw-r--r-- | dev-libs/papi/files/papi-6.0.0.1-configure-c99.patch | 88 | ||||
-rw-r--r-- | dev-libs/papi/papi-6.0.0.1-r2.ebuild | 61 |
2 files changed, 149 insertions, 0 deletions
diff --git a/dev-libs/papi/files/papi-6.0.0.1-configure-c99.patch b/dev-libs/papi/files/papi-6.0.0.1-configure-c99.patch new file mode 100644 index 000000000000..1c38cd69df49 --- /dev/null +++ b/dev-libs/papi/files/papi-6.0.0.1-configure-c99.patch @@ -0,0 +1,88 @@ +https://github.com/icl-utk-edu/papi/commit/dd11311aadbd06ab6c76d49a997a8bb2bcdcd5f7 +https://github.com/icl-utk-edu/papi/pull/142 + +From dd11311aadbd06ab6c76d49a997a8bb2bcdcd5f7 Mon Sep 17 00:00:00 2001 +From: Giuseppe Congiu <gcongiu@icl.utk.edu> +Date: Fri, 29 Sep 2023 10:20:28 +0200 +Subject: [PATCH] configure: fix tls detection + +Configure TLS detection tests were failing because of wrong usage of +pthread_create(). Problem was caused by wrong definition of thread +functions which require void *f(void *) instead of int f(void *) or +void f(void *). +--- + configure.in | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure.in b/configure.in +index e77f1d017..346e3dab1 100644 +--- a/configure.in ++++ b/configure.in +@@ -707,7 +707,7 @@ AC_ARG_WITH(tls, + #include <unistd.h> + extern __thread int i; + static int res1, res2; +- void thread_main (void *arg) { ++ void *thread_main (void *arg) { + i = (int)arg; + sleep (1); + if ((int)arg == 1) +@@ -849,7 +849,7 @@ AC_ARG_WITH(virtualtimer, + int gettid() { + return syscall( SYS_gettid ); + } +- int doThreadOne( void * v ) { ++ void *doThreadOne( void * v ) { + struct tms tm; + int status; + while (!done) +@@ -859,7 +859,7 @@ AC_ARG_WITH(virtualtimer, + threadone = tm.tms_utime; + return 0; + } +- int doThreadTwo( void * v ) { ++ void *doThreadTwo( void * v ) { + struct tms tm; + long i, j = 0xdeadbeef; + int status; + +From 08f0d7dfaeb53283ab133e3b7d6f13d03245d88c Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Mon, 18 Dec 2023 08:18:50 +0100 +Subject: [PATCH] configure: Fix return values in start thread routines + +Thread start routines must return a void * value, and future +compilers refuse to convert integers to pointers with just a warning +(the virtualtimer probe). Without this change, the probe always fails +to compile with future compilers (such as GCC 14). + +For the tls probe, return a null pointer for future-proofing, although +current and upcoming C compilers do not treat this omission as an +error. + +Updates commit dd11311aadbd06ab6c76d ("configure: fix tls detection"). +--- + configure.in | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/configure.in b/configure.in +index 7d95ae1a4..f9b494036 100644 +--- a/configure.in ++++ b/configure.in +@@ -721,6 +721,7 @@ AC_ARG_WITH(tls, + res1 = (i == (int)arg); + else + res2 = (i == (int)arg); ++ return NULL; + } + __thread int i; + int main () { +@@ -812,7 +813,7 @@ AC_ARG_WITH(virtualtimer, + exit(1); + } + done = 1; +- return j; ++ return (void *) j; + } + + int main( int argc, char ** argv ) { diff --git a/dev-libs/papi/papi-6.0.0.1-r2.ebuild b/dev-libs/papi/papi-6.0.0.1-r2.ebuild new file mode 100644 index 000000000000..a81ecf3c13bf --- /dev/null +++ b/dev-libs/papi/papi-6.0.0.1-r2.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools fortran-2 toolchain-funcs + +DESCRIPTION="Performance Application Programming Interface" +HOMEPAGE="http://icl.cs.utk.edu/papi/" +SRC_URI="http://icl.cs.utk.edu/projects/${PN}/downloads/${P}.tar.gz" +S="${WORKDIR}/${P}/src" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +DEPEND=" + dev-libs/libpfm[static-libs] + virtual/mpi +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-6.0.0.1-configure-clang16.patch + "${FILESDIR}"/${PN}-6.0.0.1-configure-c99.patch +) + +src_prepare() { + default + + mv configure.{in,ac} || die + eautoreconf +} + +src_configure() { + tc-export AR + + # TODO: Could try adding + # --with-static-user-events=no + # --with-static-papi-events=no + # --with-static-lib=no + # --with-static-tools=no + # but this requires fixing the homebrew configure logic for + # little gain + local myeconfargs=( + --with-perf-events + --with-pfm-prefix="${EPREFIX}/usr" + --with-pfm-libdir="${EPREFIX}/usr/$(get_libdir)" + ) + + CONFIG_SHELL="${EPREFIX}/bin/bash" econf "${myeconfargs[@]}" +} + +src_install() { + default + + dodoc ../RE* + + find "${ED}" -name '*.a' -delete || die + find "${ED}" -name '*.la' -delete || die +} |