www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - Building LDC v1.42.0 on ARM64 OpenBSD

reply RubyTheRoobster <shrektistkekt gmail.com> writes:
I wanted to use dub, but because there is no dub package for 
arm64 OpenBSD
(only for x64), I needed to build dub from source. After 
installing gdc and getting gdmd
to run on the system, I tried to build dub, only for gdc to keep 
mysteriously
crashing at one specific point. So I decided to try building dub 
using LDC.
But again, there is no ldc package for arm64 OpenBSD, so I had to 
build it from
source. I downloaded the git, checked out v1.42.0, and followed 
the intructions
in the wiki page linked to by the README. The result was cmake 
giving me an error message:
```
CMake Error at runtime/CMakeLists.txt:480 (add_custom_command)
     add_custom_command Wrong syntax. A TARGET or OUTPUT must be 
specified.
```

Is there any way to fix this, or are dlang build systems simply 
not arm64-friendly?
May 07
next sibling parent kinke <noone nowhere.com> writes:
On Thursday, 7 May 2026 at 20:12:19 UTC, RubyTheRoobster wrote:
 Is there any way to fix this, or are dlang build systems simply 
 not arm64-friendly?
This doesn't sound like it's related to any build systems, just incomplete/not-CI-tested OpenBSD support. Linux and macOS arm64 are first-class targets; FreeBSD x86_64 is too, FreeBSD arm64 not CI-tested though. The CMake error for the LDC build is probably a missing piece for OpenBSD in our CMake recipe; PRs are welcome if you manage to fix it.
May 08
prev sibling parent reply Brian Callahan <bcallah openbsd.org> writes:
On Thursday, 7 May 2026 at 20:12:19 UTC, RubyTheRoobster wrote:
 I wanted to use dub, but because there is no dub package for 
 arm64 OpenBSD
 (only for x64), I needed to build dub from source. After 
 installing gdc and getting gdmd
 to run on the system, I tried to build dub, only for gdc to 
 keep mysteriously
 crashing at one specific point. So I decided to try building 
 dub using LDC.
 But again, there is no ldc package for arm64 OpenBSD, so I had 
 to build it from
 source. I downloaded the git, checked out v1.42.0, and followed 
 the intructions
 in the wiki page linked to by the README. The result was cmake 
 giving me an error message:
 ```
 CMake Error at runtime/CMakeLists.txt:480 (add_custom_command)
     add_custom_command Wrong syntax. A TARGET or OUTPUT must be 
 specified.
 ```

 Is there any way to fix this, or are dlang build systems simply 
 not arm64-friendly?
Try using gdmd to build ldc2 with gdc: https://github.com/D-Programming-GDC/gdmd/blob/master/dmd-script I don't have any arm64 devices running OpenBSD at the moment, but I don't foresee any significant issues. ~Brian
May 08
parent reply Brian Callahan <bcallah openbsd.org> writes:
On Friday, 8 May 2026 at 21:23:15 UTC, Brian Callahan wrote:
 On Thursday, 7 May 2026 at 20:12:19 UTC, RubyTheRoobster wrote:
 I wanted to use dub, but because there is no dub package for 
 arm64 OpenBSD
 (only for x64), I needed to build dub from source. After 
 installing gdc and getting gdmd
 to run on the system, I tried to build dub, only for gdc to 
 keep mysteriously
 crashing at one specific point. So I decided to try building 
 dub using LDC.
 But again, there is no ldc package for arm64 OpenBSD, so I had 
 to build it from
 source. I downloaded the git, checked out v1.42.0, and 
 followed the intructions
 in the wiki page linked to by the README. The result was cmake 
 giving me an error message:
 ```
 CMake Error at runtime/CMakeLists.txt:480 (add_custom_command)
     add_custom_command Wrong syntax. A TARGET or OUTPUT must 
 be specified.
 ```

 Is there any way to fix this, or are dlang build systems 
 simply not arm64-friendly?
Try using gdmd to build ldc2 with gdc: https://github.com/D-Programming-GDC/gdmd/blob/master/dmd-script I don't have any arm64 devices running OpenBSD at the moment, but I don't foresee any significant issues. ~Brian
Oh nevermind I see you did that. Send me what you have and I'll see if I can triangulate. ~Brian
May 08
parent RubyTheRoobster <shrektistkekt gmail.com> writes:
On Friday, 8 May 2026 at 21:24:17 UTC, Brian Callahan wrote:
 On Friday, 8 May 2026 at 21:23:15 UTC, Brian Callahan wrote:
 On Thursday, 7 May 2026 at 20:12:19 UTC, RubyTheRoobster wrote:
 I wanted to use dub, but because there is no dub package for 
 arm64 OpenBSD
 (only for x64), I needed to build dub from source. After 
 installing gdc and getting gdmd
 to run on the system, I tried to build dub, only for gdc to 
 keep mysteriously
 crashing at one specific point. So I decided to try building 
 dub using LDC.
 But again, there is no ldc package for arm64 OpenBSD, so I 
 had to build it from
 source. I downloaded the git, checked out v1.42.0, and 
 followed the intructions
 in the wiki page linked to by the README. The result was 
 cmake giving me an error message:
 ```
 CMake Error at runtime/CMakeLists.txt:480 
 (add_custom_command)                       add_custom_command 
 Wrong syntax. A TARGET or OUTPUT must be specified.
 ```

 Is there any way to fix this, or are dlang build systems 
 simply not arm64-friendly?
Try using gdmd to build ldc2 with gdc: https://github.com/D-Programming-GDC/gdmd/blob/master/dmd-script I don't have any arm64 devices running OpenBSD at the moment, but I don't foresee any significant issues. ~Brian
Oh nevermind I see you did that. Send me what you have and I'll see if I can triangulate. ~Brian
I am currently running off of a Lenovo ThinkPad X13s Gen 1. If you do find someone who is willing to try and get it working, they should be warned that (1) Currently only the snapshot releases of 7.9 have good support; (2) They will need to run fw_update with the non-free firmware files on hand in order for wifi to be usable and for the kernel to not panic when suspending the system; (3) In order to install packages, they will have to manually set the $PKG_PATH environment variable, because snapshot releases otherwise try to get packages from a nonexistent directory. That being said, this appears to be a problem with ARM64 OpenBSD in general, and I think anyone with a supported ARM64 device, e.g. a Raspberry Pi, should be able to reproduce it, not only with what I have.
May 09