LINUX.ORG.RU

mysql (пакет rpm) - исходные опции

 , ,


0

3

Всем привет.

Подскажите плиз

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

Но mysql установлен как rpm пакет, каким образом я могу посмотреть флаги при его сборке?

что я делал:
1. rpm -ivv *src.rpm - выдает простыню по которой я вообще ничего понять не могу.
2. нашел spec файл, вида:


  cd debug
  # Attempt to remove any optimisation flags from the debug build
  optflags=$(echo "%{optflags}" | sed -e 's/-O2 / /' -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /')
  cmake ../%{src_dir} \
           -DBUILD_CONFIG=mysql_release \
           -DINSTALL_LAYOUT=RPM \
           -DCMAKE_BUILD_TYPE=Debug \
           -DCMAKE_C_FLAGS="$optflags" \
           -DCMAKE_CXX_FLAGS="$optflags" \
           -DWITH_INNODB_MEMCACHED=1 \
           -DINSTALL_LIBDIR="%{_lib}/mysql" \
           -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
           -DINSTALL_SQLBENCHDIR=share \
           -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
           -DFEATURE_SET="%{feature_set}" \
           -DWITH_EMBEDDED_SERVER=1 \
           -DWITH_EMBEDDED_SHARED_LIBRARY=1 \
           %{?ssl_option} \
           -DCOMPILATION_COMMENT="%{compilation_comment_debug}" \
           -DMYSQL_SERVER_SUFFIX="%{?server_suffix}"
  echo BEGIN_DEBUG_CONFIG ; egrep '^#define' include/config.h ; echo END_DEBUG_CONFIG
  make %{?_smp_mflags} VERBOSE=1

Но вот если бы не было spec файла, как быть?


Ответ на: комментарий от Sectoid

Я соврал, эта штука канала пока mysql через autotools собирался. После перехода на CMAKE в mysqlbug'е уже не «пробиваются» опции.

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

да так уже пробовал, не работает

carter
() автор топика
Ответ на: комментарий от carter

так что? значит только через spec файл?

А выложи куда-нить src.rpm'ку (ну или дай ссылку). Гляну, может он кудысь еще кладет инфу о сборке.

И да, еще вопрос: а ты уверен, что тебе нужны _ВСЕ_ параметры? Возможно тебе нужно 2-3 параметра, которые можно из более других мест вытянуть?

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

честно сказать не знаю.
мне нужно собрать прогу с теме же флагами, что и установленный mysql

я запустил cmake в папке с исходниками mysql, флаги брал из спека

cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=1 -DWITH_EMBEDDED_SHARED_LIBRARY=1  -DWITH_INNODB_MEMCACHED=1  -DCMAKE_CXX_COMPILER=g++ -DENABLE_DOWNLOADS=1

вот ссылка на исходники mysql
http://repo.mysql.com/yum/mysql-5.6-community/el/7/SRPMS/mysql-community-5.6....

carter
() автор топика
Ответ на: комментарий от carter

мне нужно собрать прогу с теме же флагами, что и установленный mysql

А откуда вообще появилось такое требование? Можно хоть немного подробностей?

Sectoid ★★★★★
()
Ответ на: комментарий от carter

https://github.com/tony2001/pinba_engine/wiki/Installation#wiki-Building_Pinb...

судя по

Make sure you use the same configure options for the sources and MySQL server you're going to use (if you don't build it yourself using the same sources), otherwise you might experience unpredictable crashes and other problems. Pay special attention to these options: --with-big-tables, --with-debug.

этот мануал малость устарел. Возможно стоит потыкать веточкой разработчиков.

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

не не.. с разрабом уже общался) так и нужно делать) сейчас нужно найти правильные флаги. либо плюну и соберу заново mysql

carter
() автор топика
Ответ на: комментарий от normann

man mysql_config

Это другое. Это фиговина, чтобы легко и просто получать нужные флаги, чтобы прилинковаться libmysqlclient

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

Это другое.
libmysqlclient

По твоему одна библиотека из всего пакета собиралась с другими флагами нежели все остальные бинарники пакета?

normann ★★★
()
Ответ на: комментарий от normann

По твоему одна библиотека из всего пакета собиралась с другими флагами нежели все остальные бинарники пакета?

«флаги, нужные чтобы прилинковать приложение к либе» != «опции конфигурации, с которыми собиралась либа»

Sectoid ★★★★★
()
Ответ на: комментарий от normann

Не цепляйся к словам, граммарнаци, ты понял что я имел в виду. Там все это есть.

Ты шлангуешь или правда не понимаешь о чем речь? Еще раз, речь идет не о флагах компилятора, а конфигурационных опциях при сборке либы (флаги ./configure скрипту, параметры cmake'у и т.п.). Какой ключ у mysql_config по-твоему может вернуть эту информацию?

Sectoid ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.