Bug 221159 - databases/mariadb102-server: Fails to build with SNAPPY option enabled
Summary: databases/mariadb102-server: Fails to build with SNAPPY option enabled
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Bernard Spil
URL: https://jira.mariadb.org/browse/MDEV-...
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2017-08-01 21:45 UTC by Stéphane D'Alu
Modified: 2017-10-15 13:43 UTC (History)
1 user (show)

See Also:


Attachments
poudriere build log (63.92 KB, application/x-gzip)
2017-08-31 19:03 UTC, niqck
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stéphane D'Alu 2017-08-01 21:45:16 UTC
When port option SNAPPY is enabled. Build failed.

[7/971] : && /usr/bin/c++  -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -DWITH_INNODB_DISALLOW_WRITES -fno-rtti -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -DDBUG_OFF  -fstack-protector extra/mariabackup/CMakeFiles/mbstream.dir/ds_buffer.c.o extra/mariabackup/CMakeFiles/mbstream.dir/ds_local.c.o extra/mariabackup/CMakeFiles/mbstream.dir/ds_stdout.c.o extra/mariabackup/CMakeFiles/mbstream.dir/datasink.c.o extra/mariabackup/CMakeFiles/mbstream.dir/xbstream.c.o extra/mariabackup/CMakeFiles/mbstream.dir/xbstream_read.c.o extra/mariabackup/CMakeFiles/mbstream.dir/xbstream_write.c.o  -o extra/mariabackup/mbstream  -Wl,-rpath,:::::::::::::: -pthread storage/innobase/libinnobase.a /usr/local/lib/liblz4.so /usr/local/lib/liblzo2.so -llzma -lbz2 /usr/local/lib/libsnappy.so mysys/libmysys.a extra/mariabackup/crc/libcrc.a dbug/libdbug.a mysys_ssl/libmysys_ssl.a mysys/libmysys.a dbug/libdbug.a mysys_ssl/libmysys_ssl.a -lm -lexecinfo strings/libstrings.a -lssl -lcrypto storage/innobase/libinnobase.a -pthread -lz /usr/local/lib/liblz4.so /usr/local/lib/liblzo2.so -llzma -lbz2 /usr/local/lib/libsnappy.so && :
FAILED: extra/mariabackup/mbstream 
: && /usr/bin/c++  -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -DWITH_INNODB_DISALLOW_WRITES -fno-rtti -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -DDBUG_OFF  -fstack-protector extra/mariabackup/CMakeFiles/mbstream.dir/ds_buffer.c.o extra/mariabackup/CMakeFiles/mbstream.dir/ds_local.c.o extra/mariabackup/CMakeFiles/mbstream.dir/ds_stdout.c.o extra/mariabackup/CMakeFiles/mbstream.dir/datasink.c.o extra/mariabackup/CMakeFiles/mbstream.dir/xbstream.c.o extra/mariabackup/CMakeFiles/mbstream.dir/xbstream_read.c.o extra/mariabackup/CMakeFiles/mbstream.dir/xbstream_write.c.o  -o extra/mariabackup/mbstream  -Wl,-rpath,:::::::::::::: -pthread storage/innobase/libinnobase.a /usr/local/lib/liblz4.so /usr/local/lib/liblzo2.so -llzma -lbz2 /usr/local/lib/libsnappy.so mysys/libmysys.a extra/mariabackup/crc/libcrc.a dbug/libdbug.a mysys_ssl/libmysys_ssl.a mysys/libmysys.a dbug/libdbug.a mysys_ssl/libmysys_ssl.a -lm -lexecinfo strings/libstrings.a -lssl -lcrypto storage/innobase/libinnobase.a -pthread -lz /usr/local/lib/liblz4.so /usr/local/lib/liblzo2.so -llzma -lbz2 /usr/local/lib/libsnappy.so && :
storage/innobase/libinnobase.a(btr0scrub.cc.o): In function `TTASEventMutex<GenericPolicy>::enter(unsigned int, unsigned int, char const*, unsigned int)':
storage/innobase/btr/btr0scrub.cc:(.text._ZN14TTASEventMutexI13GenericPolicyE5enterEjjPKcj[_ZN14TTASEventMutexI13GenericPolicyE5enterEjjPKcj]+0x163): undefined reference to `my_timer_cycles'
storage/innobase/libinnobase.a(dict0dict.cc.o): In function `dict_index_add_to_cache_w_vcol(dict_table_t*, dict_index_t*, dict_add_v_col_t const*, unsigned long, unsigned long)':
storage/innobase/dict/dict0dict.cc:(.text+0x5521): undefined reference to `THR_THD'
storage/innobase/libinnobase.a(dict0dict.cc.o): In function `dict_fs2utf8(char const*, char*, unsigned long, char*, unsigned long)':
storage/innobase/dict/dict0dict.cc:(.text+0x10a50): undefined reference to `system_charset_info'
storage/innobase/dict/dict0dict.cc:(.text+0x10a71): undefined reference to `strconvert(charset_info_st const*, char const*, unsigned int, charset_info_st const*, char*, unsigned int, unsigned int*)'
storage/innobase/dict/dict0dict.cc:(.text+0x10b21): undefined reference to `system_charset_info'
storage/innobase/dict/dict0dict.cc:(.text+0x10b43): undefined reference to `strconvert(charset_info_st const*, char const*, unsigned int, charset_info_st const*, char*, unsigned int, unsigned int*)'
storage/innobase/libinnobase.a(fil0fil.cc.o): In function `fil_node_open_file(fil_node_t*)':
storage/innobase/fil/fil0fil.cc:(.text+0x3725): undefined reference to `my_timer_cycles'
storage/innobase/libinnobase.a(fil0pagecompress.cc.o): In function `fil_compress_page(fil_space_t*, unsigned char*, unsigned char*, unsigned long, unsigned long, unsigned long, bool, unsigned long*)':
storage/innobase/fil/fil0pagecompress.cc:(.text+0x286): undefined reference to `my_timer_cycles'
storage/innobase/fil/fil0pagecompress.cc:(.text+0x57c): undefined reference to `my_timer_cycles'
storage/innobase/fil/fil0pagecompress.cc:(.text+0x59e): undefined reference to `my_timer_cycles'
storage/innobase/libinnobase.a(fil0pagecompress.cc.o): In function `fil_decompress_page(unsigned char*, unsigned char*, unsigned long, unsigned long*, bool)':
.
.
.
.
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
*** Error code 1
Comment 1 Bernard Spil freebsd_committer 2017-08-02 10:14:17 UTC
Hi sdalu,

Can you please provide settings for all of the options? (make showconfig) and any /etc/make.conf settings. FreeBSD version, ...

Best would be a poudriere build log if you have that.
Comment 2 Bernard Spil freebsd_committer 2017-08-02 10:20:50 UTC
Also please don't set maintainer-feedback if there's no patch to review.
You should expect maintainer to respond on the bug
Comment 3 Stéphane D'Alu 2017-08-06 13:56:30 UTC
make showconfig

===> The following configuration options are available for mariadb102-server-10.2.7:
     CONNECT_EXTRA=off: Enable ODBC and XML in CONNECT engine
====> Optional page compression
     LZ4=on: LZ4 compression support
     LZO=on: LZO compression support
     SNAPPY=on: Snappy compression library support
     ZSTD=off: Zstandard compression support (RocksDB only)
====> Optional MariaDB storage engines
     INNOBASE=on: InnoDB default engine
     MROONGA=on: Mroonga Full Text Search engine
     OQGRAPH=on: Open Query Graph Computation engine
     ROCKSDB=off: RocksDB LSM engine (Alpha)
     SPHINX=on: SphinxSE engine
     SPIDER=on: Partitioning and XA-transactions engine
     TOKUDB=off: Fractal tree index tree data structure engine
     XTRADB=off: Build XtraDB engine next to InnoDB
====> Optional Mroonga features
     ZMQ=on: ZeroMQ support
     MSGPACK=on: MsgPack support
====> GSSAPI Security API support: you have to select exactly one of them
     GSSAPI_BASE=off: GSSAPI support via base system (Kerberos required)
     GSSAPI_HEIMDAL=off: GSSAPI support via security/heimdal
     GSSAPI_MIT=off: GSSAPI support via security/krb5
     GSSAPI_NONE=on: Disable GSSAPI support
===> Use 'make config' to modify these settings



cat /etc/make.conf
WRKDIRPREFIX=/usr/obj

OPTIONS_SET=   LDAP

JAVA_VERSION=1.8
APACHE_PORT= www/apache24

DEFAULT_VERSIONS+= perl5=5.24
DEFAULT_VERSIONS+=  ruby=2.4
DEFAULT_VERSIONS+= mysql=102m
DEFAULT_VERSIONS+= pgsql=9.4
DEFAULT_VERSIONS+=   php=56
DEFAULT_VERSIONS+=   bdb=6
DEFAULT_VERSIONS+=   gcc=6


I don't have poudriere, but can install and run it, if you give me the command line
Comment 4 niqck 2017-08-31 19:03:29 UTC
Created attachment 185955 [details]
poudriere build log

I'm running into the same problem. Without SNAPPY the port build. With SNAPPY it fails. As I have some TokuDB SNAPPY is implied so unable to switch it off.

Log is to big for pastebin so I had to compress it.
Comment 5 niqck 2017-09-01 09:46:32 UTC
I'm running FreeBSD 11.1-RELEASE. IIRC on 11.0 it compiled.
Comment 6 niqck 2017-09-01 21:00:36 UTC
Created an 11.0-RELEASE jail in poudriere. Used the same ports-tree. mariadb102-server compiles with TokuDB/SNAPPY.
Comment 7 Bernard Spil freebsd_committer 2017-10-15 08:29:57 UTC
Looks like it's missing a library at link-time... Investigating.
Comment 8 Bernard Spil freebsd_committer 2017-10-15 09:59:33 UTC
This is an issue with the cmake scripts. The lzo2 snappy etc libs appear way too early. Removing the early appearances (they appear twice) fixes the build. Now I need to find a way to automate that in the Makefile.

Opened upstream issue as well
Comment 9 commit-hook freebsd_committer 2017-10-15 13:20:37 UTC
A commit references this bug:

Author: brnrd
Date: Sun Oct 15 13:19:35 UTC 2017
New revision: 452143
URL: https://svnweb.freebsd.org/changeset/ports/452143

Log:
  databases/mariadb102-server: Fix client ports and build

   - Move client headers to the client port [1]
   - Fix SNAPPY option for mariabackup [2]
     * switch to noninja to generate link.txt

  PR:		222825 [1], 221159 [2]
  Submitted by:	Piotr Kubaj <pkubaj@anongoth.pl> [1]
  Reported by:	sdalu@sdalu.com [2]

Changes:
  head/databases/mariadb102-client/pkg-plist
  head/databases/mariadb102-server/Makefile
  head/databases/mariadb102-server/pkg-plist