OpenJDK İnşa(Building) Part8
Bu makalede OpenJDK inşa(build) serisinin 8.bölümü işlenecektir.
OpenJDK serisinin 1.bölümü için Link
OpenJDK serisinin 2.bölümü için Link
OpenJDK serisinin 3.bölümü için Link
OpenJDK serisinin 4.bölümü için Link
OpenJDK serisinin 5.bölümü için Link
OpenJDK serisinin 6.bölümü için Link
OpenJDK serisinin 7.bölümü için Link
Testleri Çalıştırmak
JDK testlerinin çoğu JTReg test framworkunu kullanır.
Birim testleri,fonksiyonel testler ve hatta basit ürün testleri için jtreg kullanılabilir.Ayrıca API testlerinin yanısıra,derleyici testleri ve basit GUI testlerini çalıştırmak için yine JTReg framworku kullanılır.
Ancak konfigürasyon aşamasında JTReg kurulumunun yolunu doğru belirttiğinizden emin olmalısınız. Eğer JTReg’i otomatik olarak algılamaz ise,aşağıda verilen komut kullanarak jtreg yerini işaret edebilirsiniz.
--with-jtreg=<jtreg_yolu>
NOT: Bu(“jtreg_yolu” ) seçeneğinin JTReg’in bulunduğu ana dizini işaret ettiğini unutmayın. Dolayısıyla jtreg.jar dosya yolunu tam olarak belirtmeniz gerekir. Örnek: “lib/jtreg.jar”
JDK adaptasyon grubu jtreg framworkun hazır derlenmiş halini bu link aracılığıyla bize sağlıyor. İlgili linkten yararlanarak son sürüm “tar.gz” dosyayı indirin ve tar.gz’den dosyayı uygun bir klasöre çıkartın.Daha sonra yukarıda verilen komutla( — with-jtreg) dosyanın bulunduğu dizini-klasörü işaret edin.
Öte yandan “Hotspot Gtest” paketinin inşa edilmesi için “Google Test Framwork” kaynak kodunu gerektirir. Bir üst dizinde “googletest” ve “googlemock” dizinleri bulunmalıdır. Daha sonra bu üst dizin aşağıda verilen komut aracılığıyla belirtilmelidir.
--with-gtest
Desteklenen Google Test sürümü 1.8.1 versiyon numarasına sahiptir.
Kaynak kodunu aşağıdaki seçenekleri kullanarak elde edebilirsiniz:
- Buradan kaynak kodlarını indirip paketi açarak elde edilebilir.
- Google Test projesinin 1.8.1 sürüm numarasını doğrulayarak aşağıda verilen komut kullanarak elde edilebilir:
git clone -b release-1.8.1 https://github.com/google/googletest
Bu aşamadan sonra en temel testleri çalıştırmak için aşağıda verilen komutu kullanın:
make run-test-tier1
NOT:Bu başlıkla(Testleri Çalıştırmak) ilgili kapsamlı incelemeye “OpenJDK Test Çalıştırma” başlıklı ayrı bir yazıda detaylıca yer verilecektir.
Çapraz Derleme
Çapraz derleme kabaca,başka bir platformda çalışabilen çıktı üretmek anlamına gelir.Çapraz derlemenin tipik nedeni,derleme işleminin daha güçlü bir bilgisayarda gerçekleştirilmesidir.
Derleme işleminin sonunda ortaya çıkan binary(ikili) dosyalar farklı bir sistemde çalışabilir olur. Öreğin düşük kaynaklara sahip bir gömülü kart için derleme işlemleri,yeterli kaynağa sahip bir bilgisayarda derleyip,çıktı olarak elde edilen binary dosyaları gömülü karta taşıyarak-yükleyerek gömülü kart üzerinden koşturmak çağraz derlemeye örnektir.
Çapraz derleme,karmaşık kurulum ve inşa prosedürlerinden dolayı size karmaşık gelebilir. Bu bölümü işlerken,genel olarak çapraz derleme konusuna aşina olduğunuz varsayarak ilerleyeceğiz.
Ancak yalnızca JDK çapraz derlemeye yönelik özelliklerini ele alacağız.
Eğer çapraz derleme konusunda yeniyseniz,öncelikle bu konuyla ilgili bilgi edinmeniz faydalı olacaktır.
JDK’nın çapraz derlenmesi,hem derleme platformu hem de hedef platform için derleme yapabilmenizi gerektirir.İlkinin nedeni,derleme işlemi sırasında hem Native araçları hem de Java araçları inşa edip çalıştırabilmektir.
Eğer 64-bitlik bir makinede aynı işletim sistemi için 32-bitlik bir sürüm derlemek istiyorsanız aşağıda verilen komutu kullanabilirsiniz:
--with-target-bits=32
OpenJDK Devkit ile Kolay Yoldan Çapraz Derleme
OpenJDK build sistemi devkit’ler(geliştirme kitleri) oluşturmak ve kullanmak için destek sağlar.Temel olarak bir geliştirme kiti(devkit),OpenJDK’yı çapraz derlemek için bir çapraz derleme araç zinciri ve sysroot ortamının koleksiyonudur. Bu koleksiyonu oluşturmak için aşağıda verilen komutu konfigürasyon seçeneği ile birlikte kullanabilirsiniz:
--with-devkit
Linux/x86_64 ortamında:
bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make
Yukarıda verilen komutla “<devkit-path>”’ın bir Linux/x86_64'ten Linux/ppc64 devkit’e işaret ettiğini varsayarak Linux/ppc64 için OpenJDK’yı yapılandıracak ve build edecektir.
Devkit’ler “make/devkit” dizininde aşağıda verilen komut çalıştırılarak oluşturulabilir:
make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]
Komut içinde yer alan “TARGETS”,bir veya daha fazla “TARGET_TRIPLET” içerebilir. Şayet hiçbir hedef belirtilmez ise,mevcut platform için native bir toolchain oluşturulacaktır. Şuanda desteklenen ve çalışan bazı hedefler aşağıda yer almaktadır.
Komut içinde yer alan “BASE_OS”,Oracle Enterprise Linux 6 için “OEL6” veya “Fedora” olmalıdır. Eğer herhangi biri belirtilmezse,”OEL6" varsayılan olacaktır. Eğer temel işletim sistemi “Fedora” ise, ilgili Fedora sürümü “BASE_OS_VERSION” seçeneği yardımıyla belirtilebilir.
Derleme başarıyla sonuçlandığında,yeni devkits “build/devkit/result” alt dizini içinde yer alacaktır.
cd make/devkit
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
ls -1 ../../build/devkit/result/
x86_64-linux-gnu-to-aarch64-linux-gnu
x86_64-linux-gnu-to-ppc64le-linux-gnu
Devkit’lerin yalnızca farklı derleme platformlarını hedeflemek için kullanışlı olduğunu düşünmeyin.Dolayısıyla bir sistem için build bağımlılıklarını tam içerdikleri için(yani derleyici ve kök dosya sistemi),iyi bilinen,güvenilir ve yeniden üretilebilir yapı ortamları oluşturmak için kolayca kullanılabilirler.
Örneğin tüm Linux sistemlerinde çalışacak OpenJDK binary dosyaları üretmek için Ubuntu(default olarak GCC 7.3'e sahip olmayan) 14.04'te GCC 7.3 ve Fedora 12 sysroot ortamın ile bir devkit oluşturabilir ve kullanabilirsiniz.
-end of