Форум ApacheDev

Apache isn't the fastest or maximally customizable web server, its popularity comes from the fact that it provides a very good balance of these things bundled with maximum portability and reliability.

Вы не зашли.

#1 2007-03-11 10:08:46

TheDeadOne
Новичок
Зарегистрирован: 2007-03-11
Сообщений: 5
Рейтинг :   

Сборка модулей с помощью MinGW

Кто-нибудь пробовал собирать модули для Apache2 под Win32 с помощью MinGW? Это возможно? Был бы рад примеру make-файла и def'у.

Неактивен

 

#2 2007-03-12 23:34:39

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Был опыт сборки модуля на связке MinGW+Eclipse(CDT). Сборка производилась аналогично стандартной процедуре в gcc. Вот пример:

mingw32-gcc -L"\mod_simple\lib" -shared -o libmod_simple.so mod_simple.o -l"apr" -l"aprutil" -l"httpd" -l"expat"

- тут проблем не было. Однако никак не удавалось слинковать модуль с библиотеками - все время вылизали
"undefined reference to ".
Недельные танцы с бубном+dlltool+pexports+прочим шаманским инструментарием не привели к желаемым результатам.
Пришлось использовать связку функций: LoadLibrary и GetProcAddress. С ее помощью все заработало.
С текущей версией пакета MinGW этой проблемы возможно уже не будет.

Неактивен

 

#3 2007-03-13 06:17:39

TheDeadOne
Новичок
Зарегистрирован: 2007-03-11
Сообщений: 5
Рейтинг :   

Re: Сборка модулей с помощью MinGW

ApDev написал:

С текущей версией пакета MinGW этой проблемы возможно уже не будет.

С какой текущей?

Неактивен

 

#4 2007-03-13 10:13:40

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Я использовал mingw32-gcc версии 3.4.2  Сейчас не знаю какая текущая.

Неактивен

 

#5 2007-03-13 10:16:13

TheDeadOne
Новичок
Зарегистрирован: 2007-03-11
Сообщений: 5
Рейтинг :   

Re: Сборка модулей с помощью MinGW

ApDev написал:

Я использовал mingw32-gcc версии 3.4.2  Сейчас не знаю какая текущая.

3.4.2 и есть текущая sad

Неактивен

 

#6 2007-03-13 10:33:56

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Попробуй с ней, может и получится. Не факт, что я тогда не накосячил. Заодно и свой модуль тогда поправлю - он до сих пор у меня работает smile

Неактивен

 

#7 2007-03-13 10:37:32

TheDeadOne
Новичок
Зарегистрирован: 2007-03-11
Сообщений: 5
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Дык, пробовал я. Неделю камлал. Много бубнов извёл бестолку.

Неактивен

 

#8 2007-03-13 10:38:58

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

TheDeadOne написал:

Дык, пробовал я. Неделю камлал. Много бубнов извёл бестолку.

Такие же радости лезли?

Неактивен

 

#9 2007-03-13 11:51:16

TheDeadOne
Новичок
Зарегистрирован: 2007-03-11
Сообщений: 5
Рейтинг :   

Re: Сборка модулей с помощью MinGW

ApDev написал:

TheDeadOne написал:

Дык, пробовал я. Неделю камлал. Много бубнов извёл бестолку.

Такие же радости лезли?

Угу

Неактивен

 

#10 2007-03-13 13:54:57

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Как вариант, попробуй использовать функции LoadLibrary и GetProcAddress. Во время загрузки модуля, подгружай нужные библиотеки и получай адреса нужных функций из них, а после, при вызове функций, уже используй эти адреса.

Не смотрел в сторону Cygwin?

Неактивен

 

#11 2007-04-10 10:27:49

aklimov
Новичок
Зарегистрирован: 2007-04-10
Сообщений: 4
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Сам ещё не пробывал, но думаю что сработает:
http://marc.info/?l=apr-dev&m=107649170431352&w=2

Неактивен

 

#12 2007-04-10 13:32:24

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Неплохое описание. Тоже шаманил с dlltool - у меня не вышло sad После недели шаманства пришлось бросить это веселое занятие smile

2aklimov Будут результаты - отпиши.

Неактивен

 

#13 2007-04-16 16:59:06

aklimov
Новичок
Зарегистрирован: 2007-04-10
Сообщений: 4
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Мухоморил с mod_perl-2.0.3, нашаманил до одной неопределённой ссылки - но какой ( WinMain@16), только dllwrap собрала mod_perl.so. Но, увы, похоже он не рабочий - Апач не запускается с такой сборкой модуля. Похоже MSVC dll-библиотеки можно использовать только в MinGW exe-никах, а не в dll-ках.

Неактивен

 

#14 2007-04-16 20:51:22

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

У меня все ссылки определялись, только вот все равно нефига не вызывалось. Пришлось затыкать все GetProcAddress-ом.

Но все равно осталось впечатление, что можно все это дело прикрутить, но времени и сил уже не было smile

Неактивен

 

#15 2007-04-17 11:13:50

aklimov
Новичок
Зарегистрирован: 2007-04-10
Сообщений: 4
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Было трудно... Но есть маленький положительный результат. Пример модуля из исходников Апача для Вынь удачно собран с шаманскими библиотеками (очередной попытки) - все ссылки правильно разрешены на нужные dll. Но примерчик-то тоже не без слона, и в итоге после его исправления Апач поднимает этот модуль без проблем, а вот до вызовов пока не дошло. Попробую вернуться к сборке mod_perl-2.0.3 и его тестами всё проверить.

Неактивен

 

#16 2007-04-17 13:49:57

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Будет результат - выкладывай для потомков smile

Неактивен

 

#17 2007-04-17 16:30:56

aklimov
Новичок
Зарегистрирован: 2007-04-10
Сообщений: 4
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Вот и лебединая песня: mod_perl.so собрался без проблем, но после подключения к Апачу, LoadLibrary, которая поднимает его модули в виндовозной версии, даёт ошибку "Invalid access to memory location" (по некоторым данным она якобы связана с неверным базовым адресом dll - уже какая-то библиотека его использует). После добавления ключа "--enable-auto-image-base" линкеру и сборки модуля, Апач тихо умирает, а DrWatson делает поминальный дамп.
Итак, сдаётся мне, что модули надо собирать имея всё дерево исходников всего сервера, чтобы базовые адреса модулей не пересекались (а может и ещё какая-то шляпа). И пока парни из Apache Group не сделают сборку всего сервака для gcc под Windows все попытки прикрутить по-левому собранные модули будут напрасны. sad Хотя я может и не прав, не будучи экспертом в программировани плагинов Апача.

Неактивен

 

#18 2007-04-18 06:09:10

ApDev
Администратор
Зарегистрирован: 2007-02-14
Сообщений: 106
Рейтинг :   

Re: Сборка модулей с помощью MinGW

Вот млин, прямо нерешимая задача smile Будет свободное время - обязательно займусь вплотную сборкой Apache +модулей под MinGW. Не может такого быть, чтобы задача была невыполнима.

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson