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