сборка freetds под AIX


Главная Форумы POWER Systems AIX/Hardware сборка freetds под AIX

В этой теме 24 ответа, 3 участника, последнее обновление  Вадим 8 года/лет назад.

  • Автор
    Сообщения
  • #5620

    Вадим
    Участник

    добрый день у меня возникла проблема со сборкой freetds (это необходимо для связи через UnixODBC серверов Oracle и MS SQL)
    что делал
    1. пробовал компилировать с помощью gcc и visual age
    2. пробовал различные ключи при выполнении configure
    3. проверял (с помощью gcc)на Linux под x86

    что получил в первых 2х вариантах не собирается динамическая библиотека freetds.so.0.0, необходимая для подключения в unixODBC
    в 3тьем варианте прекрасно собирается, из чего я делаю логичный (на мой взгляд вывод) что какой то ключ в GCC и Visual AGE под AIX запрещает собирать по умолчанию so библиотеки

    подскажите как выйти из данной ситуации (в интернете порыл но ничего на мой взгляд того что я еще не пробовал уже нету)

    версия компилятора gcc из Linux pack for AIX
    версия visual age 10(триальная на 60 дней) с сайта IBM
    версия freetds пробовал current (0.83) и stable (0.82)
    вресия unixODBC 2.2.15pre (тк current не собирается под AIX, о чем написано на сайте)

  • #5629

    Michael
    Участник

    http://www.easysoft.com/products/data_access/odbc-sql-server-driver/index.html?location=Easysoft%20Data%20Access%20menu — вот такой уже готовый вариант Вам не подойдёт? Или это немножко не из той оперы? 🙂

    Из описания:
    «ODBC Driver for SQL Server 7.0, 2000, 2005, 2008 and Express

    The Easysoft ODBC-SQL Server Driver provides ODBC access to Microsoft SQL Server from Linux and Unix platforms. The ODBC-SQL Server Driver supports SQL Server 7.0, SQL Server 2000, SQL Server 2005, SQL Server 2008 and SQL Server Express.

    The Easysoft ODBC-SQL Server Driver uses SQL Server’s Tabular Data Stream (TDS) protocol to communicate directly with remote SQL Server instances. You install the Easysoft ODBC-SQL Server Driver on the client machines from which you want to access SQL Server. No additional software needs to be installed on the SQL Server machine.»

    Правда, совсем недавно увидел, что эта программулька лицензионная. Одна лицензия почти 700 бяксов :blink:

  • #5661

    Michael
    Участник

    http://pware.hvcc.edu — здеся есть как freetds, так и unixODBC, собранные под 5.3. Рискните, первый! 😉
    Нам, кстати, тоже потребовалось к мелкомягкому сиквелу прицепиться, будем работать в параллельном режиме. О результатах сообщу…

  • #5686

    Вадим
    Участник

    в принципе есть сборка от ИзиСофта
    http://www.easysoft.com/cgi-bin/productdownload.cgi
    в которой меня устраивает все кроме цены и дикого желания софтины иметь доступ в интернет для проверки лицензии

  • #5687

    Вадим
    Участник

    mih писал(а):

    http://pware.hvcc.edu — здеся есть как freetds, так и unixODBC, собранные под 5.3. Рискните, первый! 😉
    Нам, кстати, тоже потребовалось к мелкомягкому сиквелу прицепиться, будем работать в параллельном режиме. О результатах сообщу…

    хм, попробовал из комплекта pWare, как Вы правильно отметили там есть только сборка под 53 что не сильно страшно, но аналогично отсуствует libtdsodbc.so, что опять таки не дает возможность запустить odbc по человечески

  • #5689

    andrewk
    Участник

    делаете LPAR, даете мне к нему доступ через интернет, я собираю и вы радуетесь жизни. И замечу — все бесплатно 🙂
    Да, использовать LPAR не по назначению не буду. Разве что установлю необходимый для сборки софт.

  • #5692

    Вадим
    Участник

    так не дадут мне сделать наши безопасники 🙂
    вот если бы вы подсказали как это сделать, ну или хотя бы намекнули в какую сторону копать было бы намного интереснее
    проблема как я понимаю кроется в ключах настройки gcc или даже наверное в ключах линковки

  • #5694

    Michael
    Участник

    вот если бы вы подсказали как это сделать, ну или хотя бы намекнули в какую сторону копать было бы намного интереснее

    Прысоединяюсь к предыдущему оратору! :cheer:

  • #5704

    Вадим
    Участник

    http://forums.oracle.com/forums/thread.jspa?messageID=2502982
    есть вот такой вариант решения, но он не подходит из соображений непонятности лицензирования

  • #5706

    andrewk
    Участник

    я бы с удовольствием подсказал, если бы точно знал. проблема абсолютно однозначно в ключах линковки, но какие конкретно надо указать — надо смотреть и пытаться сделать. Поскольку у меня сейчас AIX’а под боком, увы, нет, то ответ я дать не смогу. Наверняка Вы это уже читали, но на всякий случай:

    http://lists.ibiblio.org/pipermail/freetds/2004q3/016748.html

  • #5707

    andrewk
    Участник

    admin1 писал(а):

    http://forums.oracle.com/forums/thread.jspa?messageID=2502982
    есть вот такой вариант решения, но он не подходит из соображений непонятности лицензирования

    прикольное решение. Всего-то требует лицензию на Oracle SE 🙂

  • #5708

    andrewk
    Участник

    btw есть еще DataDirect, который тоже поставляет ODBC-драйвера для кучи СУБД под AIX. Не знаю, насколько он более выгодный, чем easysoft

    http://www.datadirect.com/products/odbc/matrix/connectodbc.htm

  • #5710

    Вадим
    Участник

    andrewk писал(а):

    я бы с удовольствием подсказал, если бы точно знал. проблема абсолютно однозначно в ключах линковки, но какие конкретно надо указать — надо смотреть и пытаться сделать. Поскольку у меня сейчас AIX’а под боком, увы, нет, то ответ я дать не смогу. Наверняка Вы это уже читали, но на всякий случай:

    http://lists.ibiblio.org/pipermail/freetds/2004q3/016748.html%5B/quote%5D

    хм попробую, чтото видимо когда я искал, пропустил этот вариант…
    Спасибо, приступаю к попыткам 🙂

  • #5721

    Вадим
    Участник

    хм и увы, данная ссылка не помогла http://lists.ibiblio.org/pipermail/freetds/2004q3/016748.html
    по ряду причин
    1. я так и не нашел где это подправить
    2. у меня компиляется без ошибок на самом деле

  • #5738

    andrewk
    Участник

    а это на самом деле было про линковку, хоть там и написано compile 😉

  • #5744

    Вадим
    Участник

    andrewk писал(а):

    а это на самом деле было про линковку, хоть там и написано compile 😉

    это понятно, просто где это править?

  • #5779

    Вадим
    Участник

    похоже идеи кончились

  • #5785

    andrewk
    Участник

    для того, чтобы были идеи, надо, чтобы было, где собирать

  • #5798

    Вадим
    Участник

    решил подойти к вопросу иначе
    тоесть собрать шаред библиотеку самостоятельно

    в папке xxx/freetds/lib
    выполнил команду
    gcc -shared *.a -o libtdsodbc.so.2
    получаем
    ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_lock
    ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_unlock
    ld: 0711-317 ERROR: Undefined symbol: .iconv_close
    ld: 0711-317 ERROR: Undefined symbol: .iconv_open
    ld: 0711-317 ERROR: Undefined symbol: .iconv
    ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
    collect2: ld returned 8 exit status

    отличненько, переписываем файл от пакета iconv (копирую библиотеку libiconv.a, но получаем нехватку libpthread или как ее звать точно пока не знаю)
    gcc -shared *.a -o libtdsodbc.so.2
    ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_lock
    ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_unlock
    ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
    collect2: ld returned 8 exit status

    теперь нужно найти где взять библиотеку от pthread
    пробовал собрать с сайта
    http://www.gnu.org/software/pth/
    версия 1.4.1 прекрасно собирается но не подходит,
    вероятнее всего подходит 2.0.7 но не собирается, вылазит ошибка
    make
    ./libtool —mode=compile —quiet gcc -c -I. -O2 -pipe pth_debug.c
    In file included from pth_p.h.in:54,
    from pth_debug.c:29:
    pth.h:93:2: error: #error «FD_SETSIZE is larger than what GNU Pth can handle.»
    make: 1254-004 The error code from the last command is 1.

    теперь думаю что же делать дальше

  • #5826

    Вадим
    Участник

    в принципе собрал, без проблем с помощью ключа компиляции устанавливающий размер FD_SETSIZE но вызова всеравно нету

  • #5827

    Вадим
    Участник

    libpthreads.a нужна вот эта библиотека!

  • #5835

    Вадим
    Участник

    вобщем нашел я эти библиотеки собрал теперь ошибка
    [IM004][unixODBC][Driver Manager]Driver’s SQLAllocHandle on SQL_HANDLE_HENV failed
    [ISQL]ERROR: Could not SQLConnect

  • #5865

    Вадим
    Участник

    2 mih
    вобщем делается примерно следующее для получения библиотеки (я делал на gcc)
    собирается как обычно получаем .a файл
    после этого находим файлы libiconv.a, libpthreads.a
    первое — это из комплекта iconv, второе я так понимаю из комплекта AIX
    распаковываем все файлы
    ar -x libiconv.a
    ar -x libpthreads.a
    ar -x libtdsodbc.a

    после этого
    gcc -shared *.o -o libtdsodbc.so.1
    ln -s ./libtdsodbc.so.1 ./libtdsodbc.so

    и вобщем то вот она эта библиотека!!!

  • #5925

    Michael
    Участник

    Спасибо admin1 за идею! 🙂

    My way:
    1. С сайта http://pware.hvcc.edu/ скачаны последние версии бинарных сборок freetds и unixODBC + все необходимые зависимости и сам компилятор gcc.

    2. Всё установлено.

    3. Из /opt/pware64/lib вытащены libiconv.a и libtdsodbc.a, из /usr/lib — libpthreads.a и все три сложены в отдельный каталог.

    Дальше, как написано у admin1:
    4. Выполнены команды:
    # ar -x libiconv.a
    # ar -x libpthreads.a
    # ar -x libtdsodbc.a
    # gcc -shared *.o -o libtdsodbc.so.1

    5. Библиотека libtdsodbc.so.1 переброшена в /usr/lib и:
    # ln -s ./libtdsodbc.so.1 ./libtdsodbc.so

    Однако пока не работает… :S

  • #5985

    Вадим
    Участник

    пока нет времени, чтобы доковырять сам мейк файл из каких библиотек собирается tdsodbc поняв это можно ручками собрать (для примера можно взять линусовую) просто сравнивать интегрированные функции
    я еще паралельно озадачил вопросом IBM ибо у меня компилятор Visual Age лицензия

Для ответа в этой теме необходимо авторизоваться.