SPECS: gd.spec (HEAD)

Jakub Bogusz qboosh w pld.org.pl
Czw, 24 Kwi 2003, 22:56:15 CEST


On Thu, Apr 24, 2003 at 01:03:27AM +0200, Tomasz Kłoczko wrote:
> On Wed, 23 Apr 2003, Jakub Bogusz wrote:
> > On Wed, Apr 23, 2003 at 06:40:15PM +0200, Artur Frysiak wrote:
> > > W liście z ?ro, 23-04-2003, godz. 18:30, Tomasz Kłoczko pisze: 
> > > > On Mon, 21 Apr 2003, qboosh wrote:
> > > > >  %define		shlibver	%(echo %{version} | cut -f-2 -d.)
> > > > > +# we don't want "-s" here, because it would be added to `gdlib-config --ldflags`
> > > > > +%define		rpmldflags	%{nil}
> > > > 
> > > > Wydaje mi się, że nie jest to jest poprawne rozwiaznie. Raczej w to co
> > > > wpada w ten skrypt nie powinno trafiać opcje linkera uzywane przy
> > > > linkowaniu samej biblioteki i to tu raczje wydaje mi się jest błąd że
> > > > zamiast wstawić tylko biblioteki ktoś był nadgorliwy i wrzucił opcje
> > > > linkera.
> > > > Żaden skrypt config czy pkg-config nie dostarczaja opcji linkera.
> > 
> > $ grep -l ldflags /usr/bin/*-config
> > /usr/bin/Magick++-config
> > /usr/bin/Magick-config
> > /usr/bin/gdlib-config
> > /usr/bin/gimp-config
> > /usr/bin/libecasound-config
> > /usr/bin/libecasoundc-config
> > /usr/bin/libpng-config
> > /usr/bin/libpng12-config
> > /usr/bin/mm-config
> > /usr/bin/net-snmp-config
> > /usr/bin/nspr-config
> > /usr/bin/pdflib-config
> > /usr/bin/sane-config
> > 
> > Patch psuje gd, bo `gdlib-config --ldflags` *jest* używane w innych
> > projektach (gdyby nie było, to bym nie ruszał, ale to było propagowane
> > po innych *-config... już nie pamiętam gdzie, bo zwalczyłem w weekend co
> > najmniej kilkanaście brzydkich rzeczy w *.la i *-config). Po wycięciu
> > tej opcji skrypt używający jej dostanie "usage".
> 
> Jakub ale to jest bez sensu i nie ma co temu przytakiwać :>
> Przykład:
> 
> [kloczek w test1 SPECS]$ libpng-config --ldflags
> -L/usr/lib -Wl,-rpath,/usr/lib -lpng10 -lz -lm
> [kloczek w test1 SPECS]$ libpng-config --libs   
> -lpng10 -lz -lm
> 
> Po co tu wogóle rpatch ?

Masz jakaś starą wersję ;P
W libpng na HEAD to też ubiłem w weekend.
(też się paskudztwo propagowało - do gd i dalej)

>  a dlaczego w ldflags wpadaja biblioteki ?
> Zauważ że już pkg-config nie daje żadnych informacji o ldflags bo to 
> poprostu nie jest potrzebne. Dobrze że tych projektów nie jest tak dużo i 
> że rozesłać info o tym że jest to nieporozumienie w raz poprawką do tego 
> nie będzie trudno.
> 
> Właśnie widzę, że libpng-config jest zresztą jeszcze kilka innych 
> kwiatków:
[...]

Po prostu skrypty *-config (z wyjątkiem samego narzędzia pkg-config oraz
(rzadko występujących i już wychodzących z użycia) generowanych przez
autofig) nie są w żaden sposób ustandaryzowane i autorzy robili je wg
własnego uznania. W niektórych pakietach --libs obejmuje wszystko
potrzebne do linkowania, w innych jest rozbite na --libs z -l*
i --ldflags z -L*; a czasami jest wspólna opcja, ale o nazwie --ldflags;
podobnie -I* raz są w --cflags, gdzie indziej w --cppflags itp.

W sprawie usuwania różnych dziwnych/niepotrzebnych opcji pisz do autorów
pakietów (tych, w których są, oraz tych używających tych opcji).
Jestem przeciwny zaczynaniu tego od wywalania tych opcji w PLD.
Jeżeli teraz zwracają jakieś brzydkie rzeczy, to niech zwracają po
prosty pusty ciąg - a nie "usage" czy "syntax error".

> > > Zwróć jednak uwagę że LDFLAGS mogą zawierać nie tylko -s ale także -lfoo
> > > -L/usr/lib/bar, co jest istotne przy linkowaniu (-l statycznym, -L także
> > > dynamicznym).
> > > Mnie się nie podoba wtykanie w proces budowania -s bo binarki i tak są
> > > przecież później stripowane więc -s jest redundantne.
> > 
> > Ale zmniejsza zapotrzebowanie na miejsce podczas budowania (w przypadku
> > C++ znacznie) i powinno oszczędzać trochę czasu (ograniczając I/O), więc
> > tam gdzie nie psuje, lepiej używać.
> 
> Co do LDFLAGS to nie powinno w to wpadać żadne -lfoo. Od tego jest *LDADD 
> i *LIBS.

To w Makefile.am. W programach nie używających automake'a bywa inaczej.
Kwestia nazewnictwa.
(inna rzecz, że nie bardzo widzę związek tego komentarza z moim, raczej
było do pierwszego akapitu wigeta)


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl