[devel] /usr/lib64/python2.7/config/libpython2.7.a is WRONG

Dmitry V. Levin ldv на altlinux.org
Пн Апр 16 13:57:22 MSK 2012


On Mon, Apr 16, 2012 at 09:01:21AM +0400, Vitaly Kuznetsov wrote:
> On Sun, 15 Apr 2012 20:13:37 +0400, Yuri N. Sedunov wrote:
[...]
> >И здесь надо исправить.
> >$ python-config --ldflags
> >-L/usr/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7
> >-Xlinker -export-dynamic
> 
> Не нравится -l или -L? Или обе? :)

Тут много чего не нравится.
-L не нужен просто потому, что в /usr/lib/python2.7/config нет никаких
библиотек.
-lpthread -ldl -lutil -lm -lpython2.7 не нравится, потому что --ldflags
это не --libs.

Но это именно не нравится, эти лишние -L и -l хотя бы ничего не ломают.

> Захакать, конечно, можно, но от этого 
> могут сломаться те, кому действительно 
> надо линковаться с libpython. В debian, чей 
> подход к сборке python мы в том или ином виде 
> пытаемся повторить

Не понимаю, зачем мы пытаемся этот подход повторить.  Он, в отличие от
традиционного, будет постоянно создавать нам проблемы.

> в /usr/lib{,64}/python2.x/config/ лежат:
> файлы пакета python-dev:
> libpython2.x.a
> libpython2.x-pic.a
> файл пакета libpython:
> libpython2.x.so -> ../../libpython2.x.so.1

У нас всего этого нагромождения нет, и не надо.

> python-config --ldflags:
> -L/usr/lib/python2.x/config -lpthread -ldl -lutil -lm -lpython2.x
> 
> В python-config логика следующая:
>         libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
>         libs.append('-lpython'+pyver)
>         # add the prefix/lib/pythonX.Y/config dir, but only if there is 
> no
>         # shared library in prefix/lib/.
>         if opt == '--ldflags':
>             if not getvar('Py_ENABLE_SHARED'):
>                 libs.insert(0, '-L' + getvar('LIBPL'))
>             libs.extend(getvar('LINKFORSHARED').split())
>         print ' '.join(libs)
> 
> т.е. -lpython2.x добавляется всегда, 
> -L/usr/lib{,64}/python2.x/config добавляется в случае 
> статической линковки интерпретатора с 
> libpython. У нас, насколько я понимаю, 
> пользователей статической libpython2.x.a нет, 

У нас есть python-devel-static, и его для потенциальных пользователей
libpython2.7.a вполне достаточно.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20120416/a9de4260/attachment-0001.bin>


Подробная информация о списке рассылки Devel