commit:     ddd1c8bdca710a247562f2a25c82f61f14733054
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 26 16:46:40 2020 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Nov 26 16:46:47 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddd1c8bd

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 <AT> gentoo.org>

 sys-devel/native-cctools/native-cctools-5.ebuild | 119 +++++++++++++++++++++++
 1 file changed, 119 insertions(+)

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 00000000000..d548ec568b4
--- /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}
+}

Reply via email to