sys-libs/gcompat: new package, add 1.1.0

Signed-off-by: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
This commit is contained in:
Haelwenn (lanodan) Monnier
2024-03-20 20:31:53 +01:00
parent 6be2c5ff75
commit c5baf4e402
3 changed files with 70 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
# Copyright 2018-2020 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib-minimal flag-o-matic
DESCRIPTION="The GNU C Library compatibility layer for musl"
HOMEPAGE="https://git.adelielinux.org/adelie/gcompat"
KEYWORDS="~amd64 ~x86"
LICENSE="UoI-NCSA"
IUSE="libucontext obstack"
SRC_URI="https://distfiles.adelielinux.org/source/${PN}/${P}.tar.xz"
SLOT="0"
DEPEND="
libucontext? ( sys-libs/libucontext )
obstack? ( sys-libs/obstack-standalone )
"
RDEPEND="${DEPEND}"
get_loader_name() {
# Loosely based on Adélie APKBUILD
# TODO: Check against glibcs logic
case "$ABI" in
x86) echo "ld-linux.so.2" ;;
amd64) echo "ld-linux-x86-64.so.2" ;;
arm*) echo "ld-linux-armhf.so.3" ;;
arm64) echo "ld-linux-aarch64.so.1" ;;
mips | powerpc | s390) echo "ld.so.1" ;;
esac
}
get_linker_path() {
local arch=$(ldd 2>&1 | sed -n '1s/^musl libc (\(.*\))$/\1/p')
echo "/lib/ld-musl-${arch}.so.1"
}
src_compile() {
filter-flags "-Wl,--as-needed"
emake \
LINKER_PATH="$(get_linker_path)" \
LOADER_NAME="$(get_loader_name)" \
WITH_OBSTACK="$(usex obstack 'obstack-standalone' 'no')" \
$(usex libucontext WITH_LIBUCONTEXT=yes '')
}
src_install() {
emake \
LINKER_PATH="$(get_linker_path)" \
LOADER_NAME="$(get_loader_name)" \
WITH_OBSTACK="$(usex obstack 'obstack-standalone' 'no')" \
$(usex libucontext WITH_LIBUCONTEXT=yes '') \
DESTDIR="${D}" \
install
}