Gentoo Archives: gentoo-embedded

From: Andrew Udvare <audvare@×××××.com>
To: Mike Frysinger <vapier@g.o>
Cc: "gentoo-embedded@l.g.o" <gentoo-embedded@l.g.o>
Subject: [gentoo-embedded] Re: GCC/LLVM-GCC targeting Darwin/OS X/iOS
Date: Fri, 14 Oct 2011 00:12:10
Message-Id: CAJfjkGr=H6oE9hjLtKgPbXGD8VM8ErMDybr=S15nmoQxbc0rLA@mail.gmail.com
In Reply to: Re: [gentoo-embedded] GCC/LLVM-GCC targeting Darwin/OS X/iOS by Mike Frysinger
1 I did create some ebuilds of my own because the sys-devel/gcc-apple and
2 sys-devel/binutils-apple are very specifically for use with Gentoo Prefix on
3 OS X. They are just not what I call ready yet because they rely upon
4 EXTRA_ECONF to get the --target triple.
5
6 Project is here: https://github.com/tatsh/xchain
7
8 Complete (arm targetting iOS, i686 and x86_64 targeting OS X):
9 - Build Apple's cctools but only with older ld64; equivalent to binutils and
10 100% not the GNU versions
11 - Build Apple's GCC but only with precompiled libstdcxx and Libc
12 - Build Apple's LLVM and LLVM-GCC but again with precompiled libs
13
14 The main issues are:
15 - How to get the developer libraries from Apple (restricted source, have
16 user get the DMG and put it in /usr/distfiles, extract DMG reliably)
17 - If we do this, there's not much point to compiling Libc or libstdcxx
18 since it's included with this
19 - How to build Apple's Libc
20 http://www.opensource.apple.com/source/Libc/Libc-763.12/ (mainly for
21 testing)
22 - How to build Apple's libstdcxx
23 http://opensource.apple.com/source/libstdcxx/libstdcxx-52/ (mainly for
24 testing)
25 - Build latest ld64 from Apple (currently I am using a patched older
26 version); everything in this toolchain at this point must link with ld64 and
27 not what Apple calls 'classic ld'
28
29 The patch for Apple's version of binutils (same package as
30 sys-devel/binutils-apple) that I made is quite large and may not be entirely
31 necessary (it patches back in what they used to have, autotools). However
32 Apple developers rely upon OS X's nearly automatic memset'ing which is why
33 somes patches are definitely necessary (or compiling stage will get
34 segfaults).
35
36 I am maintaining an overlay https://github.com/tatsh/tatsh-overlay. What I
37 am planning to do is just add separate ebuilds for each target since only
38 these are supported: i686, x86_64, arm (armv6, armv7 but I don't know how to
39 differentiate these yet; default is armv6), and maybe powerpc and powerpc64.
40
41 Andrew
42
43 On Thursday, 13 October 2011, Mike Frysinger wrote:
44
45 > On Wednesday 07 September 2011 02:40:05 Andrew Udvare wrote:
46 > > Most sources come from http://opensource.apple.com just like the
47 > > sys-devel/binutils-apple and sys-devel/gcc-apple packages. The version
48 > > of cctools in the project is patched heavily (mainly due to missing
49 > > headers, which we can distribute). One source is derived from
50 > > iphone-dev's version of odcctools, but only for one part of it (ld64).
51 > > It is not the same and needed fixing to compile with GCC 4.5.3. I plan
52 > > to fix the up-to-date ld64 regardless.
53 >
54 > so you have more ebuilds to add to the tree ? or something else ?
55 >
56 > > I'd like to reach the point of being able to type (perhaps with
57 > > prerequisite work done by me like copying the SDK) `crossdev -t
58 > > arm-apple-darwin` and `crossdev -t arm-apple-darwinX` (where X is 9,
59 > > 10, 11).
60 >
61 > i think i'm going to have to open up crossdev to sucking down from overlays
62 > via layman. there's an open request for better msp430 support, and that
63 > requires hacks to some packages.
64 > -mike
65 >