SPECS: gd.spec (HEAD)
Tomasz Kłoczko
kloczek w rudy.mif.pg.gda.pl
Czw, 24 Kwi 2003, 01:03:27 CEST
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 ? 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:
[kloczek w test1 SPECS]$ libpng-config --ldopts
^^^^^^^^0
Usage: libpng-config [OPTION] ...
Known values for OPTION are:
--prefix print libpng prefix
--libdir print path to directory containing library
--libs print library linking information
--ccopts print compiler options
--cppflags print pre-processor flags
--cflags print preprocessor flags, I_opts, and compiler options
--I_opts print "-I" include options
--L_opts print linker "-L" flags for dynamic linking
--R_opts print dynamic linker "-R" or "-rpath" flags
--ldopts print linker options
^^^^^^^^
--ldflags print linker flags (ldopts, L_opts, R_opts, and libs)
--static revise subsequent outputs for static linking
--help print this help and exit
--version print version information
A juz po co tu są --R_opts, --L_opts to juz ciężko się domyśleć.
--static zwraca puste wyjście (czyli co ? niby nic nie trzeba dodawać zeby
móc to statycznei zlinkować ? i dlaczego o tym jak zzlinkowac statycznie z
libpng ma decydować samo libpng ?)
Dla mnie wyglada to jak choinka nad której kształtem ktoś wogóle się nie
zastanawił :>
> > 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.
kloczek
--
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*
Więcej informacji o liście dyskusyjnej pld-devel-pl