summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-devel/binutils-apple/ChangeLog10
-rw-r--r--sys-devel/binutils-apple/Manifest10
-rw-r--r--sys-devel/binutils-apple/binutils-apple-3.2.3.ebuild249
-rw-r--r--sys-devel/binutils-apple/files/binutils-apple-3.2.3-as-dir.patch69
-rw-r--r--sys-devel/binutils-apple/files/binutils-apple-3.2.3-ranlib.patch59
-rw-r--r--sys-devel/binutils-apple/metadata.xml2
6 files changed, 395 insertions, 4 deletions
diff --git a/sys-devel/binutils-apple/ChangeLog b/sys-devel/binutils-apple/ChangeLog
index 1a4e3e417408..a663ee11883f 100644
--- a/sys-devel/binutils-apple/ChangeLog
+++ b/sys-devel/binutils-apple/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-devel/binutils-apple
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/ChangeLog,v 1.12 2010/05/18 10:42:10 grobian Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/ChangeLog,v 1.13 2010/08/06 20:08:22 grobian Exp $
+
+*binutils-apple-3.2.3 (06 Aug 2010)
+
+ 06 Aug 2010; Fabian Groffen <grobian@gentoo.org>
+ +binutils-apple-3.2.3.ebuild, +files/binutils-apple-3.2.3-as-dir.patch,
+ +files/binutils-apple-3.2.3-ranlib.patch:
+ Version bump to version from Develper Tools 3.2.3, thanks to Heiko Przybyl
+ for the patching and LTO support
*binutils-apple-3.2.2 (18 May 2010)
diff --git a/sys-devel/binutils-apple/Manifest b/sys-devel/binutils-apple/Manifest
index 7a3dd137f2f9..a4469c51a0e7 100644
--- a/sys-devel/binutils-apple/Manifest
+++ b/sys-devel/binutils-apple/Manifest
@@ -12,23 +12,29 @@ AUX binutils-apple-3.1.2-as-Makefile.patch 308 RMD160 043f9f5fc0eeedd7c1f61520ba
AUX binutils-apple-3.2-armv7-defines.patch 321 RMD160 f6aa6230d53de02c1c60e127bec188e748502157 SHA1 4f83bf45ee90d727e83a326d1218786bff4b80a8 SHA256 1c7fb1938bc8d906af861ff4cc430ebee860162d0de28ca4ebb57d67ff62074f
AUX binutils-apple-3.2-ld64-Makefile 760 RMD160 da9f2930915d75d51bab3a58417a3ddc59a24bc4 SHA1 f4e0735ed11f3b277d88cf5300efab9e4ac03dda SHA256 990d24770f2e9ef985ad0f8d9f56c0fb1a0798b102418d29810918447a5ec92e
AUX binutils-apple-3.2.2-as.patch 2777 RMD160 b94adf36e78c3b43998a063c035979195296ac86 SHA1 eb1be8fbaee452aaa97dd78d2ef7b6eb46eb1274 SHA256 99692bb424bd21d6772c5a81239ecb5babc3b6d6f18a8c7a43e424acb92676d4
+AUX binutils-apple-3.2.3-as-dir.patch 1532 RMD160 501c32713235aa7301abca9e6282be277bda415d SHA1 67d2d059562edb55802a8f08485dbc4c0dafb377 SHA256 f2362bf0b6a8dcb0fb533e4db6ab238c6864bd0794051a8331cfef2ea2c57807
+AUX binutils-apple-3.2.3-ranlib.patch 2866 RMD160 3e9c64eea5676b872cbf60268ecb479a7142124d SHA1 bc91dc48fbdb8f076912641b8726c01dfb91c693 SHA256 f14e19ab699a15b7c167cddd56de22a88863599b1ea01c53fd8476aa64697245
AUX ld64-95.2.12-Makefile 728 RMD160 56104bcb07a3845b11cf9034f1051c0ceebf681d SHA1 7549a604ea69ad1ad93b92511a70634033cdbab8 SHA256 3e1181c3dc7aaa8cb5d02cc00fc0f760d052bb2714883833a5aaa2fa3105f88d
AUX ld64-95.2.12-darwin8-no-mlong-branch-warning.patch 620 RMD160 cf17f65dda73393a921896b8844493b237dc3307 SHA1 b834e98d61a9ecd70aa99b89b5575a8e32b5b2f7 SHA256 ca0455c78e77f84e7d15e6edf19085b0729a12baf29a89455af84e947f201b1d
DIST binutils-apple-3.2-unwind-patches-2.tar.xz 23888 RMD160 2d677f7a3f74aaec20f1e999283dd023d1873b54 SHA1 e1b74657fa3f3a0cf479bf7e03d8aceb2295a985 SHA256 2859c3545c467f516bac0704ff97a8d18766d91faa28dfad1dcc07bfbd03919d
DIST binutils-apple-3.2-unwind-patches-3.tar.xz 23908 RMD160 087a2fdb12b6e4bc23379ebee6f5c6ddc1aabc04 SHA1 9fb923c01056e3ce48b8a85799555335993871b3 SHA256 b3082b464cf8fdc4b1f8fd2a73b5b7580c524cdde09869b82b770e62168b6939
+DIST binutils-apple-3.2-unwind-patches-4.tar.xz 26680 RMD160 5fe5ebbbd8dd5fc3f34fd6e7d053063b40aa981e SHA1 82d5289fb54a83e1588af800f2f622e7a004c0b5 SHA256 2864d58a4cc48f45b05fefb1b8d4eac532a7748ea7dfcf2863cf6f7111b29c5f
DIST binutils-apple-LP64-patches-1.tar.bz2 10235 RMD160 754e956a9b8b9ecdf1bde5115bad0eb85545292e SHA1 e863f222e2f3eb5134de661987c7e5b58abaa710 SHA256 a107459f3914d57524e51ec4cb5e800f6715d40003514c79add0b5b4521cf809
DIST cctools-698.1.tar.gz 2318018 RMD160 898c7b46869d4989c115420912fdd8d96ae923d3 SHA1 11cb788151365fb365f7bf4a9083c3fcc6fa88f7 SHA256 383f1c0c78a2b3efdfdf7ce01adb7e2f8ee9985164dba6ab1c0fae800a211cec
DIST cctools-698.tar.gz 2318613 RMD160 6e044c684936172d048e0790d087bb96e47ecb20 SHA1 9016e64d064b99e16ad71c79f2337dd0fc281b1b SHA256 c7a02ebab31fb3ecc18299e85620913ea3729750114d01a50f6e404ff405dc71
DIST cctools-750.tar.gz 1947953 RMD160 4b4074a93d071fc56f5b9ebd972c6a175bb9904e SHA1 20dd28b6e41e6ca367a6f457f6b465a0e4fbae3c SHA256 188855640da114e37e4ddd4824ff6cdc1ea89dfb6c90a23905c9ca315342f356
DIST cctools-773.tar.gz 1962238 RMD160 3ea1b348c878efebc1d1ba9d50a89840c272aafd SHA1 762318baef6f4efca75a066d8265e0cddee267e1 SHA256 293729884921bc9c05fcbe8ef9c2b1166a7ff92cfd5bdb30349b483e78464f98
+DIST cctools-782.tar.gz 1981521 RMD160 5b50b75ff7825a97fa4f095d135a6372ce787c10 SHA1 1ed1e38564fc00dc2825382ca5c856403b5eeba3 SHA256 fdf0f60adfab24dd87af9e91c364743e006a241d297ee3cbba7b628fda6d7a9c
DIST ld64-85.2.1.tar.gz 598524 RMD160 42c80bd4ad6e9f96a757245e6a2b95084c009ff1 SHA1 31a7debf4c407c32b8bd1a51a4b4a7ae68dc8b85 SHA256 4bcbcbdfd62efdc46c51700b8f5dae2cbd1638e9e50f649d5c7f242d32fca804
DIST ld64-85.2.2.tar.gz 298144 RMD160 f7f897666a072e07f1888beca5b22fdd75fa1b61 SHA1 33c655bd7cbfecd70807dbde428615fb0947f31b SHA256 01ab6f6f1ce91203722c5cd56666ffa81da0eafe8beee1490a383811d56d86aa
DIST ld64-95.2.12.tar.gz 401104 RMD160 35de89aa1d31d100bd952829df4316e640c03cb4 SHA1 eea384a5ed3b5a994cc24e076c74ad20e6f8b68a SHA256 5a5ea02bd81d74f4f773403bebe34950acf4830fb7fee0d466305276f869097c
+DIST ld64-97.14.tar.gz 421074 RMD160 5116cc587a7761d06e1da93019362705510c3d7b SHA1 a21da97f574a121ef29b8a1bfc7a7c74692a0152 SHA256 bfc46df452fc60d9befcefabac8db444d963407af4e3a060a01e394d5ee8d2b4
DIST ld64-97.2.tar.gz 415630 RMD160 e5557db2809627a9a0771c949b42e15c23eb65ba SHA1 3db816678f96db0dc1936af0ceb5c58b049648d6 SHA256 3a94376586656192e16a09c7b82e2a70f0a441fc8cb2ccf8a835a050e82866da
EBUILD binutils-apple-3.1.1.ebuild 5157 RMD160 692fc010932d7ddbf51b3fd63f1f79742cdfcff3 SHA1 5c82eb1ce460f94cc4328327ad5c141463a3953a SHA256 c8f9904789faea57409863af02683e6eae36377925fcf4e7a9dd44dab9c7e6ac
EBUILD binutils-apple-3.1.2.ebuild 5288 RMD160 bbe9a2371e5e1e66b0c9fa2f4ca600bb2474d234 SHA1 5d21c2ac4c555ec8d997efe9d5ae0233b2fa17cb SHA256 0818f10ee517368085e4bacfd53f25ab81115f05b480fb716c6b70b7ebc59bdd
EBUILD binutils-apple-3.2-r1.ebuild 6228 RMD160 fdd810e43d987bebc9c938beb12ac204667f0cbe SHA1 489c9b0f50541e29f6dc60de68aa3ee21c1c538b SHA256 26c29b4bf9584053e42a6a3d197afc0a21f95413bf6bccf86cb21f4e08c3bcaa
EBUILD binutils-apple-3.2.2.ebuild 6202 RMD160 73621094f924415c7669361fde13cc9911ccd56c SHA1 fade93e2da454f2c1f5f9166fbdfbd186efee932 SHA256 c26d98fd40daf363671147acfa554992310b3cda657242a880f2c026f05dac5f
+EBUILD binutils-apple-3.2.3.ebuild 6622 RMD160 265a485ab9ca2f32a7ef8fab7f9b6796cb7708bd SHA1 e1302fe3009488f04f974f74e6f80b08f8df7dae SHA256 fcbc5953ba82bef4ab71b6be45f3b934bc4c989137463969d55584c7b5be86c8
EBUILD binutils-apple-3.2.ebuild 5913 RMD160 47df8d8d2e207eb95e10359f35c2c5fd152f8938 SHA1 26b56881f56b63bc3f9b25aeae6c814f969f5dfd SHA256 41fb357219cdbb20f16200d05016c1866046f9a351994b738d6e0b7176f3488e
-MISC ChangeLog 5847 RMD160 e1bc051d1ce35d8b352f36c9b19836d56880b625 SHA1 7aa5dc5a055970911277777bdabde7468c3c43b8 SHA256 50ba6e34c1aeb169fc5b634c6e39b2614975241b915f36acaa170bafc618e76b
-MISC metadata.xml 158 RMD160 61ad495b84df949a636009d30b8c3af6d267e469 SHA1 cacd49ab85e7648a81e5dd4791ef9598090ee63d SHA256 6a21555efc71392966785841abafc9b2984d97d75ad574d654db6adc8674b1bd
+MISC ChangeLog 6166 RMD160 2e3fd577ed22804d2b6b9c8778cf5b94502fe884 SHA1 8ca6bc24cacb240e42a675504ad2ec61e310ab0e SHA256 670eecedceda2acb94a03c5ece26b947c1e89bfbe0297ee68ddae67732067505
+MISC metadata.xml 159 RMD160 daf7422c2bde2c03abbeccce93691898dee7460a SHA1 dac0288d1bc404d23c4d31e83c51d9f9381a2828 SHA256 9f4e165acd1a7bdc5c8ccdb4a40a2e969e056b8463bfe94a1b2e29cc4ef62af4
diff --git a/sys-devel/binutils-apple/binutils-apple-3.2.3.ebuild b/sys-devel/binutils-apple/binutils-apple-3.2.3.ebuild
new file mode 100644
index 000000000000..d88c184bea1e
--- /dev/null
+++ b/sys-devel/binutils-apple/binutils-apple-3.2.3.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/binutils-apple-3.2.3.ebuild,v 1.1 2010/08/06 20:08:22 grobian Exp $
+
+EAPI="3"
+
+inherit eutils flag-o-matic toolchain-funcs
+
+RESTRICT="test" # the test suite will test what's installed.
+
+LD64=ld64-97.14
+CCTOOLS=cctools-782
+# http://lists.apple.com/archives/Darwin-dev/2009/Sep/msg00025.html
+UNWIND=binutils-apple-3.2-unwind-patches-4
+
+DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools 3.2.3"
+HOMEPAGE="http://www.opensource.apple.com/darwinsource/"
+SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz
+ http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz
+ http://www.gentoo.org/~grobian/distfiles/${UNWIND}.tar.xz"
+
+LICENSE="APSL-2"
+KEYWORDS="~ppc-macos ~x64-macos ~x86-macos"
+IUSE="test"
+SLOT="0"
+
+RDEPEND="sys-devel/binutils-config
+ test? ( >=dev-lang/perl-5.8.8 )"
+DEPEND="${RDEPEND}
+ >=sys-devel/gcc-apple-4.2.1"
+
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+if is_cross ; then
+ SLOT="${CTARGET}"
+else
+ SLOT="0"
+fi
+
+LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
+INCPATH=${LIBPATH}/include
+DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
+if is_cross ; then
+ BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV}
+else
+ BINPATH=/usr/${CTARGET}/binutils-bin/${PV}
+fi
+
+S=${WORKDIR}
+
+src_prepare() {
+ cd "${S}"/${CCTOOLS}
+ epatch "${FILESDIR}"/${PN}-3.2.2-as.patch
+ epatch "${FILESDIR}"/${PN}-3.2.3-as-dir.patch
+ epatch "${FILESDIR}"/${PN}-3.2.3-ranlib.patch
+ epatch "${FILESDIR}"/${PN}-3.1.1-libtool-ranlib.patch
+ epatch "${FILESDIR}"/${PN}-3.1.1-nmedit.patch
+ epatch "${FILESDIR}"/${PN}-3.1.1-no-headers.patch
+ epatch "${FILESDIR}"/${PN}-3.1.1-no-oss-dir.patch
+
+ cd "${S}"/${LD64}/src
+ cp "${FILESDIR}"/ld64-95.2.12-Makefile Makefile
+
+ ln -s ../../${CCTOOLS}/include
+ cp "${WORKDIR}"/ld64-unwind/compact_unwind_encoding.h include/mach-o/
+ mkdir -p include/llvm-c || die
+ cp "${WORKDIR}"/ld64-unwind/${LD64}-llvm-lto.h include/llvm-c/lto.h || die
+ cp other/prune_trie.h include/mach-o/ || die
+
+ echo '' > configure.h
+ echo '' > linker_opts
+ local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\""
+ echo "char ldVersionString[] = ${VER_STR};" > version.cpp
+
+ epatch "${WORKDIR}"/ld64-unwind/${LD64}-unlibunwind.patch
+ [[ ${CHOST} == *-darwin10 ]] && \
+ epatch "${WORKDIR}"/ld64-unwind/${LD64}-message-before-abort.patch
+ [[ ${CHOST} == powerpc*-darwin* ]] && \
+ epatch "${FILESDIR}"/ld64-95.2.12-darwin8-no-mlong-branch-warning.patch
+ sed -i -e '/#define LTO_SUPPORT 1/d' other/ObjectDump.cpp || die
+
+ # clean up test suite
+ cd "${S}"/${LD64}
+ epatch "${FILESDIR}"/${PN}-3.1.1-testsuite.patch
+
+ cd "${S}"/${LD64}/unit-tests/test-cases
+ local c
+
+ # we don't have llvm
+ ((++c)); rm -rf llvm-integration;
+
+ # we don't have dtrace
+ ((++c)); rm -rf dtrace-static-probes-coalescing;
+ ((++c)); rm -rf dtrace-static-probes;
+
+ # a file is missing
+ ((++c)); rm -rf eh-coalescing-r
+
+ # we don't do universal binaries
+ ((++c)); rm -rf blank-stubs;
+
+ # looks like a problem with apple's result-filter.pl
+ ((++c)); rm -rf implicit-common3;
+ ((++c)); rm -rf order_file-ans;
+
+ # TODO no idea what goes wrong here
+ ((++c)); rm -rf dwarf-debug-notes;
+
+ einfo "Deleted $c tests that were bound to fail"
+
+ cd "${S}"
+ ebegin "cleaning Makefiles from unwanted CFLAGS"
+ find . -name "Makefile" -print0 | xargs -0 sed \
+ -i \
+ -e 's/ -g / /g' \
+ -e 's/^OFLAG =.*$/OFLAG =/' \
+ -e 's/install -c -s/install/g'
+ eend $?
+
+ # -pg is used and the two are incompatible
+ filter-flags -fomit-frame-pointer
+}
+
+compile_ld64() {
+ cd "${S}"/${LD64}/src
+ # remove antiquated copy that's available on any OSX system and
+ # breaks ld64 compilation
+ mv include/mach-o/dyld.h{,.disable}
+ # LTO does not exist on older Macs
+ if [[ ${CHOST##-darwin} -ge 10 ]] ; then
+ append-libs LTO
+ append-flags -DLTO_SUPPORT
+ else
+ append-flags -ULTO_SUPPORT
+ fi
+ emake \
+ CFLAGS="${CFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ LDFLAGS="${LDFLAGS} ${LIBS}" \
+ || die "emake failed for ld64"
+ use test && emake build_test
+ # restore, it's necessary for cctools' install
+ mv include/mach-o/dyld.h{.disable,}
+}
+
+compile_cctools() {
+ cd "${S}"/${CCTOOLS}
+ emake \
+ LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \
+ EFITOOLS= \
+ COMMON_SUBDIRS='libstuff ar misc otool' \
+ SUBDIRS_32= \
+ RC_CFLAGS="${CFLAGS}" OFLAG="${CFLAGS}" \
+ || die "emake failed for the cctools"
+ cd "${S}"/${CCTOOLS}/as
+ emake \
+ BUILD_OBSOLETE_ARCH= \
+ RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \
+ || die "emake failed for as"
+}
+
+src_compile() {
+ tc-export CC CXX AR
+ compile_ld64
+ compile_cctools
+}
+
+install_ld64() {
+ exeinto ${BINPATH}
+ doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump}
+ dosym ld64 ${BINPATH}/ld
+ insinto ${DATAPATH}/man/man1
+ doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1
+}
+
+install_cctools() {
+ cd "${S}"/${CCTOOLS}
+ emake install_all_but_headers \
+ EFITOOLS= \
+ COMMON_SUBDIRS='ar misc otool' \
+ SUBDIRS_32= \
+ RC_CFLAGS="${CFLAGS}" OFLAG="${CFLAGS}" \
+ DSTROOT=\"${D}\" \
+ BINDIR=\"${EPREFIX}\"${BINPATH} \
+ LOCBINDIR=\"${EPREFIX}\"${BINPATH} \
+ USRBINDIR=\"${EPREFIX}\"${BINPATH} \
+ LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \
+ MANDIR=\"${EPREFIX}\"${DATAPATH}/man/
+ cd "${S}"/${CCTOOLS}/as
+ emake install \
+ BUILD_OBSOLETE_ARCH= \
+ DSTROOT=\"${D}\" \
+ USRBINDIR=\"${EPREFIX}\"${BINPATH} \
+ LIBDIR=\"${EPREFIX}\"${LIBPATH}
+
+ cd "${ED}"${BINPATH}
+ insinto ${DATAPATH}/man/man1
+ local skips manpage
+ # ar brings an up-to-date manpage with it
+ skips=( ar )
+ for bin in *; do
+ for skip in ${skips[@]}; do
+ if [[ ${bin} == ${skip} ]]; then
+ continue 2;
+ fi
+ done
+ manpage=${S}/${CCTOOLS}/man/${bin}.1
+ if [[ -f "${manpage}" ]]; then
+ doins "${manpage}"
+ fi
+ done
+ insinto ${DATAPATH}/man/man5
+ doins "${S}"/${CCTOOLS}/man/*.5
+}
+
+src_test() {
+ einfo "Running unit tests"
+ cd "${S}"/${LD64}/unit-tests/test-cases
+ # need host arch, since GNU arch doesn't do what Apple's does
+ tc-export CC CXX
+ perl ../bin/make-recursive.pl \
+ ARCH="$(/usr/bin/arch)" \
+ RELEASEDIR="${S}"/${LD64}/src \
+ | perl ../bin/result-filter.pl
+}
+
+src_install() {
+ install_ld64
+ install_cctools
+
+ cd "${S}"
+ insinto /etc/env.d/binutils
+ cat <<-EOF > env.d
+ TARGET="${CHOST}"
+ VER="${PV}"
+ FAKE_TARGETS="${CHOST}"
+ EOF
+ newins env.d ${CHOST}-${PV}
+}
+
+pkg_postinst() {
+ binutils-config ${CHOST}-${PV}
+}
diff --git a/sys-devel/binutils-apple/files/binutils-apple-3.2.3-as-dir.patch b/sys-devel/binutils-apple/files/binutils-apple-3.2.3-as-dir.patch
new file mode 100644
index 000000000000..a13ace81b550
--- /dev/null
+++ b/sys-devel/binutils-apple/files/binutils-apple-3.2.3-as-dir.patch
@@ -0,0 +1,69 @@
+handles the libexecdir for as and other fixes
+
+--- cctools-698/as/driver.c
++++ cctools-698/as/driver.c
+@@ -27,6 +27,9 @@
+ char **envp)
+ {
+ const char *LIB =
++#ifdef ASLIBEXECDIR
++ ASLIBEXECDIR;
++#else
+ #if defined(__OPENSTEP__) || defined(__HERA__) || \
+ defined(__GONZO_BUNSEN_BEAKER__) || defined(__KODIAK__)
+ "/usr/libexec/";
+@@ -40,6 +42,7 @@
+ #else
+ "/usr/local/libexec/gcc/darwin/";
+ #endif
++#endif
+ const char *AS = "/as";
+
+ int i;
+@@ -170,7 +170,11 @@
+ }
+
+ }
++#ifndef ASLIBEXECDIR
+ as = makestr(prefix, LIB, arch_name, AS, NULL);
++#else
++ as = makestr(LIB, arch_name, AS, NULL);
++#endif
+
+ /*
+ * If this assembler exist try to run it else print an error message.
+@@ -182,6 +182,10 @@
+ else
+ exit(1);
+ }
++#ifdef ASLIBEXECDIR
++ as_local = "";
++ {
++#else
+ as_local = makestr(prefix, LOCALLIB, arch_name, AS, NULL);
+ if(access(as_local, F_OK) == 0){
+ argv[0] = as_local;
+@@ -193,6 +198,7 @@
+ exit(1);
+ }
+ else{
++#endif
+ printf("%s: assembler (%s or %s) for architecture %s not "
+ "installed\n", progname, as, as_local, arch_name);
+ arch_flags = get_arch_flags();
+@@ -183,6 +190,7 @@
+ printf("%s for architecture %s\n", as, arch_flags[i].name);
+ count++;
+ }
++#ifndef ASLIBEXECDIR
+ else{
+ as_local = makestr(LOCALLIB, arch_flags[i].name, AS, NULL);
+ if(access(as_local, F_OK) == 0){
+@@ -193,6 +201,7 @@
+ count++;
+ }
+ }
++#endif
+ }
+ if(count == 0)
+ printf("%s: no assemblers installed\n", progname);
diff --git a/sys-devel/binutils-apple/files/binutils-apple-3.2.3-ranlib.patch b/sys-devel/binutils-apple/files/binutils-apple-3.2.3-ranlib.patch
new file mode 100644
index 000000000000..e5292746eadf
--- /dev/null
+++ b/sys-devel/binutils-apple/files/binutils-apple-3.2.3-ranlib.patch
@@ -0,0 +1,59 @@
+run ranlib before installation so we needn't touch permissions
+
+--- cctools-782/cbtlibs/Makefile 2009-12-16 20:34:18.000000000 +0100
++++ cctools-782/cbtlibs/Makefile.new 2010-07-30 20:08:22.000000000 +0200
+@@ -84,9 +84,9 @@ libsyminfo.a: libsyminfo.o
+
+ lib_ofiles_install: lib_ofiles
+ $(MKDIRS) $(DSTROOT)$(LOCLIBDIR)
++ ranlib $(DSTROOT)$(LOCLIBDIR)/libsyminfo.a
+ install -p -c -m 444 $(SYMROOT)/libsyminfo.a \
+ $(DSTROOT)$(LOCLIBDIR)/libsyminfo.a
+- ranlib $(DSTROOT)$(LOCLIBDIR)/libsyminfo.a
+
+ -include $(OFILE_DIR)/Makedep
+
+--- cctools-782/libmacho/Makefile 2010-03-30 00:57:21.000000000 +0200
++++ cctools-782/libmacho/Makefile.new 2010-07-30 20:07:57.000000000 +0200
+@@ -357,17 +357,17 @@ macos_lib_ofiles_install: all
+ $(MKDIRS) $(DSTROOT)$(ARCHIVEDIR) $(DSTROOT)$(DYLIBDIR)
+ if [ $(SRCROOT) = . ]; \
+ then \
++ ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho.a; \
+ install -c -m 444 dtmp_obj/libmacho.a \
+ $(DSTROOT)$(ARCHIVEDIR)/libmacho.a; \
+- ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho.a; \
+ (cd $(DSTROOT)$(ARCHIVEDIR) ; \
+ rm -f libmacho_debug.a ; ln -s libmacho.a libmacho_debug.a); \
++ ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_profile.a; \
+ install -c -m 444 ptmp_obj/libmacho_pg.a \
+ $(DSTROOT)$(ARCHIVEDIR)/libmacho_profile.a; \
+- ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_profile.a; \
++ ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_static.a; \
+ install -c -m 444 otmp_obj/libmacho_static.a \
+ $(DSTROOT)$(ARCHIVEDIR)/libmacho_static.a; \
+- ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_static.a; \
+ install -c -m 555 dtmp_obj/libmacho.dylib \
+ $(DSTROOT)$(DYLIBDIR)/libmacho.dylib; \
+ strip -S $(DSTROOT)$(DYLIBDIR)/libmacho.dylib; \
+@@ -378,17 +378,17 @@ macos_lib_ofiles_install: all
+ $(DSTROOT)$(DYLIBDIR)/libmacho_debug.dylib; \
+ strip -S $(DSTROOT)$(DYLIBDIR)/libmacho_debug.dylib; \
+ else \
++ ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho.a; \
+ install -c -m 444 $(SYMROOT)/libmacho.a \
+ $(DSTROOT)$(ARCHIVEDIR)/libmacho.a; \
+- ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho.a; \
+ (cd $(DSTROOT)$(ARCHIVEDIR) ; \
+ rm -f libmacho_debug.a ; ln -s libmacho.a libmacho_debug.a); \
++ ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_profile.a; \
+ install -c -m 444 $(SYMROOT)/libmacho_pg.a \
+ $(DSTROOT)$(ARCHIVEDIR)/libmacho_profile.a; \
+- ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_profile.a; \
++ ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_static.a; \
+ install -c -m 444 $(SYMROOT)/libmacho_static.a \
+ $(DSTROOT)$(ARCHIVEDIR)/libmacho_static.a; \
+- ranlib $(DSTROOT)$(ARCHIVEDIR)/libmacho_static.a; \
+ install -c -m 555 $(SYMROOT)/libmacho.dylib \
+ $(DSTROOT)$(DYLIBDIR)/libmacho.dylib; \
+ strip -S $(DSTROOT)$(DYLIBDIR)/libmacho.dylib; \
diff --git a/sys-devel/binutils-apple/metadata.xml b/sys-devel/binutils-apple/metadata.xml
index 925cf70da957..46dee96f4e7a 100644
--- a/sys-devel/binutils-apple/metadata.xml
+++ b/sys-devel/binutils-apple/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<herd>apple</herd>
+<herd>prefix</herd>
</pkgmetadata>