From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.2.5 To: X-PHP-Originating-Script: 0:func.inc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 16 Apr 2012 09:01:21 +0400 From: Vitaly Kuznetsov In-Reply-To: <1334506417.17690.27.camel@aris_dell.localdomain> References: <20120413121842.GA7705@altlinux.org> <1334327959.8137.47.camel@aris_dell.localdomain> <4443e169837aae0da105cbcaa1a4131c@hadoop.ru> <20120413170258.GA9846@altlinux.org> <4F8940C4.7080105@kemsu.ru> <20120414151335.71771797@deimos.localdomain> <4F8965AF.4020003@kemsu.ru> <20120415085815.61dda07d@deimos.localdomain> <1334505177.17690.25.camel@aris_dell.localdomain> <20120415160752.GB3120@altlinux.org> <1334506417.17690.27.camel@aris_dell.localdomain> Message-ID: <7b39c31444540d3b01c11f5c7b7527a8@hadoop.ru> X-Sender: vitty@altlinux.ru User-Agent: Roundcube Webmail/0.5.3 Subject: Re: [devel] /usr/lib64/python2.7/config/libpython2.7.a is WRONG X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Apr 2012 05:01:33 -0000 Archived-At: List-Archive: List-Post: On Sun, 15 Apr 2012 20:13:37 +0400, Yuri N. Sedunov wrote: > В Вск, 15/04/2012 в 20:07 +0400, Dmitry V. Levin пишет: >> > > > Ошибка запаковки при переезде на статическую сборку python. По >> идее, >> > > > там вместо неё должен лежать симлинк libpython2.7.so >> > > > на ../../libpython2.7.so. >> > > > >> > > > 2 vitty@: вешать? >> > > >> > > Да, повесьте, пожалуйста, завтра исправлю. >> > >> > Зачем по-вашему нужен этот симлинк? >> >> Там и -L/usr/lib64/python2.7/config не нужен. Но когда в >> /usr/lib64/python2.7/config нет библиотек, от этого -L хотя бы вреда >> нет. >> > > И здесь надо исправить. > $ python-config --ldflags > -L/usr/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 > -Xlinker -export-dynamic Не нравится -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-config выводить -L/usr/lib{,64}/python2.x/config, -lpython2.x же лучше оставить. Или я не прав?