[Gelistirici] 2009 çiftliği hazır a.k.a. fire in the hole
Fatih Aşıcı
fatih at pardus.org.tr
4 Mayıs 2009 Pzt 01:44:36 EEST
04 May 2009 Pazartesi günü (saat 01:16:35) Barış Metin şunları yazmıştı:
> > Aksi takdirde sadece pspec'teki bağımlılıklardan yola çıkılarak
> > A'nın güncellenip güncellenemeyeceğine (C'yi A'ya bağımlılık yazmazsak)
> > karar vermek imkansız.
>
> Neden? A->B->C seklinde bir bagimlilik soz konusu degil mi? A'dan C'ye
> dogru gidebiliyorsam tersi de, biraz daha masrafli olsa da, mumkun.
A: Qt uygulaması
B: Qt
C: libX11
Eğer uygulama libX11 API'sini doğrudan kullanmıyorsa sadece Qt'ü güncellemek
yetiyor. A her zaman güncellenmek zorunda değil.
> > Evet vardı; ancak o sıralar --as-needed kullanamadığımız için ikili
> > dosyalar gerekli gereksiz her kitaplığa bağlanıyordu ve yukarıdaki
> > senaryo için A hemen hemen her koşulda güncellenmek zorunda kalıyordu.
> > Ama şimdi böyle bir zorunluluk yok. Bu avantajı değerlendirmek için
> > bağımlılıkları daha açık yazmak gerekiyor.
>
> --as-needed kullanmaya basladiktan sonra bagimliliklari daha acik
> yazmak birlikte kullanmak nasil bir avantaj sagliyor anlamadim. Bizim
> pakete yazdigimiz bagimliliklar ile linker parametresinin dogrudan
> baglantisi nedir?
--as-needed linker'ın bir hatasını kapatıyor aslında. Önceden yukarıda
bahsettiğimiz uygulama libX11 API'sini hiç kullanmayıp sadece Qt API'si
kullansa bile linker uygulamayı libX11 kitaplığına doğrudan bağlıyordu (Bu
durumda objdump çıktısında da görünüyor). libX11 ABI kırdığında ise tüm
uygulamaları yeniden derleyip kullanıcıya güncelletmek zorunda kalıyorduk.
pspec'e bir X kitaplığını bağımlılık olarak yazdığımızda "Bu paket X
kitaplığına doğrudan linklenmiştir." anlamına gelsin istiyoruz. Böylece X
kitaplığı ABI kırdığında söz konusu paketin yeniden derlenmesi gerektiğini
anlayabilelim. Eğer bu bağımlılığı Qt de bağımlı diye yazmazsak yukarıda
söylediğim senaryoda olduğu gibi sadece qt güncellemesi ile düzelecek
uygulamaları da boşu boşuna güncellemiş oluyoruz.
Otomatize de edilebilir dediğin gibi; ama overhead'inin yüksek olmasından
çekiniyorum açıkçası.
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi