← Back to team overview

maria-discuss team mailing list archive

Re: Cross compile issue


Dear Sergei,

After spent a lot of time on try-and-error method, I find out a solution.
This issue happened because it conflicts to berkeleyDB db.h and db_cxx.h include files, so you just remove these two files before cross compiling mariaDB.
It's work but this is not my solution.

Because my mariaDB include path is set to sysroot/include and sysroot/usr/include, and my berkeleyDB installed path is also set to "sysroot/usr" (sysroot/usr/include, sysroot/usr/lib/, ..), I just correct my berkeleyDB installed path from "sysroot/usr" to "sysroot/usr/local".
It can solve data structure conflict issue between berkeleyDB and mariaDB, like DB_TXN ...

Best Regards,

-----Original Message-----
From: Sergei Golubchik [mailto:serg@xxxxxxxxxxx] 
Sent: Thursday, September 03, 2015 9:00 PM
To: Johnson Cheng
Cc: maria-discuss@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Maria-discuss] Cross compile issue

Hi, Johnson!

On Sep 03, Johnson Cheng wrote:
> Dear Sergei,
> Thanks for your reply.
> I am not sure what it happened because it is disappeared when I re-cross-compile mariaDB at another new environment.
> Actually I am dig out a problem about DB_TXN error message as below,
>   [ 80%] Building CXX object storage/tokudb/CMakeFiles/tokudb.dir/ha_tokudb.cc.o
>   In file included from /home/johnson/SanSoft/model/Phoenix_130313-0901/Package/maria/mariadb-10.0.21/storage/tokudb/ha_tokudb.cc:122:0:
>   /home/johnson/SanSoft/model/Phoenix_130313-0901/Package/maria/mariadb-10.0.21/storage/tokudb/hatoku_defines.h: In function int txn_begin(DB_ENV*, DB_TXN*, DB_TXN**, uint32_t, THD*):
>   /home/johnson/SanSoft/model/Phoenix_130313-0901/Package/maria/mariadb-10.0.21/storage/tokudb/hatoku_defines.h:407:19: error: DB_TXN has no member named ‘set_client_id
>          this_txn->set_client_id(this_txn, thd_get_thread_id(thd));
>                    ^
> Fortunately, I find out the root cause because I have installed BerkeleyDB at first.
> It seems mariaDB and BerkeleyDB can't co-exist.

Yes, TokuDB uses uses data types with the same name.
But they can coexist (they do on my laptop), so that must be something related to cross compilation again, may be cmake gets include paths incorrectly...

> Now I can cross compile mariaDB every time, and I am doing the final fine tune.