from i386 to amd64 или Makefile for gcc

Модератор: Fastman

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

from i386 to amd64 или Makefile for gcc

Непрочитанное сообщение shlash » 2009-10-17 15:44:17

Имеется интересный мне прожект. Автор его забросил, поддержку и сопровождение не осуществляет. Продолжателей дела обнаружить пока не удалось.
Поставляется в виде трёх архивов: собранный бинарник для Линукса, бинарник для ФриБСД и комплект исходников. Основной язык разработки Эрланг - кроссплатформенно и переносимо, но используются три нативных динамических библиотеки. При внимательном рассмотрении, сборки оказались под i386. Целевая система - amd64.
Переходим к исходникам и видим, собственно, только исходники, без Makefile. Собственный опыт программирования на Си на уровне "Hello world", без подключения сторонних библиотек и написания собственных Makefile.

На основе инклюдов в исходниках:

Код: Выделить всё

drv_tls.c:#include <stdio.h>
drv_tls.c:#include <string.h>
drv_tls.c:#include <erl_driver.h>
drv_tls.c:#include <openssl/ssl.h>
drv_tls.c:#include <openssl/err.h>

drv_xml.c:#include <stdio.h>
drv_xml.c:#include <string.h>
drv_xml.c:#include <erl_driver.h>
drv_xml.c:#include <ei.h>
drv_xml.c:#include <expat.h>

drv_zlib.c:#include <stdio.h>
drv_zlib.c:#include <string.h>
drv_zlib.c:#include <erl_driver.h>
drv_zlib.c:#include <zlib.h>
написал свой Makefile:

Код: Выделить всё

CFLAGS = \
 -Wall -fpic \
 -I /usr/local/lib/erlang/erts-5.6.5/include/ \
 -I /usr/local/lib/erlang/lib/erl_interface-3.5.9/include/ \
 -I /usr/local/include/

LIBS =   \
 -shared \
 -L /usr/local/lib/erlang/lib/erl_interface-3.5.9/lib/ \
 -l erl_interface \
 -l ei \
 -L /usr/local/lib/

all:
        gcc ${CFLAGS} drv_tls.c ${LIBS} -l ssl -o drv_tls.so
        gcc ${CFLAGS} drv_xml.c ${LIBS} -l expat -o drv_xml.so
        gcc ${CFLAGS} drv_zlib.c ${LIBS} -l z -o drv_zlib.so
на выходе получаю:

Код: Выделить всё

-rwxr-xr-x  1 beard  beard  19192 17 окт 16:33 drv_tls.so
-rwxr-xr-x  1 beard  beard  28257 17 окт 16:33 drv_xml.so
-rwxr-xr-x  1 beard  beard  10433 17 окт 16:33 drv_zlib.so
по сравнению с оригинальными бинарниками для i386:

Код: Выделить всё

-rwxr-xr-x  1 beard  beard  37858 31 авг 01:44 drv_tls.so
-rwxr-xr-x  1 beard  beard  25590 31 авг 01:44 drv_xml.so
-rwxr-xr-x  1 beard  beard  11659 31 авг 01:44 drv_zlib.so
кажется, что drv_xml.so собрался успешно, а в остальных случаях что-то не подключилось.
Подскажите, что упускаю?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: from i386 to amd64 или Makefile for gcc

Непрочитанное сообщение paradox » 2009-10-17 15:54:00

в tls что то наверное не подключилось
размером он каким то не очень

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: from i386 to amd64 или Makefile for gcc

Непрочитанное сообщение Alex Keda » 2009-10-17 16:17:35

а проверяли - работает?
может у вас компилятор новее и на выхлопе получается бинарник размером поменьше...
Убей их всех! Бог потом рассортирует...

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

Re: from i386 to amd64 или Makefile for gcc

Непрочитанное сообщение shlash » 2009-10-17 16:48:40

Упссс! Облажался. Ой, как стыдно.. :roll:
В этот раз заработало. В логах видно, включилась zlib компрессия. С шифрованием пока непонятно.
В прошлые разы, размеры получались сходные, но тогда не работало. Ругалась сразу на drv_xml, она была чуть меньше, чем сейчас.
В общем Makefile пока оставлю, как есть и попробую поковырять шифрование.