Ad Widget

Collapse

Статическая линковка zabbix_proxy BUG?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • flashvoid
    Junior Member
    • Jan 2010
    • 10

    #1

    Статическая линковка zabbix_proxy BUG?

    Сталкивался с этой проблемой в прошлой версии 1.8.2, думал в этой починили, а вот нет.

    Может я чего не так делаю или как ?


    Code:
    void@void-desktop:/opt/zabbix-dist/1.8.3$ ./configure --enable-proxy --enable-agent  --with-sqlite3 --with-net-snmp --enable-static
    .... трампампам все хорошо пока не доходим вот сюда

    Code:
    void@void-desktop:/opt/zabbix-dist/1.8.3/src/zabbix_proxy$ gcc -v -DZABBIX_DAEMON -g -O2  -L/usr/lib      -I/usr/local/include -I/usr/lib/perl/5.10/CORE -I. -I/usr/include      -I/usr/include -lsqlite3    -lcurl  -L/usr/lib -lnetsnmp -lcrypto  -L/usr/lib -lnetsnmp -lcrypto   -rdynamic -static   -o zabbix_proxy zabbix_proxy-servercomms.o zabbix_proxy-events.o zabbix_proxy-zlog.o zabbix_proxy-proxy.o heart/libzbxheart.a ../../src/zabbix_server/dbsyncer/libzbxdbsyncer.a ../../src/zabbix_server/discoverer/libzbxdiscoverer.a housekeeper/libzbxhousekeeper.a ../../src/zabbix_server/httppoller/libzbxhttppoller.a proxyconfig/libzbxproxyconfig.a ../../src/zabbix_server/pinger/libzbxpinger.a ../../src/zabbix_server/poller/libzbxpoller.a ../../src/zabbix_server/trapper/libzbxtrapper.a ../../src/zabbix_server/nodewatcher/libzbxnodewatcher.a datasender/libzbxdatasender.a ../../src/libs/zbxsysinfo/libzbxserversysinfo.a ../../src/libs/zbxsysinfo/linux/libspecsysinfo.a ../../src/libs/zbxsysinfo/common/libcommonsysinfo.a ../../src/libs/zbxsysinfo/simple/libsimplesysinfo.a ../../src/libs/zbxlog/libzbxlog.a ../../src/libs/zbxdbcache/libzbxdbcache.a ../../src/libs/zbxmemory/libzbxmemory.a ../../src/libs/zbxalgo/libzbxalgo.a ../../src/libs/zbxnix/libzbxnix.a ../../src/libs/zbxsys/libzbxsys.a ../../src/libs/zbxconf/libzbxconf.a ../../src/libs/zbxcommon/libzbxcommon.a ../../src/libs/zbxcrypto/libzbxcrypto.a ../../src/libs/zbxcomms/libzbxcomms.a ../../src/libs/zbxcommshigh/libzbxcommshigh.a ../../src/libs/zbxjson/libzbxjson.a ../../src/libs/zbxserver/libzbxserver.a ../../src/libs/zbxicmpping/libzbxicmpping.a ../../src/libs/zbxdbhigh/libzbxdbhigh.a ../../src/libs/zbxdb/libzbxdb.a -lnetsnmp  -lcrypto   -lm  -lresolv
    оно разваливается вот так ...

    Code:
    ../../src/libs/zbxnix/libzbxnix.a(daemon.o): In function `daemon_start':
    /opt/zabbix-dist/1.8.3/src/libs/zbxnix/daemon.c:162: warning: Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    /opt/zabbix-dist/1.8.3/src/libs/zbxnix/daemon.c:146: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    /usr/lib/libnetsnmp.a(snmpUDPIPv6Domain.o): In function `netsnmp_udp6_parse_security':
    (.text+0x1efb): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    ../../src/libs/zbxcomms/libzbxcomms.a(comms.o): In function `zbx_gethost':
    /opt/zabbix-dist/1.8.3/src/libs/zbxcomms/comms.c:208: warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    /opt/zabbix-dist/1.8.3/src/libs/zbxcomms/comms.c:203: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    ../../src/libs/zbxsysinfo/common/libcommonsysinfo.a(net.o): In function `CHECK_DNS_QUERY':
    /opt/zabbix-dist/1.8.3/src/libs/zbxsysinfo/common/net.c:546: warning: Using 'getprotobynumber' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    /opt/zabbix-dist/1.8.3/src/libs/zbxsysinfo/common/net.c:560: warning: Using 'getservbyport' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
    ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `SQ_DBfree_result':
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:757: undefined reference to `sqlite3_free_table'
    ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_vselect':
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:1088: undefined reference to `sqlite3_get_table'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:1093: undefined reference to `sqlite3_free'
    ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_vexecute':
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:673: undefined reference to `sqlite3_exec'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:678: undefined reference to `sqlite3_free'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:698: undefined reference to `sqlite3_changes'
    ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_init':
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:346: undefined reference to `sqlite3_open'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:349: undefined reference to `sqlite3_errmsg'
    ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_close':
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:82: undefined reference to `sqlite3_close'
    ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_connect':
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:301: undefined reference to `sqlite3_open'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:313: undefined reference to `sqlite3_busy_timeout'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:304: undefined reference to `sqlite3_errmsg'
    /opt/zabbix-dist/1.8.3/src/libs/zbxdb/db.c:305: undefined reference to `sqlite3_close'
    collect2: ld returned 1 exit status
    Потому что линкер неможет найти libsqlite3.a - хотя она там есть

    Фиксю это так

    Code:
    void@void-desktop:/opt/zabbix-dist/1.8.3/# cd src/zabbix_proxy
    void@void-desktop:/opt/zabbix-dist/1.8.3/src/zabbix_proxy$ gcc -DZABBIX_DAEMON -g -O2  -L/usr/lib      -I/usr/local/include -I/usr/lib/perl/5.10/CORE -I. -I/usr/include      -I/usr/include -lsqlite3    -lcurl  -L/usr/lib -lnetsnmp -lcrypto  -L/usr/lib -lnetsnmp -lcrypto   -rdynamic -static   -o zabbix_proxy zabbix_proxy-servercomms.o zabbix_proxy-events.o zabbix_proxy-zlog.o zabbix_proxy-proxy.o heart/libzbxheart.a ../../src/zabbix_server/dbsyncer/libzbxdbsyncer.a ../../src/zabbix_server/discoverer/libzbxdiscoverer.a housekeeper/libzbxhousekeeper.a ../../src/zabbix_server/httppoller/libzbxhttppoller.a proxyconfig/libzbxproxyconfig.a ../../src/zabbix_server/pinger/libzbxpinger.a ../../src/zabbix_server/poller/libzbxpoller.a ../../src/zabbix_server/trapper/libzbxtrapper.a ../../src/zabbix_server/nodewatcher/libzbxnodewatcher.a datasender/libzbxdatasender.a ../../src/libs/zbxsysinfo/libzbxserversysinfo.a ../../src/libs/zbxsysinfo/linux/libspecsysinfo.a ../../src/libs/zbxsysinfo/common/libcommonsysinfo.a ../../src/libs/zbxsysinfo/simple/libsimplesysinfo.a ../../src/libs/zbxlog/libzbxlog.a ../../src/libs/zbxdbcache/libzbxdbcache.a ../../src/libs/zbxmemory/libzbxmemory.a ../../src/libs/zbxalgo/libzbxalgo.a ../../src/libs/zbxnix/libzbxnix.a ../../src/libs/zbxsys/libzbxsys.a ../../src/libs/zbxconf/libzbxconf.a ../../src/libs/zbxcommon/libzbxcommon.a ../../src/libs/zbxcrypto/libzbxcrypto.a ../../src/libs/zbxcomms/libzbxcomms.a ../../src/libs/zbxcommshigh/libzbxcommshigh.a ../../src/libs/zbxjson/libzbxjson.a ../../src/libs/zbxserver/libzbxserver.a ../../src/libs/zbxicmpping/libzbxicmpping.a ../../src/libs/zbxdbhigh/libzbxdbhigh.a ../../src/libs/zbxdb/libzbxdb.a /usr/lib/libsqlite3.a /usr/lib/libpthread -lnetsnmp  -lcrypto   -lm  -lresolv
    # вконце добавлены пути до libsqlite3.a и libpthread.a

    потом
    Code:
    cd ../../ && make
    и все собирается, но костляво как то - и непойму почему все либы ловятся в /usr/lib а libsqlite3 не ловиться - может кто пояснит ?
Working...