diff options
author | Michał Górny <mgorny@gentoo.org> | 2018-06-22 14:07:29 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2018-06-22 14:10:08 +0200 |
commit | ffe933033442c27d5e99788f82f958f03ee0b7d0 (patch) | |
tree | db0f80bab5f223cb8045811daaa99756a3b1a7d4 /sys-devel/multilib-gcc-wrapper | |
parent | sys-devel/multilib-gcc-wrapper: Support updating shadowman symlinks (diff) | |
download | gentoo-ffe933033442c27d5e99788f82f958f03ee0b7d0.tar.gz gentoo-ffe933033442c27d5e99788f82f958f03ee0b7d0.tar.bz2 gentoo-ffe933033442c27d5e99788f82f958f03ee0b7d0.zip |
sys-devel/multilib-gcc-wrapper: Bump to EAPI=7
Diffstat (limited to 'sys-devel/multilib-gcc-wrapper')
-rw-r--r-- | sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0-r2.ebuild | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0-r2.ebuild b/sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0-r2.ebuild new file mode 100644 index 000000000000..f670a006b51a --- /dev/null +++ b/sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0-r2.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit multilib + +DESCRIPTION="Wrappers for gcc tools to be used on non-native CHOSTs" +HOMEPAGE="https://www.gentoo.org" +SRC_URI="" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +RDEPEND="sys-devel/gcc:=" + +S=${WORKDIR} + +mkwrap() { + einfo " ${2}" + + cat > "${T}"/wrapper <<-_EOF_ + #!${EPREFIX}/bin/sh + exec ${1} $(get_abi_CFLAGS) "\${@}" + _EOF_ + + newbin "${T}"/wrapper "${2}" +} + +src_install() { + local host_prefix=${CHOST} + # stolen from sys-devel/gcc-config + # TODO: check if all of them actually support $(get_ABI_CFLAGS) + local tools=( + cpp cc gcc c++ g++ f77 g77 gcj gcjh gdc gdmd gfortran gccgo + ) + + cd "${EROOT%/}"/usr/bin || die + shopt -s nullglob + + # same as toolchain.eclass + : ${TARGET_DEFAULT_ABI:=${DEFAULT_ABI}} + : ${TARGET_MULTILIB_ABIS:=${MULTILIB_ABIS}} + local ABI t e + for ABI in $(get_all_abis TARGET); do + [[ ${ABI} == ${TARGET_DEFAULT_ABI} ]] && continue + + einfo "Creating wrappers for ${ABI} ..." + for t in "${tools[@]}"; do + # look for both plain *-gcc and e.g. *-gcc-4.8.3 + # (but avoid *-gcc-nm) + # note: nullglob applied above + for e in ${host_prefix}[-]${t}{,-[0-9]*}; do + local newname=$(get_abi_CHOST)-${e#${host_prefix}-} + + einfo " ${newname}" + + cat > "${T}"/wrapper <<-_EOF_ + #!${EPREFIX}/bin/sh + exec ${e} $(get_abi_CFLAGS) "\${@}" + _EOF_ + + newbin "${T}"/wrapper "${newname}" + done + done + done + + shopt -u nullglob +} + +pkg_postinst() { + if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi +} + +pkg_postrm() { + if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow clean all + fi +} |