Building on a Mac

Chris Packham Chris.Packham@alliedtelesis.co.nz
Sun Nov 15 20:52:16 GMT 2020


Hi,

On 14/11/20 9:30 am, James Hudson via crossgcc wrote:
> Hello,
>
> I am just wondering if there is any configuration where *ct-ng build* will
> succeed on the mac or are these tools broken right now on the mac?
>
> Regards,
> Eric

Kumar recently raised a PR to add some CI jobs for macOS which shows 
configurations that are working

https://github.com/crosstool-ng/crosstool-ng/actions/runs/358393983

Whether or not to accept this PR is up for debate. The general problem 
is that of the already small pool of crosstool-ng contributors very few 
are using macOS. That is of course self defeating because if the macOS 
support isn't there then where will the contributors come from?

> On Fri, Nov 13, 2020 at 2:55 PM Ray Donnelly <mingw.android@gmail.com>
> wrote:
>
>> GCC on mac will probably be able to make you a native compiler. It
>> won't be able to make you a cross compiler (easily) or (even more
>> tricky) a canadian cross compiler. Whether you should give up or not
>> is up to you! Certainly technologies like docker do offer alternatives
>> but they come at an execution cost. For sure, I'd love to see some
>> patches developed to fix the issues with macOS GCC-based-toolchains in
>> these more exotic scenarios! I did, at some point in the distant past,
>> create cross compilers that ran on macOS and targeted Linux. For fun I
>> did the same for Windows as host.
>>
>> On Fri, Nov 13, 2020 at 8:32 PM James Hudson <jameshudson3010@gmail.com>
>> wrote:
>>> Hello,
>>>
>>> Thank you for your reply.
>>>
>>> I can be (somewhat) flexible in how I configure. Do other configurations
>> work on the Mac? Or should I not even try to use these tools on the Mac and
>> move to Ubuntu?
The path of least resistance would be to do Linux development on a Linux 
host. But at the same time I don't want to force anyone to use a 
particular platform, part of the thing that attracted me to free 
software was the freedom to choose.
>>> A summary of what I changed from the defaults is:
>>>
>>> Debug facilities → gdb
The actual error that started this thread was from gdb so maybe just 
disabling that would be enough. These days it's possible to build a 
multi-arch gdb so having ct-ng do it is a bit of historical baggage 
(although convenient if you're after a complete toolchain for a specific 
microcontroller).
>>> Debug facilities → ltrace
>>> Debug facilities → strace
>>>
>>> Companion tools → autoconf
>>> Companion tools → automake
>>>
>>> Operating system → Version of Linux → 4.19.21
>>> Binary utilities → Version of binutils → 2.30
>>> C-library → Version of glibc → 2.27
>>> C compiler → Version of gcc → 7.4.0
>>>
>>>
>>> The complete .config file is at
>> https://gist.github.com/James-Hudson3010/5736b2c258807c516eef4636dbd21cfc
Just curious about this. In the discussion around Kumar's PR it was 
thought people doing Linux development would probably do so on a Linux 
host (possibly via some virtualization). So we might mitigate some of 
the issues if we concentrated on the bare-metal scenarios.
>>> Regards,
>>> Eric
>>>
>>> On Fri, Nov 13, 2020 at 2:08 PM Ray Donnelly <mingw.android@gmail.com>
>> wrote:
>>>> GCC on macOS is basically unmaintained. you would have to investigate
>>>> and fix these things for yourself I think.
>>>>
>>>> On Fri, Nov 13, 2020 at 3:50 PM James Hudson via crossgcc
>>>> <crossgcc@sourceware.org> wrote:
>>>>> I am trying to build crosstool-NG on my mac ( Catalina -- 10.15.7 ).
>>>>>
>>>>> After executing *ct-ng build*, I eventually get the errors below. How
>> can I
>>>>> workaround or resolve this issue? I am assuming I do not have
>> something
>>>>> configured correctly.
>>>>>
>>>>>
>>>>> [EXTRA]    Building cross gdb
>>>>> [ERROR]
>>>>>
>> /Volumes/thedrive/build/x86_64-unknown-linux-gnu/src/gdb/readline/rltty.c:83:7:
>>>>> error: implicit declaration of function 'ioctl' is invalid in C99
>>>>> [-Werror,-Wimplicit-function-declaration]
>>>>> [ERROR]
>>>>>
>> /Volumes/thedrive/build/x86_64-unknown-linux-gnu/src/gdb/readline/rltty.c:720:3:
>>>>> error: implicit declaration of function 'ioctl' is invalid in C99
>>>>> [-Werror,-Wimplicit-function-declaration]
>>>>> [ERROR]
>>>>>
>> /Volumes/thedrive/build/x86_64-unknown-linux-gnu/src/gdb/readline/rltty.c:759:3:
>>>>> error: implicit declaration of function 'ioctl' is invalid in C99
>>>>> [-Werror,-Wimplicit-function-declaration]
>>>>> [ERROR]    make[3]: *** [Makefile:97: rltty.o] Error 1
>>>>> [ERROR]    make[3]: *** Waiting for unfinished jobs....
>>>>> [ERROR]    make[2]: *** [Makefile:7804: all-readline] Error 2
>>>>> [ERROR]    make[2]: *** Waiting for unfinished jobs....
>>>>> [ERROR]    make[1]: *** [Makefile:879: all] Error 2
>>>>> [ERROR]
>>>>> [ERROR]  >>
>>>>> [ERROR]  >>  Build failed in step 'Installing cross-gdb'
>>>>> [ERROR]  >>        called in step '(top-level)'
>>>>> [ERROR]  >>
>>>>> [ERROR]  >>  Error happened in: CT_DoExecLog[scripts/functions@376]
>>>>> [ERROR]  >>        called from:
>>>>> do_gdb_backend[scripts/build/debug/300-gdb.sh@281]
>>>>> [ERROR]  >>        called from:
>>>>> do_debug_gdb_build[scripts/build/debug/300-gdb.sh@59]
>>>>> [ERROR]  >>        called from: do_debug[scripts/build/debug.sh@35]
>>>>> [ERROR]  >>        called from: main[scripts/crosstool-NG.sh@696]
>>>>> [ERROR]  >>
>>>>> [ERROR]  >>  For more info on this error, look at the file:
>> 'build.log'
>>>>> [ERROR]  >>  There is a list of known issues, some with workarounds,
>> in:
>>>>> [ERROR]  >>      https://crosstool-ng.github.io/docs/known-issues/
>>>>> [ERROR]  >>
>>>>> [ERROR]  >>  If you feel this is a bug in crosstool-NG, report it at:
>>>>> [ERROR]  >>      https://github.com/crosstool-ng/crosstool-ng/issues/
>>>>> [ERROR]  >>
>>>>> [ERROR]  >>  Make sure your report includes all the information
>> pertinent
>>>>> to this issue.
>>>>> [ERROR]  >>  Read the bug reporting guidelines here:
>>>>> [ERROR]  >>      http://crosstool-ng.github.io/support/
>>>>> --
>>>>> For unsubscribe information see http://sourceware.org/lists.html#faq
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq


More information about the crossgcc mailing list