* [devel] libtool: la_LIBADD vs noinst_LIBRARIES
@ 2004-02-03 21:35 Alexey Tourbin
2004-02-04 9:20 ` [devel] " Mikhail Zabaluev
` (2 more replies)
0 siblings, 3 replies; 24+ messages in thread
From: Alexey Tourbin @ 2004-02-03 21:35 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 2816 bytes --]
Здравствуйте.
Для тех, кто не в курсе, краткая справка: libtool -- это wrapper для
компилятора и линкера для упрощенного создания библиотек.
Псевдо-библиотека libtool имеет суффикс .la (пресловутые .la files).
Псевдо-библиотеке соответствуют статическая .a и динамическая .so
библиотеки. Сборка этих двух типов библиотек автоматически выполняются
с разными флагами компиляции (для динамических библиотек генерируется
т.н. position independent code с помощью -fPIC).
Таким образом, одни и те же библиотечные исходники компилируются
дважды (если не отключить статическую сборку). По умолчанию
используются динамические библиотеки, для которых PIC code дает
заметное преимущество. Для статических библиотек и executables PIC code
дает небольшой проигрыш.
Теперь обратим внимание на пакет mpfc (music player for console).
$ cat mpfc-1.1.1/plugins/effect/echo/Makefile.am
lib_LTLIBRARIES = libecho.la
libdir = $(prefix)/lib/mpfc/effect
libecho_la_SOURCES = echo.c
INCLUDES = -I$(top_builddir)/src
libecho_la_LIBADD = $(top_builddir)/src/util/libutil.a \
$(top_builddir)/src/cfg/libcfg.a
$
Здесь мы видим, что "полноценная" libtool библиотека libecho.la как в
статическом, так и в динамическом виде линкуется со вспомогательными
статическими библиотеками libutil.a и libcfg.a.
$ cat mpfc-1.1.1/src/util/Makefile.am
noinst_LIBRARIES = libutil.a
libutil_a_SOURCES = util.c ../util.h
localedir = $(datadir)/locale
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
INCLUDES = -I$(top_builddir)/src
$
Здесь мы видим, что библиотека libutil.a действительно является
вспомогательной и не предназначена для установки (noinst_LIBRARIES),
а предназначена только для статической компоновки в libecho.la и в
некоторые другие библиотеки этого пакета.
Таким образом, by design, в этом пакете статический non-piс код
(libutil.a) будет "подмешиваться" в динамические библиотеки
(libecho.so). Соответственно, такие динамические библиотеки не будут
проходить проверку brp-verify_elf.
К чести libtool надо сказать, что в таких ситуациях он выдает честное
предупреждение:
*** Warning: Linking the shared library libecho.la against the
*** static library ../../../src/util/libutil.a is not portable!
К "стыду" разработчиков надо сказать, что пакет mpfc не один подвержен
этой напасти (сегодня я ещё исправил flac и буду дальше заниматься этим
вопросом).
Теперь предлагаю обсудить варианты решения проблемы:
1) Можно изменить структуру пакета (возможно, увеличив число полноценных
библиотек и исключив вспомогательные статические библиотеки).
2) Обнаружив вспомогательные статические библиотеки, можно "насильно"
заставить их собираться с -fPIC примерно следующим образом:
%configure
%__subst -p 's/%optflags/& %optflags_shared/g' .../Makefile
%make_build
Я пока предпочел второй вариант.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-03 21:35 [devel] libtool: la_LIBADD vs noinst_LIBRARIES Alexey Tourbin
@ 2004-02-04 9:20 ` Mikhail Zabaluev
2004-02-04 16:44 ` Alexey Tourbin
2004-02-04 20:58 ` [devel] " Dmitry V. Levin
2004-02-20 9:47 ` [devel] " Alexey Morozov
2 siblings, 1 reply; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-04 9:20 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 2420 bytes --]
Hello Alexey,
On Wed, Feb 04, 2004 at 12:35:22AM +0300, Alexey Tourbin wrote:
>
> Теперь обратим внимание на пакет mpfc (music player for console).
>
> $ cat mpfc-1.1.1/plugins/effect/echo/Makefile.am
> lib_LTLIBRARIES = libecho.la
>
> libdir = $(prefix)/lib/mpfc/effect
>
> libecho_la_SOURCES = echo.c
> INCLUDES = -I$(top_builddir)/src
> libecho_la_LIBADD = $(top_builddir)/src/util/libutil.a \
> $(top_builddir)/src/cfg/libcfg.a
> $
>
> Здесь мы видим, что "полноценная" libtool библиотека libecho.la как в
> статическом, так и в динамическом виде линкуется со вспомогательными
> статическими библиотеками libutil.a и libcfg.a.
>
> $ cat mpfc-1.1.1/src/util/Makefile.am
> noinst_LIBRARIES = libutil.a
> libutil_a_SOURCES = util.c ../util.h
> localedir = $(datadir)/locale
> DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
> INCLUDES = -I$(top_builddir)/src
> $
>
> Здесь мы видим, что библиотека libutil.a действительно является
> вспомогательной и не предназначена для установки (noinst_LIBRARIES),
> а предназначена только для статической компоновки в libecho.la и в
> некоторые другие библиотеки этого пакета.
>
> Таким образом, by design, в этом пакете статический non-piс код
> (libutil.a) будет "подмешиваться" в динамические библиотеки
> (libecho.so). Соответственно, такие динамические библиотеки не будут
> проходить проверку brp-verify_elf.
>
> К чести libtool надо сказать, что в таких ситуациях он выдает честное
> предупреждение:
>
> *** Warning: Linking the shared library libecho.la against the
> *** static library ../../../src/util/libutil.a is not portable!
>
> К "стыду" разработчиков надо сказать, что пакет mpfc не один подвержен
> этой напасти (сегодня я ещё исправил flac и буду дальше заниматься этим
> вопросом).
>
> Теперь предлагаю обсудить варианты решения проблемы:
>
> 1) Можно изменить структуру пакета (возможно, увеличив число полноценных
> библиотек и исключив вспомогательные статические библиотеки).
Для этого нужно немного переделать src/util/Makefile.am:
noinst_LTLIBRARIES = libutil.la
libutil_la_SOURCES = util.c ../util.h
...
Больше можно почитать в info по automake, раздел "Convenience Libraries".
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
You'd best be snoozin', 'cause you don't be gettin' no work done at 5 a.m.
anyway.
-- From the wall of the Wurster Hall stairwell
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 9:20 ` [devel] " Mikhail Zabaluev
@ 2004-02-04 16:44 ` Alexey Tourbin
2004-02-04 16:45 ` Alexey Tourbin
2004-02-04 20:49 ` Mikhail Zabaluev
0 siblings, 2 replies; 24+ messages in thread
From: Alexey Tourbin @ 2004-02-04 16:44 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 584 bytes --]
On Wed, Feb 04, 2004 at 12:20:35PM +0300, Mikhail Zabaluev wrote:
> Для этого нужно немного переделать src/util/Makefile.am:
> noinst_LTLIBRARIES = libutil.la
> libutil_la_SOURCES = util.c ../util.h
> ...
>
> Больше можно почитать в info по automake, раздел "Convenience Libraries".
Это как раз то, что было нужно. Спасибо.
В результате получилась такая конструкция:
%build
find -type f -name Makefile.am -print0 | xargs -r0 %__subst -p \
's/_LIBRARIES/_LTLIBRARIES/g; s/\.a\>/.la/g; s/_a_/_la_/g'
%__aclocal
%__automake -a -f
%__autoconf
%configure --disable-static
%make_build
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 16:44 ` Alexey Tourbin
@ 2004-02-04 16:45 ` Alexey Tourbin
2004-02-04 20:49 ` Mikhail Zabaluev
1 sibling, 0 replies; 24+ messages in thread
From: Alexey Tourbin @ 2004-02-04 16:45 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 584 bytes --]
On Wed, Feb 04, 2004 at 12:20:35PM +0300, Mikhail Zabaluev wrote:
> Для этого нужно немного переделать src/util/Makefile.am:
> noinst_LTLIBRARIES = libutil.la
> libutil_la_SOURCES = util.c ../util.h
> ...
>
> Больше можно почитать в info по automake, раздел "Convenience Libraries".
Это как раз то, что было нужно. Спасибо.
В результате получилась такая конструкция:
%build
find -type f -name Makefile.am -print0 | xargs -r0 %__subst -p \
's/_LIBRARIES/_LTLIBRARIES/g; s/\.a\>/.la/g; s/_a_/_la_/g'
%__aclocal
%__automake -a -f
%__autoconf
%configure --disable-static
%make_build
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 16:44 ` Alexey Tourbin
2004-02-04 16:45 ` Alexey Tourbin
@ 2004-02-04 20:49 ` Mikhail Zabaluev
2004-02-04 20:49 ` Mikhail Zabaluev
2004-02-04 20:51 ` Dmitry V. Levin
1 sibling, 2 replies; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-04 20:49 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 610 bytes --]
Hello Alexey,
On Wed, Feb 04, 2004 at 07:44:20PM +0300, Alexey Tourbin wrote:
>
> > Для этого нужно немного переделать src/util/Makefile.am:
> > noinst_LTLIBRARIES = libutil.la
> > libutil_la_SOURCES = util.c ../util.h
> > ...
> >
> > Больше можно почитать в info по automake, раздел "Convenience Libraries".
>
> Это как раз то, что было нужно. Спасибо.
Ещё неплохо бы доложить о проделанной работе в upstream.
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
"...and scantily clad females, of course. Who cares if it's below zero
outside"
(By Linus Torvalds)
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 20:49 ` Mikhail Zabaluev
@ 2004-02-04 20:49 ` Mikhail Zabaluev
2004-02-04 20:51 ` Dmitry V. Levin
1 sibling, 0 replies; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-04 20:49 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 610 bytes --]
Hello Alexey,
On Wed, Feb 04, 2004 at 07:44:20PM +0300, Alexey Tourbin wrote:
>
> > Для этого нужно немного переделать src/util/Makefile.am:
> > noinst_LTLIBRARIES = libutil.la
> > libutil_la_SOURCES = util.c ../util.h
> > ...
> >
> > Больше можно почитать в info по automake, раздел "Convenience Libraries".
>
> Это как раз то, что было нужно. Спасибо.
Ещё неплохо бы доложить о проделанной работе в upstream.
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
"...and scantily clad females, of course. Who cares if it's below zero
outside"
(By Linus Torvalds)
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 20:49 ` Mikhail Zabaluev
2004-02-04 20:49 ` Mikhail Zabaluev
@ 2004-02-04 20:51 ` Dmitry V. Levin
2004-02-04 20:51 ` Dmitry V. Levin
1 sibling, 1 reply; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-04 20:51 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 634 bytes --]
On Wed, Feb 04, 2004 at 11:49:07PM +0300, Mikhail Zabaluev wrote:
> Hello Alexey,
> On Wed, Feb 04, 2004 at 07:44:20PM +0300, Alexey Tourbin wrote:
> >
> > > Для этого нужно немного переделать src/util/Makefile.am:
> > > noinst_LTLIBRARIES = libutil.la
> > > libutil_la_SOURCES = util.c ../util.h
> > > ...
> > >
> > > Больше можно почитать в info по automake, раздел "Convenience Libraries".
> >
> > Это как раз то, что было нужно. Спасибо.
>
> Ещё неплохо бы доложить о проделанной работе в upstream.
Только делать это надо аккуратно, чтобы они там не догадались, что это
типовая ошибка, описанная в документации. :)
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 20:51 ` Dmitry V. Levin
@ 2004-02-04 20:51 ` Dmitry V. Levin
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-04 20:51 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 634 bytes --]
On Wed, Feb 04, 2004 at 11:49:07PM +0300, Mikhail Zabaluev wrote:
> Hello Alexey,
> On Wed, Feb 04, 2004 at 07:44:20PM +0300, Alexey Tourbin wrote:
> >
> > > Для этого нужно немного переделать src/util/Makefile.am:
> > > noinst_LTLIBRARIES = libutil.la
> > > libutil_la_SOURCES = util.c ../util.h
> > > ...
> > >
> > > Больше можно почитать в info по automake, раздел "Convenience Libraries".
> >
> > Это как раз то, что было нужно. Спасибо.
>
> Ещё неплохо бы доложить о проделанной работе в upstream.
Только делать это надо аккуратно, чтобы они там не догадались, что это
типовая ошибка, описанная в документации. :)
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-03 21:35 [devel] libtool: la_LIBADD vs noinst_LIBRARIES Alexey Tourbin
2004-02-04 9:20 ` [devel] " Mikhail Zabaluev
@ 2004-02-04 20:58 ` Dmitry V. Levin
2004-02-04 20:58 ` Dmitry V. Levin
` (2 more replies)
2004-02-20 9:47 ` [devel] " Alexey Morozov
2 siblings, 3 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-04 20:58 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 594 bytes --]
Hi,
On Wed, Feb 04, 2004 at 12:35:22AM +0300, Alexey Tourbin wrote:
> К "стыду" разработчиков надо сказать, что пакет mpfc не один подвержен
> этой напасти (сегодня я ещё исправил flac и буду дальше заниматься этим
> вопросом).
Похоже, что работы хватит - вот результат grep'а по логам последней
пересборки:
$ fgrep -l 'Warning: Linking the shared library' *
cinepaint-0.18.1-alt1
flac-1.1.0-alt6
freeradius-0.9.3-alt2
g-wrap-1.3.4-alt4
gnome-bluetooth-0.4.1-alt0.1
gnucash-1.8.8-alt3
gthumb-2.1.9-alt1
libassuan-0.6.1-alt2
mjpegtools-1.6.1.93-alt1
mpfc-1.0-alt1
xchat2-2.0.5-alt5
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 20:58 ` [devel] " Dmitry V. Levin
@ 2004-02-04 20:58 ` Dmitry V. Levin
2004-02-04 21:47 ` [devel] " Mikhail Zabaluev
2004-02-09 2:57 ` Alexey Tourbin
2 siblings, 0 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-04 20:58 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 594 bytes --]
Hi,
On Wed, Feb 04, 2004 at 12:35:22AM +0300, Alexey Tourbin wrote:
> К "стыду" разработчиков надо сказать, что пакет mpfc не один подвержен
> этой напасти (сегодня я ещё исправил flac и буду дальше заниматься этим
> вопросом).
Похоже, что работы хватит - вот результат grep'а по логам последней
пересборки:
$ fgrep -l 'Warning: Linking the shared library' *
cinepaint-0.18.1-alt1
flac-1.1.0-alt6
freeradius-0.9.3-alt2
g-wrap-1.3.4-alt4
gnome-bluetooth-0.4.1-alt0.1
gnucash-1.8.8-alt3
gthumb-2.1.9-alt1
libassuan-0.6.1-alt2
mjpegtools-1.6.1.93-alt1
mpfc-1.0-alt1
xchat2-2.0.5-alt5
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 20:58 ` [devel] " Dmitry V. Levin
2004-02-04 20:58 ` Dmitry V. Levin
@ 2004-02-04 21:47 ` Mikhail Zabaluev
2004-02-04 21:47 ` Mikhail Zabaluev
` (2 more replies)
2004-02-09 2:57 ` Alexey Tourbin
2 siblings, 3 replies; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-04 21:47 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 805 bytes --]
Hello Dmitry,
On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
>
> Похоже, что работы хватит - вот результат grep'а по логам последней
> пересборки:
>
> $ fgrep -l 'Warning: Linking the shared library' *
...
> mjpegtools-1.6.1.93-alt1
Этим было недавно предложено заняться мне. Что ж, и займусь.
Кстати, есть вопрос по поводу другой напасти: TEXTREL.
Я правильно понимаю, что наличие ассемблерных файлов в сборке
DSO-модуля практически наверняка гарантирует TEXTREL?
Разработчики никогда не заботятся о правильных
атрибутах видимости символов, экспортируемых в ассемблере,
а самим закодировать PIC всегда слабо.
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
The Constitution may not be perfect, but it's a lot better than what we've got!
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 21:47 ` [devel] " Mikhail Zabaluev
@ 2004-02-04 21:47 ` Mikhail Zabaluev
2004-02-04 21:57 ` Dmitry V. Levin
2004-02-05 6:52 ` Anton Farygin
2 siblings, 0 replies; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-04 21:47 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 805 bytes --]
Hello Dmitry,
On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
>
> Похоже, что работы хватит - вот результат grep'а по логам последней
> пересборки:
>
> $ fgrep -l 'Warning: Linking the shared library' *
...
> mjpegtools-1.6.1.93-alt1
Этим было недавно предложено заняться мне. Что ж, и займусь.
Кстати, есть вопрос по поводу другой напасти: TEXTREL.
Я правильно понимаю, что наличие ассемблерных файлов в сборке
DSO-модуля практически наверняка гарантирует TEXTREL?
Разработчики никогда не заботятся о правильных
атрибутах видимости символов, экспортируемых в ассемблере,
а самим закодировать PIC всегда слабо.
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
The Constitution may not be perfect, but it's a lot better than what we've got!
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 21:47 ` [devel] " Mikhail Zabaluev
2004-02-04 21:47 ` Mikhail Zabaluev
@ 2004-02-04 21:57 ` Dmitry V. Levin
2004-02-04 21:57 ` Dmitry V. Levin
2004-02-04 23:08 ` Alexey Morozov
2004-02-05 6:52 ` Anton Farygin
2 siblings, 2 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-04 21:57 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 912 bytes --]
On Thu, Feb 05, 2004 at 12:47:43AM +0300, Mikhail Zabaluev wrote:
> On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
> >
> > Похоже, что работы хватит - вот результат grep'а по логам последней
> > пересборки:
> >
> > $ fgrep -l 'Warning: Linking the shared library' *
> ...
> > mjpegtools-1.6.1.93-alt1
>
> Этим было недавно предложено заняться мне. Что ж, и займусь.
>
> Кстати, есть вопрос по поводу другой напасти: TEXTREL.
Не только asm, но и неправильная линковка, о которой нам рассказал
Алексей, тоже приводит к TEXTREL'ам.
> Я правильно понимаю, что наличие ассемблерных файлов в сборке
> DSO-модуля практически наверняка гарантирует TEXTREL?
Увы, да.
> Разработчики никогда не заботятся о правильных
> атрибутах видимости символов, экспортируемых в ассемблере,
> а самим закодировать PIC всегда слабо.
Зато есть приятные исключения из этой закономерности, glibc и gcc.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 21:57 ` Dmitry V. Levin
@ 2004-02-04 21:57 ` Dmitry V. Levin
2004-02-04 23:08 ` Alexey Morozov
1 sibling, 0 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-04 21:57 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 912 bytes --]
On Thu, Feb 05, 2004 at 12:47:43AM +0300, Mikhail Zabaluev wrote:
> On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
> >
> > Похоже, что работы хватит - вот результат grep'а по логам последней
> > пересборки:
> >
> > $ fgrep -l 'Warning: Linking the shared library' *
> ...
> > mjpegtools-1.6.1.93-alt1
>
> Этим было недавно предложено заняться мне. Что ж, и займусь.
>
> Кстати, есть вопрос по поводу другой напасти: TEXTREL.
Не только asm, но и неправильная линковка, о которой нам рассказал
Алексей, тоже приводит к TEXTREL'ам.
> Я правильно понимаю, что наличие ассемблерных файлов в сборке
> DSO-модуля практически наверняка гарантирует TEXTREL?
Увы, да.
> Разработчики никогда не заботятся о правильных
> атрибутах видимости символов, экспортируемых в ассемблере,
> а самим закодировать PIC всегда слабо.
Зато есть приятные исключения из этой закономерности, glibc и gcc.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 21:57 ` Dmitry V. Levin
2004-02-04 21:57 ` Dmitry V. Levin
@ 2004-02-04 23:08 ` Alexey Morozov
1 sibling, 0 replies; 24+ messages in thread
From: Alexey Morozov @ 2004-02-04 23:08 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 328 bytes --]
On Thu, Feb 05, 2004 at 12:57:24AM +0300, Dmitry V. Levin wrote:
> > Разработчики никогда не заботятся о правильных
> > атрибутах видимости символов, экспортируемых в ассемблере,
> > а самим закодировать PIC всегда слабо.
> Зато есть приятные исключения из этой закономерности, glibc и gcc.
Еще бы и эти головой не думали :-).
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 21:47 ` [devel] " Mikhail Zabaluev
2004-02-04 21:47 ` Mikhail Zabaluev
2004-02-04 21:57 ` Dmitry V. Levin
@ 2004-02-05 6:52 ` Anton Farygin
2004-02-05 6:52 ` Anton Farygin
` (2 more replies)
2 siblings, 3 replies; 24+ messages in thread
From: Anton Farygin @ 2004-02-05 6:52 UTC (permalink / raw)
To: Mikhail Zabaluev, ALT Devel discussion list
On Thu, Feb 05, 2004 at 12:47:43AM +0300, Mikhail Zabaluev wrote:
> Hello Dmitry,
>
> On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
> >
> > Похоже, что работы хватит - вот результат grep'а по логам последней
> > пересборки:
> >
> > $ fgrep -l 'Warning: Linking the shared library' *
> ...
> > mjpegtools-1.6.1.93-alt1
>
> Этим было недавно предложено заняться мне. Что ж, и займусь.
>
> Кстати, есть вопрос по поводу другой напасти: TEXTREL.
> Я правильно понимаю, что наличие ассемблерных файлов в сборке
> DSO-модуля практически наверняка гарантирует TEXTREL?
> Разработчики никогда не заботятся о правильных
> атрибутах видимости символов, экспортируемых в ассемблере,
> а самим закодировать PIC всегда слабо.
Кстати, есть ли где-то документация на эту тему я про ассемблер и PIC)
Я с этим недавно столкнулся в libSDL, пришлось поставить relaxed ;-(
Rgds,
Rider
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-05 6:52 ` Anton Farygin
@ 2004-02-05 6:52 ` Anton Farygin
2004-02-05 9:08 ` Mikhail Zabaluev
2004-02-05 11:57 ` Michael Shigorin
2 siblings, 0 replies; 24+ messages in thread
From: Anton Farygin @ 2004-02-05 6:52 UTC (permalink / raw)
To: Mikhail Zabaluev, ALT Devel discussion list
On Thu, Feb 05, 2004 at 12:47:43AM +0300, Mikhail Zabaluev wrote:
> Hello Dmitry,
>
> On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
> >
> > Похоже, что работы хватит - вот результат grep'а по логам последней
> > пересборки:
> >
> > $ fgrep -l 'Warning: Linking the shared library' *
> ...
> > mjpegtools-1.6.1.93-alt1
>
> Этим было недавно предложено заняться мне. Что ж, и займусь.
>
> Кстати, есть вопрос по поводу другой напасти: TEXTREL.
> Я правильно понимаю, что наличие ассемблерных файлов в сборке
> DSO-модуля практически наверняка гарантирует TEXTREL?
> Разработчики никогда не заботятся о правильных
> атрибутах видимости символов, экспортируемых в ассемблере,
> а самим закодировать PIC всегда слабо.
Кстати, есть ли где-то документация на эту тему я про ассемблер и PIC)
Я с этим недавно столкнулся в libSDL, пришлось поставить relaxed ;-(
Rgds,
Rider
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-05 6:52 ` Anton Farygin
2004-02-05 6:52 ` Anton Farygin
@ 2004-02-05 9:08 ` Mikhail Zabaluev
2004-02-05 9:08 ` Mikhail Zabaluev
2004-02-05 11:57 ` Michael Shigorin
2 siblings, 1 reply; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-05 9:08 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 680 bytes --]
Hello Anton,
On Thu, Feb 05, 2004 at 09:52:38AM +0300, Anton Farygin wrote:
>
> > Я правильно понимаю, что наличие ассемблерных файлов в сборке
> > DSO-модуля практически наверняка гарантирует TEXTREL?
> > Разработчики никогда не заботятся о правильных
> > атрибутах видимости символов, экспортируемых в ассемблере,
> > а самим закодировать PIC всегда слабо.
>
> Кстати, есть ли где-то документация на эту тему я про ассемблер и
PIC)
Про PIC есть, например, здесь:
http://people.redhat.com/drepper/dsohowto.pdf
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
He missed an invaluable opportunity to hold his tongue.
-- Andrew Lang
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-05 9:08 ` Mikhail Zabaluev
@ 2004-02-05 9:08 ` Mikhail Zabaluev
0 siblings, 0 replies; 24+ messages in thread
From: Mikhail Zabaluev @ 2004-02-05 9:08 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 680 bytes --]
Hello Anton,
On Thu, Feb 05, 2004 at 09:52:38AM +0300, Anton Farygin wrote:
>
> > Я правильно понимаю, что наличие ассемблерных файлов в сборке
> > DSO-модуля практически наверняка гарантирует TEXTREL?
> > Разработчики никогда не заботятся о правильных
> > атрибутах видимости символов, экспортируемых в ассемблере,
> > а самим закодировать PIC всегда слабо.
>
> Кстати, есть ли где-то документация на эту тему я про ассемблер и
PIC)
Про PIC есть, например, здесь:
http://people.redhat.com/drepper/dsohowto.pdf
--
Stay tuned,
MhZ JID: mhz@altlinux.org
___________
He missed an invaluable opportunity to hold his tongue.
-- Andrew Lang
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-05 6:52 ` Anton Farygin
2004-02-05 6:52 ` Anton Farygin
2004-02-05 9:08 ` Mikhail Zabaluev
@ 2004-02-05 11:57 ` Michael Shigorin
2004-02-05 11:57 ` Michael Shigorin
2 siblings, 1 reply; 24+ messages in thread
From: Michael Shigorin @ 2004-02-05 11:57 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 303 bytes --]
On Thu, Feb 05, 2004 at 09:52:38AM +0300, Anton Farygin wrote:
> Кстати, есть ли где-то документация на эту тему я про ассемблер и PIC)
Может статься, они тоже предпочитают писать код, а не
документацию.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-05 11:57 ` Michael Shigorin
@ 2004-02-05 11:57 ` Michael Shigorin
0 siblings, 0 replies; 24+ messages in thread
From: Michael Shigorin @ 2004-02-05 11:57 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 303 bytes --]
On Thu, Feb 05, 2004 at 09:52:38AM +0300, Anton Farygin wrote:
> Кстати, есть ли где-то документация на эту тему я про ассемблер и PIC)
Может статься, они тоже предпочитают писать код, а не
документацию.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-04 20:58 ` [devel] " Dmitry V. Levin
2004-02-04 20:58 ` Dmitry V. Levin
2004-02-04 21:47 ` [devel] " Mikhail Zabaluev
@ 2004-02-09 2:57 ` Alexey Tourbin
2004-02-09 10:48 ` Dmitry V. Levin
2 siblings, 1 reply; 24+ messages in thread
From: Alexey Tourbin @ 2004-02-09 2:57 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1628 bytes --]
On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
> Похоже, что работы хватит - вот результат grep'а по логам последней
> пересборки:
>
> $ fgrep -l 'Warning: Linking the shared library' *
> cinepaint-0.18.1-alt1
Обнаружил странную вещь с этим пакетом.
Warning действительно есть:
*** Warning: Linking the shared library libdepth.la against the
*** static library ../../lib/.libs/libcinepaint.a is not portable!
В spec-файле есть:
%set_verify_elf_method textrel=relaxed
Если эту строчку закомментировать, то пакет всё равно собирается,
т.е. text relocations как бы не существуют:
Verifying ELF objects in /usr/src/RPM/tmp/cinepaint-buildroot (rpath=normal,textrel=normal)
...
Wrote: /usr/src/RPM/SRPMS/cinepaint-0.18.1-alt1.src.rpm
Wrote: /usr/src/RPM/RPMS/i586/cinepaint-0.18.1-alt1.i586.rpm
Wrote: /usr/src/RPM/RPMS/i586/libcinepaint-0.18.1-alt1.i586.rpm
Wrote: /usr/src/RPM/RPMS/i586/libcinepaint-devel-0.18.1-alt1.i586.rpm
Wrote: /usr/src/RPM/RPMS/i586/libcinepaint-devel-static-0.18.1-alt1.i586.rpm
Аналогичный случай с пакетом gmyclient (его нет в списке с warnings) --
если textrel=relaxed закомментировать, то пакет продолжает собираться.
У этих двух пакетов разные maintainer'ы, поэтому подозревать, что
textrel=relaxed был выставлен "на всякий случай" можно в последнюю
очередь. По-видимому, недавно что-то изменилось в сборочной системе,
и хотелось бы узнать, что именно.
> flac-1.1.0-alt6
> freeradius-0.9.3-alt2
> g-wrap-1.3.4-alt4
> gnome-bluetooth-0.4.1-alt0.1
> gnucash-1.8.8-alt3
> gthumb-2.1.9-alt1
> libassuan-0.6.1-alt2
> mjpegtools-1.6.1.93-alt1
> mpfc-1.0-alt1
> xchat2-2.0.5-alt5
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] Re: libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-09 2:57 ` Alexey Tourbin
@ 2004-02-09 10:48 ` Dmitry V. Levin
0 siblings, 0 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2004-02-09 10:48 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1658 bytes --]
On Mon, Feb 09, 2004 at 05:57:24AM +0300, Alexey Tourbin wrote:
> On Wed, Feb 04, 2004 at 11:58:32PM +0300, Dmitry V. Levin wrote:
> > Похоже, что работы хватит - вот результат grep'а по логам последней
> > пересборки:
> >
> > $ fgrep -l 'Warning: Linking the shared library' *
> > cinepaint-0.18.1-alt1
>
> Обнаружил странную вещь с этим пакетом.
> Warning действительно есть:
>
> *** Warning: Linking the shared library libdepth.la against the
> *** static library ../../lib/.libs/libcinepaint.a is not portable!
>
> В spec-файле есть:
> %set_verify_elf_method textrel=relaxed
>
> Если эту строчку закомментировать, то пакет всё равно собирается,
> т.е. text relocations как бы не существуют:
>
> Verifying ELF objects in /usr/src/RPM/tmp/cinepaint-buildroot (rpath=normal,textrel=normal)
> ...
> Wrote: /usr/src/RPM/SRPMS/cinepaint-0.18.1-alt1.src.rpm
> Wrote: /usr/src/RPM/RPMS/i586/cinepaint-0.18.1-alt1.i586.rpm
> Wrote: /usr/src/RPM/RPMS/i586/libcinepaint-0.18.1-alt1.i586.rpm
> Wrote: /usr/src/RPM/RPMS/i586/libcinepaint-devel-0.18.1-alt1.i586.rpm
> Wrote: /usr/src/RPM/RPMS/i586/libcinepaint-devel-static-0.18.1-alt1.i586.rpm
>
> Аналогичный случай с пакетом gmyclient (его нет в списке с warnings) --
> если textrel=relaxed закомментировать, то пакет продолжает собираться.
>
> У этих двух пакетов разные maintainer'ы, поэтому подозревать, что
> textrel=relaxed был выставлен "на всякий случай" можно в последнюю
> очередь. По-видимому, недавно что-то изменилось в сборочной системе,
> и хотелось бы узнать, что именно.
В этих двух пакетах действительно нет textrel'ов.
Оба maintainer'а неправомерно используют textrel=relaxed.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [devel] libtool: la_LIBADD vs noinst_LIBRARIES
2004-02-03 21:35 [devel] libtool: la_LIBADD vs noinst_LIBRARIES Alexey Tourbin
2004-02-04 9:20 ` [devel] " Mikhail Zabaluev
2004-02-04 20:58 ` [devel] " Dmitry V. Levin
@ 2004-02-20 9:47 ` Alexey Morozov
2 siblings, 0 replies; 24+ messages in thread
From: Alexey Morozov @ 2004-02-20 9:47 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 856 bytes --]
On Wed, Feb 04, 2004 at 12:35:22AM +0300, Alexey Tourbin wrote:
> К чести libtool надо сказать, что в таких ситуациях он выдает честное
> предупреждение:
>
> *** Warning: Linking the shared library libecho.la against the
> *** static library ../../../src/util/libutil.a is not portable!
>
> К "стыду" разработчиков надо сказать, что пакет mpfc не один подвержен
> этой напасти (сегодня я ещё исправил flac и буду дальше заниматься этим
> вопросом).
>
> Теперь предлагаю обсудить варианты решения проблемы:
>
> 1) Можно изменить структуру пакета (возможно, увеличив число полноценных
> библиотек и исключив вспомогательные статические библиотеки).
Это еще актуально? info '(libtool)Static libraries'
В общем, достаточно заменить
noinst_LIBRARIES = libbla.a
на
noinst_LTLIBRARIES = libbla.la
и провести соответствующие изменения по ходу Makefile.am
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2004-02-20 9:47 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-03 21:35 [devel] libtool: la_LIBADD vs noinst_LIBRARIES Alexey Tourbin
2004-02-04 9:20 ` [devel] " Mikhail Zabaluev
2004-02-04 16:44 ` Alexey Tourbin
2004-02-04 16:45 ` Alexey Tourbin
2004-02-04 20:49 ` Mikhail Zabaluev
2004-02-04 20:49 ` Mikhail Zabaluev
2004-02-04 20:51 ` Dmitry V. Levin
2004-02-04 20:51 ` Dmitry V. Levin
2004-02-04 20:58 ` [devel] " Dmitry V. Levin
2004-02-04 20:58 ` Dmitry V. Levin
2004-02-04 21:47 ` [devel] " Mikhail Zabaluev
2004-02-04 21:47 ` Mikhail Zabaluev
2004-02-04 21:57 ` Dmitry V. Levin
2004-02-04 21:57 ` Dmitry V. Levin
2004-02-04 23:08 ` Alexey Morozov
2004-02-05 6:52 ` Anton Farygin
2004-02-05 6:52 ` Anton Farygin
2004-02-05 9:08 ` Mikhail Zabaluev
2004-02-05 9:08 ` Mikhail Zabaluev
2004-02-05 11:57 ` Michael Shigorin
2004-02-05 11:57 ` Michael Shigorin
2004-02-09 2:57 ` Alexey Tourbin
2004-02-09 10:48 ` Dmitry V. Levin
2004-02-20 9:47 ` [devel] " Alexey Morozov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/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 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git