1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# 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
}
|