Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] mod_python - problem with dynamic loading



On Tue, 4 May 1999, Oleg Broytmann wrote:

> 
>    Имеется Python 1.5.1, Apache 1.3.4 и PyApache - это такой mod_python.
> Сам этот PyApache представляет собой крайне простой модуль, который
> линкуется статически с питоном (libpython.a). А вот уже интерпретатор
> питона тянет за собой кучу модулей, скомпилированных в виде разделяемых
> библиотек; подгружаются они по мере обращения к ним.
> 
>    Сначала все это было поставлено на Сан, Солярис 2.5.1. Все прекрасно
> работало. Попытка перенести все это на линукс, однако, провалилась. Не
> работает, при чем не работает по-разному в зависимости от фазы луны.

Насколько я понимаю, проблема в том, что при загрузке библиотека не
может увидеть некоторые символы, определенные в екзешнике, к которому
она линкуется. Почему это происходит в ELF-системе - понять не могу.
Хотя вот в Tcl8.1 именно для возможности динамической подгрузки к
статически слинкованному бинарнику введен механизм stubs (фактически своя
собственная динамическая линковка). Видно, в современном зоопарке
исполняемых форматов найти общее решение тяжело. Хотя подозреваю, что
разница может быть в том, что на sun и linux по разному работает команда
strip.

Для борьбы с этим рекомендуется таки собирать libpython как so.

Точнее, для начала стоит изучить по-разному неработающие системы при
помощи ldd.
Я вполне могу себе представить что segmentation fault при выходе возникает
когда libpython линкуется динамически, а невозможность подгрузки - когда
статически. Помнится я как-то несколько месяцев вяло боролся с
segmentation fault при выходе из Tcl скрипта с моим подгружаемым
расширением, пока не выяснил, что баклан был я сам и пытался сделать free
на статическую переменную.

--------------------------------------------------
Victor Wagner			vitus@xxxxxx
Programmer			Office:7-(095)-964-0380
Institute for Commerce 		Home: 7-(095)-135-46-61
Engineering                     http://www.ice.ru/~vitus

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.