net-misc/ices: fix build with clang/lld and upcoming clang-16

One configure test was broken with (any) clang/lld on multilib profiles
due to passing -L/usr/lib which led to underlinking wrt #740794.

For 16 it's the usual missing header, handled by adjusting the autoconf
test (revbumped in previous commit at same time for other compilers).

Closes: https://bugs.gentoo.org/740794
Closes: https://bugs.gentoo.org/870973
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Ionen Wolkens
2022-10-06 15:52:48 -04:00
parent b01a60e902
commit c09e4b7cfb
3 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
Uses gettimeofday but won't include sys/time.h without HAVE_SYS_TIME_H
leading to failure with -Werror=implicit-function-declaration (clang16).
sys/timeb.h is for deprecated ftime() and should not be used.
https://bugs.gentoo.org/870973
--- a/configure.in
+++ b/configure.in
@@ -51,5 +51,5 @@
dnl Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS([stropts.h sys/timeb.h sys/select.h])
+AC_CHECK_HEADERS([stropts.h sys/time.h sys/select.h])
dnl ================================================================

View File

@@ -0,0 +1,17 @@
clang/lld will try to use the given -L/usr/lib + 32bit files and potentially
fail the the test on 64bit, carries on but leads to ogg underlinking.
Quickfix, ideally this should use pkg-config and hard-fail if not found.
https://bugs.gentoo.org/740794
--- a/m4/ogg.m4
+++ b/m4/ogg.m4
@@ -24,8 +24,4 @@
fi
-XIPH_GCC_WARNING([-I$ogg_prefix/include],,
- [ OGG_CFLAGS="-I$ogg_prefix/include"
- OGG_LDFLAGS="-L$ogg_prefix/lib"
- ])
AC_CACHE_CHECK([for libogg], xt_cv_lib_ogg,
[dnl

View File

@@ -3,6 +3,8 @@
EAPI=8
inherit autotools
DESCRIPTION="Icecast OGG streaming client, supports on the fly re-encoding"
HOMEPAGE="https://icecast.org/ices/"
SRC_URI="http://downloads.xiph.org/releases/${PN}/${P}.tar.bz2"
@@ -22,6 +24,17 @@ RDEPEND="
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${P}-libogg-test.patch
"${FILESDIR}"/${P}-gettimeofday.patch
)
src_prepare() {
default
eautoreconf #740794,870973
}
src_configure() {
econf --sysconfdir="${EPREFIX}"/etc/ices2
}