sys-apps/usermode-utilities: Fix call to undeclared library function

A lot of functions from string.h (including memset) couldn't be found.
Resulting in error: call to undeclared library function memset type
error.

Closes: https://bugs.gentoo.org/898550
Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/31415
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
This commit is contained in:
Brahmajit Das
2023-06-13 14:41:57 +00:00
committed by Joonas Niilola
parent 1a9762db97
commit 9bcedfbc12
2 changed files with 91 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
Fix building with clang-16, as lot of functions from string.h (including
memset) couldn't be found. Resulting in error: call to undeclared library
function memset type error.
Bug: https://bugs.gentoo.org/898550
--- a/port-helper/port-helper.c
+++ b/port-helper/port-helper.c
@@ -13,6 +13,7 @@ for read and write, and the console is functional.
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
+#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/ioctl.h>
--- a/uml_switch/port.c
+++ b/uml_switch/port.c
@@ -1,6 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <string.h>
#include <errno.h>
#include <sys/socket.h>
#include <sys/un.h>
--- a/uml_switch/uml_switch.c
+++ b/uml_switch/uml_switch.c
@@ -6,6 +6,7 @@
#include <errno.h>
#include <stdlib.h>
#include <signal.h>
+#include <string.h>
#include <fcntl.h>
#include <stdint.h>
#include <sys/socket.h>
--- a/watchdog/uml_watchdog.c
+++ b/watchdog/uml_watchdog.c
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
+#include <string.h>
#include <errno.h>
#include <sys/socket.h>
#include <sys/un.h>

View File

@@ -0,0 +1,47 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs
DESCRIPTION="Tools for use with Usermode Linux virtual machines"
HOMEPAGE="http://user-mode-linux.sourceforge.net/"
SRC_URI="http://user-mode-linux.sourceforge.net/uml_utilities_${PV}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="fuse"
RDEPEND="
fuse? ( sys-fs/fuse:0= )
sys-libs/readline:0=
"
DEPEND="${RDEPEND}"
S="${WORKDIR}"/tools-${PV}
PATCHES=(
# Merge previous patches with fix for bug #331099
"${FILESDIR}"/${P}-rollup.patch
# Fix owner of humfsify; bug #364531
"${FILESDIR}"/${P}-humfsify-owner.patch
"${FILESDIR}"/${P}-headers.patch #580816
# Fix build /w clang-16, bug #898550
"${FILESDIR}"/${PN}-fix-memset.patch
)
src_prepare() {
default
sed -i -e 's:-o \$(BIN):$(LDFLAGS) -o $(BIN):' "${S}"/*/Makefile || die "LDFLAGS sed failed"
sed -i -e 's:-o \$@:$(LDFLAGS) -o $@:' "${S}"/moo/Makefile || die "LDFLAGS sed (moo) failed"
if ! use fuse; then
einfo "Skipping build of umlmount to avoid sys-fs/fuse dependency."
sed -i -e 's/\<umlfs\>//' Makefile || die "sed to remove sys-fs/fuse dependency failed"
fi
}
src_compile() {
tc-export AR CC
emake CFLAGS="${CFLAGS} ${CPPFLAGS} -DTUNTAP -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -g -Wall" all
}