summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-04-14 03:50:58 +0100
committerSam James <sam@gentoo.org>2023-04-14 04:23:02 +0100
commiteff1ccb300e56b56ceea1fa204946647366afff3 (patch)
tree193c26d7c4174d6e9d9a4f1bd927cb8bd86ae584 /app-metrics
parentdev-util/watchman: add 2023.04.10.00 (diff)
downloadgentoo-eff1ccb300e56b56ceea1fa204946647366afff3.tar.gz
gentoo-eff1ccb300e56b56ceea1fa204946647366afff3.tar.bz2
gentoo-eff1ccb300e56b56ceea1fa204946647366afff3.zip
app-metrics/collectd: fix configure w/ clang 16
Closes: https://bugs.gentoo.org/879633 Closes: https://bugs.gentoo.org/900392 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-metrics')
-rw-r--r--app-metrics/collectd/collectd-5.12.0-r8.ebuild (renamed from app-metrics/collectd/collectd-5.12.0-r7.ebuild)1
-rw-r--r--app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch127
2 files changed, 128 insertions, 0 deletions
diff --git a/app-metrics/collectd/collectd-5.12.0-r7.ebuild b/app-metrics/collectd/collectd-5.12.0-r8.ebuild
index 9662889050c6..0c8c8c88baa4 100644
--- a/app-metrics/collectd/collectd-5.12.0-r7.ebuild
+++ b/app-metrics/collectd/collectd-5.12.0-r8.ebuild
@@ -173,6 +173,7 @@ REQUIRED_USE="
PATCHES=(
"${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch
"${FILESDIR}"/${PN}-5.12.0-python3_11.patch
+ "${FILESDIR}"/${PN}-5.12.0-clang16-configure.patch
)
# @FUNCTION: collectd_plugin_kernel_linux
diff --git a/app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch b/app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch
new file mode 100644
index 000000000000..578099579c47
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch
@@ -0,0 +1,127 @@
+https://bugs.gentoo.org/879633
+https://bugs.gentoo.org/900392
+https://github.com/collectd/collectd/pull/4106
+
+From f23164e589502ff675b3b54fa598bd9efd1422ed Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 6 Apr 2023 19:00:08 +0200
+Subject: [PATCH] Fix glibc feature macro handling for timegm
+
+The way strptime is activated using feature macros, _DEFAULT_SOURCE
+(successor to _BSD_SOURCE) is disabled implicitly, so timegm is
+hidden. Defining _DEFAULT_SOURCE at the same time as the other
+feature macros solves this, and removes the need for the
+TIMEGM_NEEDS_BSD configure macro.
+
+This avoids an implicit declaration of timegm in src/bind.c, and build
+failures with future compilers.
+---
+ configure.ac | 53 ++++++++++++----------------------------------------
+ src/bind.c | 10 +++++-----
+ 2 files changed, 17 insertions(+), 46 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index bbe65a7e99..78bbff6624 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -974,6 +974,12 @@ if test "x$have_strptime" = "xyes" && test "x$c_cv_have_strptime_default" = "xno
+ #ifndef _XOPEN_SOURCE
+ # define _XOPEN_SOURCE 500
+ #endif
++ # ifndef _BSD_SOURCE
++ # define _BSD_SOURCE
++ # endif
++ # ifndef _DEFAULT_SOURCE
++ # define _DEFAULT_SOURCE
++ # endif
+ #include <time.h>
+ ]],
+ [[
+@@ -1024,6 +1030,12 @@ AC_CACHE_CHECK([for timegm],
+ # ifndef _XOPEN_SOURCE
+ # define _XOPEN_SOURCE 500
+ # endif
++# ifndef _BSD_SOURCE
++# define _BSD_SOURCE
++# endif
++# ifndef _DEFAULT_SOURCE
++# define _DEFAULT_SOURCE
++# endif
+ #endif
+ #include <time.h>
+ ]]],
+@@ -1039,50 +1051,9 @@ AC_CACHE_CHECK([for timegm],
+ )
+ )
+
+-if test "x$c_cv_have_timegm" != "xyes"
+-then
+- AC_CACHE_CHECK([for timegm with _BSD_SOURCE],
+- [c_cv_have_timegm_bsd],
+- AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM(
+-[[[
+-#if STRPTIME_NEEDS_STANDARDS
+-# ifndef _ISOC99_SOURCE
+-# define _ISOC99_SOURCE 1
+-# endif
+-# ifndef _POSIX_C_SOURCE
+-# define _POSIX_C_SOURCE 200112L
+-# endif
+-# ifndef _XOPEN_SOURCE
+-# define _XOPEN_SOURCE 500
+-# endif
+-#endif
+-#ifndef _BSD_SOURCE
+-# define _BSD_SOURCE 1
+-#endif
+-#include <time.h>
+-]]],
+-[[[
+- time_t t = timegm(&(struct tm){0});
+- if (t == ((time_t) -1)) {
+- return 1;
+- }
+-]]]
+- )],
+- [c_cv_have_timegm_bsd="yes"
+- c_cv_have_timegm="yes"],
+- [c_cv_have_timegm_bsd="no"]
+- )
+- )
+-fi
+-
+ if test "x$c_cv_have_timegm" = "xyes"
+ then
+ AC_DEFINE(HAVE_TIMEGM, 1, [Define if the timegm(3) function is available.])
+- if test "x$c_cv_have_timegm_bsd" = "xyes"
+- then
+- AC_DEFINE(TIMEGM_NEEDS_BSD, 1, [Set to true if timegm is only exported in BSD mode.])
+- fi
+ fi
+
+ CFLAGS="$SAVE_CFLAGS"
+diff --git a/src/bind.c b/src/bind.c
+index a246f1aacf..4a7c024253 100644
+--- a/src/bind.c
++++ b/src/bind.c
+@@ -33,13 +33,13 @@
+ #ifndef _XOPEN_SOURCE
+ #define _XOPEN_SOURCE 500
+ #endif
+-#endif /* STRPTIME_NEEDS_STANDARDS */
+-
+-#if TIMEGM_NEEDS_BSD
+ #ifndef _BSD_SOURCE
+-#define _BSD_SOURCE 1
++#define _BSD_SOURCE
+ #endif
+-#endif /* TIMEGM_NEEDS_BSD */
++#ifndef _DEFAULT_SOURCE
++#define _DEFAULT_SOURCE
++#endif
++#endif /* STRPTIME_NEEDS_STANDARDS */
+
+ #include "collectd.h"
+
+