forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sys-libs/musl: iconv, getent and getconf
Package-Manager: portage-2.2.28
- Loading branch information
Showing
3 changed files
with
156 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,5 @@ | ||
DIST getconf.c 11614 SHA256 d87d0cbb3690ae2c5d8cc218349fd8278b93855dd625deaf7ae50e320aad247c SHA512 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d WHIRLPOOL 279170a21cd6d5b560b0c834236acf4989f1a7f5e9ecf9d7e594abc21b65f8aeb26a26475c49f4052d5f9b4f9d95032d22b1790dbd99e3f55c3677eb9fc6df8b | ||
DIST getent.c 9438 SHA256 68373a55e89ce85c562d941ccf588337d6cc6c9c17689d695f65cd7607134bbe SHA512 b35de9847353b273516162ed4828a810c6130fc5b7de44ee4433003b3f99647b25792d9b1c40dfc67069add11f3fb850e5c35d4f1912dccac108059bbbdfd5a2 WHIRLPOOL 473e54a9158e70c411f4c84e590bcfd245051212a3346a3c6dd45df9f09a5fbccbc8900ad7f8691eb5ebb8cd1002caf9519abaffb1753175d4f8acb1d32236b4 | ||
DIST iconv.c 2577 SHA256 f79a2930a2e5bb0624321589edf8b889d1e9b603e01e6b7ae214616605b3fdd7 SHA512 9d42d66fb1facce2b85dad919be5be819ee290bd26ca2db00982b2f8e055a0196290a008711cbe2b18ec9eee8d2270e3b3a4692c5a1b807013baa5c2b70a2bbf WHIRLPOOL 8b067d7f3e5b8c9862cf78cf727fa748d9b6b23be518df382251d1e3e0a6eb386b1fd7788ba3b36dadba03aa5b43e25eb25528efcadc74fa543c38a61650c5bc | ||
DIST musl-1.1.12.tar.gz 918757 SHA256 720b83c7e276b4b679c0bffe9509340d5f81fd601508e607e708177df0d31c0e SHA512 7cabbe2665e32bd3408c8865f89f474106e982b4e5de81d0cdeea19e19e20b4d2496faf1adc6b2811d996f30f39258184ba347e8eb5f3811eab89179e8f52d70 WHIRLPOOL cd500c3457be42d8dd927420d2352bda87e7b424fabf19fbd387858b913636793a7ff8d0e249bcc292e58c6d0d3889738c8790f3a6409d6df2da81408a77238c | ||
DIST musl-1.1.14.tar.gz 894971 SHA256 35f6c00c84a6091bd5dab29eedde7508dae755ead92dcc0239f3677d1055b9b5 SHA512 9016246b44a7e6ef51477f0a246373c79f3e796c70031c3323be1b6c4c0518a2d4578f1aa712adfd9a80cdc1d71918bd7a35855052a0452b854755bf0cc2424e WHIRLPOOL e675ed13888021376812c65addf245906bfca00c5291ca5979cb4894cbe72b3a1b69c0fd793bd49f9cef2154131f717b15b52398b43c68fcfb7c5530b1258e72 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=6 | ||
|
||
inherit eutils flag-o-matic multilib toolchain-funcs | ||
if [[ ${PV} == "9999" ]] ; then | ||
EGIT_REPO_URI="git://git.musl-libc.org/musl" | ||
inherit git-r3 | ||
SRC_URI=" | ||
http://dev.gentoo.org/~blueness/musl-misc/getconf.c | ||
http://dev.gentoo.org/~blueness/musl-misc/getent.c | ||
http://dev.gentoo.org/~blueness/musl-misc/iconv.c" | ||
KEYWORDS="" | ||
else | ||
SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz | ||
http://dev.gentoo.org/~blueness/musl-misc/getconf.c | ||
http://dev.gentoo.org/~blueness/musl-misc/getent.c | ||
http://dev.gentoo.org/~blueness/musl-misc/iconv.c" | ||
KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86" | ||
fi | ||
|
||
export CBUILD=${CBUILD:-${CHOST}} | ||
export CTARGET=${CTARGET:-${CHOST}} | ||
if [[ ${CTARGET} == ${CHOST} ]] ; then | ||
if [[ ${CATEGORY} == cross-* ]] ; then | ||
export CTARGET=${CATEGORY#cross-} | ||
fi | ||
fi | ||
|
||
DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety" | ||
HOMEPAGE="http://www.musl-libc.org/" | ||
LICENSE="MIT LGPL-2 GPL-2" | ||
SLOT="0" | ||
IUSE="crosscompile_opts_headers-only" | ||
|
||
QA_SONAME="/usr/lib/libc.so" | ||
QA_DT_NEEDED="/usr/lib/libc.so" | ||
|
||
is_crosscompile() { | ||
[[ ${CHOST} != ${CTARGET} ]] | ||
} | ||
|
||
just_headers() { | ||
use crosscompile_opts_headers-only && is_crosscompile | ||
} | ||
|
||
musl_endian() { | ||
# XXX: this wont work for bi-endian, but we dont have any | ||
touch "${T}"/endian.s || die | ||
$(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o | ||
case $(file "${T}"/endian.o) in | ||
*" MSB "*) echo "";; | ||
*" LSB "*) echo "el";; | ||
*) echo "nfc";; # We shouldn't be here | ||
esac | ||
} | ||
|
||
pkg_setup() { | ||
if [ ${CTARGET} == ${CHOST} ] ; then | ||
case ${CHOST} in | ||
*-musl*) ;; | ||
*) die "Use sys-devel/crossdev to build a musl toolchain" ;; | ||
esac | ||
fi | ||
} | ||
|
||
src_configure() { | ||
tc-getCC ${CTARGET} | ||
just_headers && export CC=true | ||
|
||
local sysroot | ||
is_crosscompile && sysroot=/usr/${CTARGET} | ||
./configure \ | ||
--target=${CTARGET} \ | ||
--prefix=${sysroot}/usr \ | ||
--syslibdir=${sysroot}/lib \ | ||
--disable-gcc-wrapper | ||
} | ||
|
||
src_compile() { | ||
emake obj/include/bits/alltypes.h | ||
just_headers && return 0 | ||
|
||
emake | ||
$(tc-getCC) ${CFLAGS} "${DISTDIR}"/getconf.c -o "${T}"/getconf | ||
$(tc-getCC) ${CFLAGS} "${DISTDIR}"/getent.c -o "${T}"/getent | ||
$(tc-getCC) ${CFLAGS} "${DISTDIR}"/iconv.c -o "${T}"/iconv | ||
} | ||
|
||
src_install() { | ||
local target="install" | ||
just_headers && target="install-headers" | ||
emake DESTDIR="${D}" ${target} | ||
just_headers && return 0 | ||
|
||
# musl provides ldd via a sym link to its ld.so | ||
local sysroot | ||
is_crosscompile && sysroot=/usr/${CTARGET} | ||
local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) | ||
dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd | ||
|
||
if [[ ${CATEGORY} != cross-* ]] ; then | ||
local target=$(tc-arch) arch | ||
local endian=$(musl_endian) | ||
case ${target} in | ||
amd64) arch="x86_64";; | ||
arm) arch="armhf";; # We only have hardfloat right now | ||
mips) arch="mips${endian}";; | ||
ppc) arch="powerpc";; | ||
x86) arch="i386";; | ||
esac | ||
cp "${FILESDIR}"/ldconfig.in "${T}" || die | ||
sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die | ||
into / | ||
dosbin "${T}"/ldconfig | ||
into /usr | ||
dosbin "${T}"/getconf | ||
dosbin "${T}"/getent | ||
dosbin "${T}"/iconv | ||
echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die | ||
doenvd "${T}"/00musl || die | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
is_crosscompile && return 0 | ||
|
||
[ "${ROOT}" != "/" ] && return 0 | ||
|
||
ldconfig | ||
# reload init ... | ||
/sbin/telinit U 2>/dev/null | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters