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 --]
next prev parent 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