-OpenJDK İnşa(Building) Part3-

Kerim Fırat
3 min readDec 14, 2020

Bu makalede OpenJDK inşa(build) serisinin 3.bölümü işlenecektir.
OpenJDK inşa serisinin 1.bölüm yazısı için şu linki ziyaret edebilirsiniz.
OpenJDK inşa serisinin 2.bölümü yazısı için şu linki ziyaret edebilirsiniz.

Native Derleyici(Toolchain) Gereksinimleri

JDK’nın büyük bölümleri native koddan oluşur.
Bu bölümlerin hedef platformda çalışabilmesi için buna uygun derlenmesi gerekir. Teoride,toolchain ve işletim sistemi bağımsız faktörler olmalıdır.
Ancak pratikte hedef işletim sistemi ile toolchain arasında aşağı yukarı bire bir bağlılık vardır.Aşağıdaki tabloda işletim sistemleri ve desteklenen toolchain listesi verilmiştir.

Toolchain

Yukarıda verilen toolchain listesinin sürürm önerileri için lütfen aşağıdaki toolchain sürüm tablosuna bakınız.Referans olarak verilen toolchain sürümleri,Oracle tarafından inşa sırasında günlük olarak kullanılmaktadır.
JDK’yı hem eski hem de yeni sürümlerle derlemek mümkündür. Ancak burada verilen tablodaki bilgilere ne kadar yakın kalırsanız,sorunsuz ve dolayısıyla başarılı bir şekilde derleme olasılığınız o kadar artar.

Desteklenen Toolchain sürümleri

Kaynak kodunda bazı C99 özellikleri kullanıldığından dolayı,tüm derleyicilerin C99 dil standartına göre derleyebilmesi beklenir. Microsoft Visual Studio C99'u tam olarak desteklemediğinden dolayı,C99 özelliklerini kullanmak da sınırlı olacaktır.

Gcc:
Gcc için kabul edilen minimum sürüm 5.0'dır. Daha eski sürümlerde “configure” sırasında bir uyarı oluşturacak ve muhtemelen sağlıklı çalışmayacaktır.Ancak şu anda gcc’nin 10.2 sürümüyle JDK’nın derlendiğini biliyoruz. Dolayısıyla 5.0 ile 10.2 arasındaki herhangi bir sürüm kullanılabilir.

Clang:
Clang için kabul edilen minimum versiyon 3.5'dir. Daha eski sürümleri “configure” sırasında kabul görmeyecektir.Linux’da gcc yerine clang kullanmak için aşağıdaki komutu kullanabilirsiniz:

--with-toolchain-type=clang

Apple Xcode:
Xcode’un desteklenen en eski sürümü 8'dir.
JDK’yı inşa etmek için Xcode komut satırı geliştirici araçlarına ihtiyacınız olacak.(Aslında bir IDE’ye ihtiyaç yok,sadece komut satırı araçlarına ihtiyaç vardır.) Bu araçları kurmak için aşağıda verilen komutu çalıştırabilirsiniz:

xcode-select --install

JDK’yı inşa etmek için Xcodu’u güncellemeden önce,Xcodu’un eski sürümünü saklamanız önerilir.
Birden fazla Xcode sürümü yönetmekle ilgili internette iyi öneriler-kaynaklar bulabilirsiniz. Xcode’un belirli bir sürümünü kullanmak için aşağıda verilen komutu “configure” sürecinden önce kullanabilirsiniz:

xcode-select -s

Veya kullanılacak Xcode sürümünü işaret etmek için aşağıdaki gibi kullanabilirsiniz:

--with-toolchain-path

Örnek:

configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin

Yakın zamanda işletim sisteminizi ve/veya Xcode sürümünüzü güncellediyseniz ve artık JDK inşa edilemiyorsa,lütfen derleme ortamı ile ilgili sorunlar kısmına göz atınız.

Microsoft Visual Studio:
Visual Studio için kabul edilen minimum versiyon 2017'dir.
Daha eski versiyonları “configure” sırasında kabul görmeyecektir ve çalışmayacaktır. Visual Studio’nun kabul edilen maksimum versiyon ise 2019'dur.

NOT: Visual Studio için maksimum versiyon openjdk.java.net sitesinden belirtildiği gibidir. Daha yeni versiyonlar için ilgili siteden takip edebilirsiniz.

Eğer sisteminizde birden fazla Visual Studio sürümü yüklüyse,”configure” komutu default olarak en son versiyonu baz alacaktır.
Şayet özellikle herhangi bir versiyon belirtmek isterseniz aşağıdaki komutu kullanabilirsiniz:

--with-toolchain-version

Örnek kullanım:

--with-toolchain-version=2017

IBM XL C/C++:
Hangi XLC sürümlerinin desteklendiğiyle ilgili ayrıntılar için “Desteklenen Derleme Platformları” AIX bölümüne bakınız.

OpenJDK yazı serimizin 4.bölümünden itibaren tamamen inşa,derleme ve diğer ileri teknik konular içerecektir.

Yazı serimizin 1,2 bölümlerine buradan ve buradan ulaşabilirsiniz.

-end of

--

--

Kerim Fırat
Kerim Fırat

Written by Kerim Fırat

Senior Android Platform(AOSP,AAOS) Architect,Open Source Contributor | Turkey Java User Group Vice Chairman | Author

No responses yet