tony2001 / pinba_engine

Pinba - MySQL plugin and storage engine
http://pinba.org
GNU General Public License v2.0
478 stars 41 forks source link

Can't compile pinba_engine. FreeBSD 9.1, Mysql 5.5.40. #48

Open dmitrypisanko opened 9 years ago

dmitrypisanko commented 9 years ago

libtool: compile: g++ -DHAVE_CONFIG_H -I. -I/root/mysql-5.5.40/sql -I/root/mysql-5.5.40/include -I/root/mysql-5.5.40/regex -I/root/mysql-5.5.40 -g -O2 -fno-exceptions -fno-rtti -I/usr/local/include -I/usr/local/include -DMYSQL_DYNAMIC_PLUGIN -DNDEBUG -DJUDYERROR_NOTEST -MT main.lo -MD -MP -MF .deps/main.Tpo -c main.cc -fPIC -DPIC -o .libs/main.o main.cc: In function 'int pinba_collector_init(pinba_daemon_settings)': main.cc:141: error: 'cpu_set_t' was not declared in this scope main.cc:141: error: expected ;' before 'mask' main.cc:143: error: 'mask' was not declared in this scope main.cc:143: error: 'CPU_ZERO' was not declared in this scope main.cc:144: error: 'CPU_SET' was not declared in this scope main.cc:145: error: 'pthread_setaffinity_np' was not declared in this scope main.cc:179: error: 'cpu_set_t' was not declared in this scope main.cc:179: error: expected;' before 'mask' main.cc:181: error: 'mask' was not declared in this scope main.cc:181: error: 'CPU_ZERO' was not declared in this scope main.cc:182: error: 'CPU_SET' was not declared in this scope main.cc:183: error: 'pthread_setaffinity_np' was not declared in this scope *\ [main.lo] Error code 1

Stop in /root/pinba_engine-1.1.0/src. *\ [all] Error code 1

Stop in /root/pinba_engine-1.1.0/src. *\ [all-recursive] Error code 1

Stop in /root/pinba_engine-1.1.0.

dmitrypisanko commented 9 years ago

If install from ports

PORTNAME= pinba_engine PORTVERSION= 2011.08.18 PORTREVISION= 4 CATEGORIES= devel

All good, but can't install plugin in mysql

mysql> INSTALL PLUGIN pinba SONAME 'libpinba_engine.so'; ERROR 1126 (HY000): Can't open shared library 'libpinba_engine.so' (errno: 0 API version for STORAGE ENGINE plugin is too different)

tony2001 commented 9 years ago

I don't have a FreeBSD machine at hand and I have no idea what's the equivalent for cpu_set_t in BSD. Regrading the other problem - unfortunately, almost in any case you have to build Pinba yourself. It'll work only if it's been built with exactly the same options and sources used to build the mysqld.

dmitrypisanko commented 9 years ago

Я так понимаю по русски тоже можно :)

Всё делал по мануалу, взял сорцы в них cmake && cd include && make. Autobuild.sh кстати не запускался, пришлось слегка допилить файл build.mk

//LIBTOOLIZE ?= $(shell uname -s | grep Darwin >/dev/null && echo 'glibtoolize' || echo 'libtoolize') LIBTOOLIZE ?= 'libtoolize'

Старая версия из портов собирается, но не работает, новая не собирается..

Решил попробовать собрать все на другой машине с centOS, все делал по этому манулау http://mymemory.dp.ua/2013/08/ustanovka-pinba-engine-na-centos-6/

Тут уже ошибка иная mysql> INSTALL PLUGIN pinba SONAME 'libpinba_engine.so'; ERROR 1123 (HY000): Can't initialize function 'pinba'; Plugin initialization function failed

tony2001 commented 9 years ago

А что не так с build.mk?

Тут уже ошибка иная

Вы и текущий mysqld, и Pinba собирали из одних и тех же исходников? Из текста непонятно.

dmitrypisanko commented 9 years ago

Про build.mk я просто для информации написал. На freebsd версия такая, же но ставил из портов, попробую переставить. На centOS исходники одинаковы

tony2001 commented 9 years ago

Про build.mk я просто для информации написал.

так что с ним было не так-то, что его надо было править? там же просто проверяется, что система не MacOS и используется libtoolize, а если MacOS - glibtoolize.

dmitrypisanko commented 9 years ago

LIBTOOLIZE ?= $(shell uname -s | grep Darwin >/dev/null && echo 'glibtoolize' || echo 'libtoolize')

Переменная LIBTOOLIZE была пустой, пришлось захардкодить

dmitrypisanko commented 9 years ago

В общем из портов поставить получилось, правда там старая версия

PORTNAME= pinba_engine PORTVERSION= 2011.08.18

Вопрос, а планируется ли обновить порт до версии 1.1.0? Спасибо