From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1334553531.17690.51.camel@aris_dell.localdomain> From: "Yuri N. Sedunov" To: devel@lists.altlinux.org Date: Mon, 16 Apr 2012 09:18:51 +0400 In-Reply-To: <7b39c31444540d3b01c11f5c7b7527a8@hadoop.ru> 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> <7b39c31444540d3b01c11f5c7b7527a8@hadoop.ru> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.4.0 (3.4.0-alt1) Content-Transfer-Encoding: 8bit Mime-Version: 1.0 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:18:51 -0000 Archived-At: List-Archive: List-Post: В Пнд, 16/04/2012 в 09:01 +0400, Vitaly Kuznetsov пишет: > 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 же > лучше оставить. Или я не прав? По-моему, никакой пользы кроме вреда от наличия -lpython2.x в выводе python-config нет, если уж мы решили не линковать питон-модули с libpython. Кому, по-вашему, может понадобиться линковаться с libpython? -- Yuri N. Sedunov