diff options
author | Fabian Groffen <grobian@gentoo.org> | 2020-11-26 17:46:40 +0100 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2020-11-26 17:46:47 +0100 |
commit | ddd1c8bdca710a247562f2a25c82f61f14733054 (patch) | |
tree | dbc315d93de05cde1d8398b65d1d616ad2ae3bfe /sys-devel | |
parent | media-sound/gmtp: fix BDEPEND typo (diff) | |
download | gentoo-ddd1c8bdca710a247562f2a25c82f61f14733054.tar.gz gentoo-ddd1c8bdca710a247562f2a25c82f61f14733054.tar.bz2 gentoo-ddd1c8bdca710a247562f2a25c82f61f14733054.zip |
sys-devel/native-cctools-5: version bump for macOS Big Sur
Closes: https://bugs.gentoo.org/756157
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/native-cctools/native-cctools-5.ebuild | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/sys-devel/native-cctools/native-cctools-5.ebuild b/sys-devel/native-cctools/native-cctools-5.ebuild new file mode 100644 index 000000000000..d548ec568b42 --- /dev/null +++ b/sys-devel/native-cctools/native-cctools-5.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit eutils + +DESCRIPTION="Host OS native assembler as and static linker ld" +HOMEPAGE="https://prefix.gentoo.org/" +SRC_URI="" + +LICENSE="GPL-2" # actually, we don't know, the wrapper is +SLOT="0" + +AIX_V='aix-2' + +KEYWORDS="~ppc-aix ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" + +IUSE="" + +DEPEND="sys-devel/binutils-config" +RDEPEND="${DEPEND}" + +src_unpack() { + mkdir -p "${S}" +} + +src_install() { + LIBPATH=/usr/$(get_libdir)/binutils/${CHOST}/native-${PV} + BINPATH=/usr/${CHOST}/binutils-bin/native-${PV} + + keepdir ${LIBPATH} || die + dodir ${BINPATH} + + # allow for future hosts with different paths + nativepath="" + wrappers=() + case ${CHOST} in + *-solaris*) + nativepath=/usr/sfw/bin + ;; + *-aix*) + nativepath=/usr/ccs/bin + wrappers=("${wrappers[@]}" "ld=${FILESDIR}/${AIX_V}/ld") + wrappers=("${wrappers[@]}" "nm=${FILESDIR}/${AIX_V}/nm") + wrappers=("${wrappers[@]}" "mkexpfile=${FILESDIR}/${AIX_V}/mkexpfile") + ;; + *-apple-darwin*|*-netbsd*|*-openbsd*) + nativepath=/usr/bin + ;; + *-interix*) + nativepath=/opt/gcc.3.3/bin + ;; + *) + die "Don't know where the native linker for your platform is" + ;; + esac + + what="addr2line as ar c++filt gprof ld nm objcopy objdump \ + ranlib readelf elfdump size strings strip" + # Darwin things + what="${what} install_name_tool ld64 libtool lipo nmedit \ + otool otool64 pagestuff redo_prebinding segedit" + + # copy from the host os + cd "${ED}${BINPATH}" + for b in ${what} ; do + if [[ ${CHOST} == *-darwin* && ${b} == libtool ]] ; then + echo "linking darwin libtool ${nativepath}/${b}" + ln -s "${nativepath}/${b}" "${b}" + elif [[ -x ${nativepath}/g${b} ]] ; then + einfo "linking ${nativepath}/g${b}" + ln -s "${nativepath}/g${b}" "${b}" + elif [[ -x ${nativepath}/${b} ]] ; then + einfo "linking ${nativepath}/${b}" + ln -s "${nativepath}/${b}" "${b}" + else + ewarn "skipping ${b} (not in ${nativepath})" + fi + done + + # post fix for Darwin's ranlib (doesn't like it when its called other than + # that, as libtool and ranlib are one tool) + # on macOS Big Sur, all tools except ld require to be called plainly as well + if [[ ${CHOST} == *-darwin* ]] ; then + [[ ${CHOST##*-darwin} -lt 20 ]] && what="ranlib" + for b in ${what} ; do + [[ ${what} == ld ]] && continue + rm -f ${b} + cat <<-EOF > ${b} + #!/usr/bin/env bash + exec ${nativepath}/${b} "\$@" + EOF + chmod 755 ${b} + done + fi + + exeinto ${BINPATH} + local wrapper source target + for wrapper in "${wrappers[@]}" ; do + source=${wrapper#*=} + target=${wrapper%%=*} + rm -f "${target}" + newexe "${source}" "${target}" || die + done + # Generate an env.d entry for this binutils + insinto /etc/env.d/binutils + cat <<-EOF > "${T}"/env.d + TARGET="${CHOST}" + VER="native-${PV}" + LIBPATH="${EPREFIX}/${LIBPATH}" + FAKE_TARGETS="${CHOST}" + EOF + newins "${T}"/env.d ${CHOST}-native-${PV} +} + +pkg_postinst() { + binutils-config ${CHOST}-native-${PV} +} |