ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Dmitry V. Levin" <ldv@altlinux.org>
To: ALT Linux Sisyphus mailing list <sisyphus@altlinux.ru>
Subject: Re: [sisyphus] Обнаружены новые враги народа! (was: Возвращаясь ...)
Date: Tue, 16 Dec 2003 15:50:57 +0300
Message-ID: <20031216125057.GA5087@basalt.office.altlinux.org> (raw)
In-Reply-To: <20031216121648.GD4995@pyro.hopawar.private.net>

[-- Attachment #1: Type: text/plain, Size: 3306 bytes --]

On Tue, Dec 16, 2003 at 06:16:48PM +0600, Alexey Morozov wrote:
> On Mon, Dec 15, 2003 at 04:59:33PM +0300, Dmitry V. Levin wrote:
> > > Я трейсил все это дело, в решающий момент (то есть, в этой самой
> > > проверке, после которой Ваш патч уводит на else continue),
> > > $link_all_deplibs оказывается равным no, причем, даже в случае -static
> > > что, впрочем, не мешает libtool'у все равно зацепить $dependency_libs.
> > Т.е. мой патч не работает?
> Он работает. Но работает не столько потому что Вы патчите libtool.m4, а
> потому что Вы патчите ltmain.sh, не давая ему проскакать по списку
> $dependency_libs (строка 2150 и ниже). А это, кстати, можно сделать, и не
> трогая libtool.m4.

У вас есть патч, который делает это лучше?  Так давайте его сюда.

> P.S. Кстати, есть еще одна довольно-таки неприятная проблема: pkgconfig

Да, конечно.  Но
1. пользователей pkgconfig меньше;
2. нельзя объять необъятное;
3. до исправления pkgconfig очередь тоже дойдёт. :)

> Пример:
> 
> alex@pyro ~/tmp/libtool $ rpm -q libtool_1.5 libgtk+2
> libtool_1.5-1.5-alt10
> libgtk+2-2.2.4-alt4
> alex@pyro ~/tmp/libtool $ libtool --mode=link gcc -g -O -o test test.o
> -lgtk-x11-2.0
> gcc -g -O -o test test.o  -lgtk-x11-2.0
> alex@pyro ~/tmp/libtool $ _
> 
> Все, как видите, вполне корректно, и именно так, как хотелось бы
> (причем, даже если ЕСТЬ .la-файлы, у меня, на самом деле, штатно стоит
> самосборанная libgtk+2, c .la-файлами, отличие только в способе передачи
> аргументов от libtool к gcc).

А в чём, собственно, это отличие?

> Если пользоваться pkgconfig, то все становится
> гораздо грустнее:
> 
> alex@pyro ~/tmp/libtool $ libtool --mode=link gcc -g -O -o test test.o
> `pkg-config --libs gtk+-2.0`
> gcc -g -O -o test test.o -Wl,--export-dynamic  -lgtk-x11-2.0
> -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0
> -lpango-1.0 /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl
> /usr/lib/libglib-2.0.so
> alex@pyro ~/tmp/libtool $ _
> 
> Видите? Все мучения с выкидыванием "лишних" .la файлов оказались тщетны.
> pkgconfig все равно вычислил всех, на кого так или иначе ссылается
> gtk-x11-2.0 и подсунул соответствующие параметры libtool'у.

$ grep ^Libs: /usr/lib/pkgconfig/gtk+-2.0.pc
Libs: -lgtk-${target}-2.0

$ strace -e trace=open pkg-config --libs gtk+-2.0
[...]
open("/usr/lib/pkgconfig", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) =
3
open("/usr/lib/pkgconfig/gtk+-2.0.pc", O_RDONLY) = 4
open("/usr/lib/pkgconfig/gdk-x11-2.0.pc", O_RDONLY) = 5
open("/usr/lib/pkgconfig/gdk-pixbuf-2.0.pc", O_RDONLY) = 6
open("/usr/lib/pkgconfig/gobject-2.0.pc", O_RDONLY) = 7
open("/usr/lib/pkgconfig/glib-2.0.pc", O_RDONLY) = 8
open("/usr/lib/pkgconfig/gmodule-2.0.pc", O_RDONLY) = 9
open("/usr/lib/pkgconfig/pangoxft.pc", O_RDONLY) = 10
open("/usr/lib/pkgconfig/pango.pc", O_RDONLY) = 11
open("/usr/lib/pkgconfig/pangox.pc", O_RDONLY) = 12
open("/usr/lib/pkgconfig/atk.pc", O_RDONLY) = 13
-Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

Похоже, достаточно "просто" отучить "pkg-config --libs" от рекурсии,
или, ещё лучше, добавить pkg-config'у новый параметр,
включающий/выключающий эту рекурсию.

P.S. Не пора ли нам с этой темой в devel@?


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2003-12-16 12:50 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-10 16:04 [sisyphus] Возвращаясь к напечатанному (про .la) Alexey Morozov
2003-12-10 16:16 ` Dmitry V. Levin
2003-12-10 17:04   ` Sergey S. Skulachenko
2003-12-10 21:20   ` Alexey Morozov
2003-12-11  6:54     ` Sergey S. Skulachenko
2003-12-11  9:22       ` Alexey Morozov
2003-12-11 10:28         ` Alexey Morozov
2003-12-11 12:02     ` Dmitry V. Levin
2003-12-11 13:51       ` Alexey Morozov
2003-12-11 14:30         ` Dmitry V. Levin
2003-12-11 15:19           ` Alexey Morozov
2003-12-12 14:19             ` [sisyphus] " Alexey Tourbin
2003-12-13 10:19               ` [sisyphus] [JT] " Alexey Morozov
2003-12-15 13:59             ` [sisyphus] " Dmitry V. Levin
2003-12-16 12:16               ` [sisyphus] Обнаружены новые враги народа! (was: Возвращаясь ...) Alexey Morozov
2003-12-16 12:50                 ` Dmitry V. Levin [this message]
2003-12-16 13:23                   ` Alexey Morozov
2003-12-16 13:40                     ` Dmitry V. Levin
2003-12-16 14:20                       ` Alexey Morozov
2003-12-16 15:59                     ` [sisyphus] " Michael Shigorin
2003-12-16 14:27                   ` [sisyphus] " Serge Pavlovsky
2003-12-16 14:36                     ` Alexey Morozov
2003-12-12 14:57           ` [sisyphus] Возвращаясь к напечатаннонапечатанному (про .la) Serge Pavlovsky
2003-12-12 15:38             ` [sisyphus] " Alexey Tourbin
2003-12-12 16:13               ` [sisyphus] Re: Возвращаясь к напечатаннонапечатаннонапечатанному " Serge Pavlovsky
2003-12-12 16:41                 ` [sisyphus][JT] напечатаннонапечатаннонапечатанному Andrey Rahmatullin
2003-12-16 10:02           ` [sisyphus] Re: Возвращаясь к напечатанному (про .la) Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031216125057.GA5087@basalt.office.altlinux.org \
    --to=ldv@altlinux.org \
    --cc=sisyphus@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git