# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit flag-o-matic DESCRIPTION="Darwin Csu (crt1.o) - Mac OS X 10.10 version" HOMEPAGE="http://www.opensource.apple.com/" SRC_URI="http://www.opensource.apple.com/tarballs/Csu/Csu-${PV}.tar.gz" LICENSE="APSL-2" SLOT="0" KEYWORDS="~ppc-macos ~x64-macos" S=${WORKDIR}/Csu-${PV} # for now it seems FSF GCC can't compile this thing, so we need # gcc-apple or clang (which is also sort of "-apple") DEPEND="|| ( sys-devel/clang =sys-devel/gcc-apple-4.2.1* )" src_prepare() { # apart from gcc-4.2.1 possibly not understanding, this better not # be aggressively optimised filter-flags -march=* -mtune=* # since we don't have crt0, we can't build it either sed -i \ -e 's:$(SYMROOT)/crt0.o::' \ -e '/LOCLIBDIR)\/crt0.o/d' \ -e '/^CC = /d' \ -e "/ARCH_CFLAGS =/s|=|= ${CFLAGS}|" \ Makefile || die # only require Availability.h for arm, bugs #538602, #539964 eapply "${FILESDIR}"/${P}-arm-availability.patch if [[ ${CHOST} == powerpc* ]] ; then # *must not* be compiled with -Os on PPC because that # will optimize out # _pointer_to__darwin_gcc3_preregister_frame_info which # causes linker errors for large programs because the # jump to ___darwin_gcc3_preregister_frame_info gets to # be more than 16MB away sed -i -e "s, -Os , -O ,g" Makefile || die fi eapply_user } src_compile() { # FSF GCC-7.3.0 most notably complains about private_externs, but it # also has issues with the assembly, so use gcc-apple, if it is # installed. Normally, (non-ppc) users will have clang installed, # so this isn't used, should they have gcc-apple installed, then # this wouldn't hurt either. type -P gcc-4.2.1 > /dev/null && export CC=gcc-4.2.1 emake USRLIBDIR="${EPREFIX}"/lib } src_install() { emake -j1 \ USRLIBDIR="${EPREFIX}"/lib \ LOCLIBDIR="${EPREFIX}"/lib \ DSTROOT="${D}" \ install }