summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2020-11-26 17:46:40 +0100
committerFabian Groffen <grobian@gentoo.org>2020-11-26 17:46:47 +0100
commitddd1c8bdca710a247562f2a25c82f61f14733054 (patch)
treedbc315d93de05cde1d8398b65d1d616ad2ae3bfe /sys-devel/native-cctools
parentmedia-sound/gmtp: fix BDEPEND typo (diff)
downloadgentoo-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/native-cctools')
-rw-r--r--sys-devel/native-cctools/native-cctools-5.ebuild119
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}
+}