DMD ile GDC'yi Bootstraplama: GNU D Derleyicisini FreeBSD'de Çalıştırmanın Pratik Yolu Yazılım

DMD ile GDC'yi Bootstraplama: GNU D Derleyicisini FreeBSD'de Çalıştırmanın Pratik Yolu

Dr. Brian Robert Callahan, DMD kullanarak GDC'yi FreeBSD'de bootstrapladı. İşte adım adım rehber ve gdc-wrapper çözümü.

FreeBSD'de GDC (GNU D Derleyicisi) için resmi bir paket bulunmuyor. Ancak Dr. Brian Robert Callahan, DMD (referans D derleyicisi) kullanarak GDC'yi başarıyla bootstrapladı. Bu makalede, GCC dokümantasyonunun aksine DMD'nin GDC'yi derleyebileceğini gösteren pratik bir yöntem sunuyoruz.

GCC belgeleri, GDC'nin yalnızca GDC ile derlenebileceğini iddia ediyor. Ancak Callahan, bu iddianın tam olarak doğru olmadığını kanıtladı. DMD, LDC ve GDC aynı D ön ucunu paylaşıyor; dolayısıyla herhangi bir D derleyicisi teorik olarak GDC'yi bootstraplayabilir. Bunun için tek gereken, yeterli bir stage1 GDC oluşturmak.

Callahan, gdc-wrapper adlı küçük bir sarmalayıcı program yazdı. Bu program, DMD ile GDC arasındaki bayrak farklılıklarını otomatik olarak çeviriyor. Örneğin, `-o output.o` bayrağını `-ofoutput.o`'ya dönüştürüyor, `-finline` yerine `-inline` kullanıyor ve `-fversion=VERSION`'ı `-version=VERSION` olarak değiştiriyor. Ayrıca `-MF` ve `-MT` gibi bağımlılık dosyası bayraklarını basit bir şekilde ele alıyor.

Süreç oldukça basit: FreeBSD x86_64 için DMD 2.112.0 ikili dosyalarını indirin, ana dizininize çıkarın, `./configure --dmd=/home/kullanici/dmd2/freebsd/bin64/dmd && make` ile gdc-wrapper'ı derleyin ve `export PATH=$PATH:$PWD` ile geçici olarak PATH'e ekleyin. Ardından GDC kaynak kodunu normal şekilde derleyebilirsiniz.

Nasıl Önlem Alınmalı?

Bu yöntem, FreeBSD 15 üzerinde GDC 15.2.0 ve GDC 16.1.0 sürümlerini başarıyla derlemiştir. Şu anki sınırlama, DMD'nin yalnızca x86 ve x86_64 mimarilerini desteklemesidir (ARM64 desteği yolda). Farklı bir işlemci mimarisi için GDC istiyorsanız, önce bu yöntemle native bir GDC bootstraplamanız, ardından çapraz derleyici oluşturmanız gerekir.

Bu rehber, FreeBSD, NetBSD, GNU Hurd veya Illumos kullanıcıları için olduğu kadar, GDC paketi olmayan Linux dağıtımları için de faydalı olabilir. Callahan'ın çalışması, GCC dokümantasyonundaki iddiaların aksine, DMD'nin GDC'yi bootstraplamak için yeterli olduğunu göstermektedir.

Kaynak: briancallahan.net

Paylaş: