DMD support for Apples new silicon
Christian Köstlin
christian.koestlin at gmail.com
Sun Jan 10 16:03:53 UTC 2021
On 10.01.21 15:50, Guillaume Piolat wrote:
> On Sunday, 10 January 2021 at 14:22:25 UTC, Christian Köstlin wrote:
>> Hi all,
>>
>> are there any plans on supporting Apples new ARM silicon with DMD or
>> would this be something for ldc?
>>
>> Kind regards,
>> Christian
>
> Hello Christian,
>
> LDC since 1.24+ support cross-compiling to Apple Silicon.
> Here is how to build for it on Big Sur.
>
>
> 1. Download ldc2-1.24.0-osx-x86_64.tar.xz (or later version)
> from this page: https://github.com/ldc-developers/ldc/releases
>
> 2. Unzip where you want, and put the bin/ subdirectory in your PATH envvar
>
> This will give you the ldc2 and dub command in your command-line,
> however they won't work straight away in Catalina/Big Sur because of
> lacking notarization.
>
> 3. (optional) In this case, in Finder, right-click + click "Open" on the
> bin/dub and bin/ldc2 binaries since it is not notarized software, and
> macOS will ask for your approval first. Once you've done that, dub and
> ldc2 can be used from your Terminal normally.
>
> 4. Type 'ld' in Terminal, this will install the necessary latest
> XCode.app if it isn't already. That is a painful 10 gb download in
> general. You can also install Xcode from the App Store. People target
> Big Sur arm64 from Catalina or Big Sur usually.
>
> 5. You can target normal x86_64 (Rosetta 2) with:
>
> ldc2 <params>
> dub <params>
>
> 6. If you want to target arm64, adapt the SDK path in etc/ldc2.conf with
> your actual Xcode macOS11.0 path, and then use
> -mtriple=arm64-apple-macos to cross-compile.
>
> ldc2 -mtriple=arm64-apple-macos <params>
> dub -a arm64-apple-macos <params>
>
> Debugging and notarization is a whole another topic then.
Good news!
I was hoping for support in ldc, but dmds super fast compile times would
be very welcome. I guess it's more work to put an ARM backend there.
Kind regards,
Christian
More information about the Digitalmars-d-learn
mailing list