Darwin target

Diorcet Yann diorcet.yann@gmail.com
Wed Nov 14 07:20:00 GMT 2012


Le 14/11/2012 01:13, Yann E. MORIN a écrit :
> Yann, All,
>
> On Wednesday 14 November 2012 Diorcet Yann wrote:
>> Ray Donnelly and me have started to work on adding darwin target (OS X
>> and iOS) in crosstool-ng.
>> Currently, it's already working: you can create a toolchain (C,C++,
>> Objective c) for OS X using XCode's SDKs.
>> It's far to be done. Based on the Ray Donnelly's
>> work(https://github.com/mingwandroid/toolchain4), we will add a better
>> cctools/ld64 (binutils replacing for MACH-O).
>> You can follow the progress on the following
>> github:https://github.com/diorcety/crosstool-ng.
> OK, as promised on IRC, here's my initial review:
>
> 1) Split changes into smaller hunks.
>
>    a) fix the efl2flt config ('if BARE_METAL' --> '## depends on BARE_METAL')
>    b) ditto for the sstrip thingy
>    c) add the EXTRA_{C,LD}FLAGS_FOR_{HOST,BUILD} config options
>       - propagate to affected script, of course
>    d) introduce the multi-binutils feature
>       - don't add any new alternative, only the infrastructure to support
>         multiple binutils
>    e) introduce the /generic/ companion-libs build script
>    f) add Darwin as a new kernel
>       - depends on EXPERIMENTAL
>       - propagate the "depends on !DARWIN" to affected components
>    g) add cctools as alternate binutils
>    h) you get the idea...
I have just to split correctly my work..
>
>    Basically: one changeset introduces a minimal, self-contained, semantically
>    coherent change. See in your linux source tree:
>      Documentation/SubmittingPatches: 3) Separate your changes
>
> 2) Patches in patches/compomnent/version
>     - add an explanation at the top of the patch (if the reason is not known
>       but you got the patch from another source, point to that source)
>     
> 3) gcc Apple version
>     a) no need to for the 'if CC_APPLE' test; just append the location for
>        the Apple version to the existing list
>     b) in gcc.sh, use 'if KERNEL == DARWIN' to check if the core compilers
>        are needed; thus, no need for option CC_GCC_APPLE
Ok it's not linked to the fact there is no LIBC? (LIBC_NONE)?
> 4) Companion libs & tools
>     - what is util-linux/libuuid required for?
The crosstools have to be compiled in 32 bits (this is why there is the 
new flags EXTRA_{C,LD}FLAGS_FOR_{HOST,BUILD})
The x86_64 system may not have libuuid 32 bits version (installed or 
even provided by distribution)
>     - ditto openssl?
Openssl will be used by the linker in order to sign the produced 
binaries (it's the Ray Donnelly's domain)
>
> 5) patches/cctools/806/0001-nondarwin.patch
>     - Whaoo... 2.3 MiB for a single patch... :-(
>     - where's that patch coming from?  --> add origin at top of patch
>     - why is it needed?  --> add (short) explanation at top of patch
>     - can it be replaced by an equivalent patch series?
It will be changed by the Ray Donnelly's work.
>
> Otherwise, the code looks pretty nice for a work-in-progress! :-)
>
> Regards,
> Yann E. MORIN.
>


--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list