ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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