To uzywamy --as-needed czy nie ? [Bylo: Re: SPECS: mpg123.spec - better]

Przemyslaw Iskra sparky w pld-linux.org
Pon, 27 Lis 2006, 02:20:08 CET


On Mon, Nov 27, 2006 at 12:55:53AM +0100, Jakub Bogusz wrote:
> On Mon, Nov 27, 2006 at 12:08:39AM +0100, Bartosz Świątek wrote:
> > 06-11-26, Przemyslaw Iskra <sparky w pld-linux.org> napisał(a):
> [...]
> > > Choc w sumie --as-needed jest bardziej przydatne w duzych projektach,
> > > ktore nie powinno miec wiekszych problemow, chyba ze ktos wrzuci
> > > biblioteki do LDFLAGS. Jesli biblioteki pojda za --as-needed to jest
> > > troche szczescia bo budowanie sie wywali, jesli pojda przed to budowanie
> > > przejdzie, czyli bedzie gorzej (choc wielu sie z tymi slowami nie
> > > zgadza).
> > > Jakos nie widze zeby kogos oprocz mnie to zbytnio przejmowalo,
> > > zalaczylismy --as-needed i jest fajnie bo jest (choc nic nie robi).
> > 
> > Nie dramatyzuj. Fajnie, że jest i masz jak najbardziej racje, że skoro
> > jest to ma działać poprawnie ! Jestem jak najbardziej za tym by
> > poprawiać błędne linkowanie. A jeśli faktycznie ten wrapper coś pomaga
> > to jest fajnym narzędziem pomocniczym, ale raczej dla developera, a
> > nie do .spec file'a. Może jakaś opcja do buildera albo coś ...
> 
> Tu się zgadzam - błędy w źródłach pakietów należy poprawiać łatkami na
> źródła (i najlepiej wysyłać je autorom), a nie obchodzić wrapperami.

ok, to zamieszczam opis jak uzywac gcc.wrapper (jest to program tylko
dla developerow):

1. wrzucic
http://svn.pld-linux.org/cgi-bin/viewsvn/*checkout*/toys/tools/gcc.wrapper?rev=8000
(8000, yey !) do ~/bin

2. zmienic my $arch = "ppc"; na prefix kompilatora
3. ustawic +x i podlinkowac wszystkie gcc:
[sparky w chroot bin]$ chmod +x gcc.wrapper
[sparky w chroot bin]$ ln -s gcc.wrapper ppc-pld-linux-gcc
[sparky w chroot bin]$ ln -s gcc.wrapper gcc
[sparky w chroot bin]$ ln -s gcc.wrapper ppc-pld-linux-g++
[sparky w chroot bin]$ ln -s gcc.wrapper g++
[sparky w chroot bin]$ ln -s gcc.wrapper ppc-pld-linux-c++
[sparky w chroot bin]$ ln -s gcc.wrapper c++

4. zmienic PATH w ./builderze zeby uwzglednial $HOME/bin

5. odpalic np ./builder -bb rovclock.spec

po tym w pliku ~/flags-problems mozna znalezc:
PROGRAM! CFLAGS! LDFLAGS! rovclock-0.6e: gcc -O2 -Wall -Wstrict-prototypes -o rovclock rovclock.c
lub:
LDFLAGS! ASNEEDED! mol-0.9.71.1: ppc-pld-linux-gcc -o ../obj-ppc/build/src/mol -L/usr/lib ../obj-ppc/build/src/liballmol.a -lasound -lpng -lX11 -lXext -lpthread -lm

- PROGRAM! oznacza ze wywolany byl gcc nie taki sam jak %{__cc} lub
  %{__cxx}
- CFLAGS! - nie ma %{rpmcflags} (pokaze sie tez jak jakas bedzie
  odfiltrowana)
- LDFLAGS! - podobnie j.w.
- ASNEEDED! - jest to linkowanie i sa podane biblioteki -l, ale
  nie ma flagi --as-needed lub zostala ona podana za bibliotekami
- OPTIMIZE(-Ox)! - zostala uzyta optymizacja inna niz domyslna (-O2)


Z tymi informacjami dosyc latwo wysledzic co jest to poprawki, tylko,
komu sie bedzie chcialo ?

Dobra, spadam poprawiac mola (:

-- 
 ____  Sparky{PI] -- Przemyslaw _  ___  _  _  ........... LANG...Pl..Ca..Es..En
/____) ___  ___  _ _ || Iskra  |  | _ \| |  | : WWW........ppcrcd.pld-linux.org
\____\| -_)'___| ||^'||//\\// <   |  _/| |  | : JID......sparky<at>jabberes.org
(____/||   (_-_|_||  ||\\ ||   |_ |_|  |_| _| : Mail....sparky<at>pld-linux.org


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