[Maria-discuss] Issues cross-compiling MariaDB for ARM
Hi all, I've been having some issues attempting to cross compile MariaDB 10.4.6 for ARMv5. I always get to a certain point, and it tries to compile storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/ts/ts_util.c.o. This hangs for a long time, and eventually I get two notes about the variable size tracking limit being exceeded, and then the build fails with no clear explanation: [ 38%] Building C object storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/ts/ts_util.c.o /home/wmt/Downloads/mariadb-10.4.6/storage/mroonga/vendor/groonga/lib/expr.c: In function 'grn_expr_exec': /home/wmt/Downloads/mariadb-10.4.6/storage/mroonga/vendor/groonga/lib/expr.c:2620:1: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without /home/wmt/Downloads/mariadb-10.4.6/storage/mroonga/vendor/groonga/lib/expr.c:2620:1: note: variable tracking size limit exceeded Linking CXX static library libgroonga.a [ 38%] Built target libgroonga make: *** [all] Error 2 Does anyone have any idea why? Can I disable building this storage engine or something? Hamish
Hi Hamish, If you don't need Mroonga (which needs groonga) you can compile without it by adding this cmake option: -DPLUGIN_MROONGA=NO Rasmus Den fre 28 juni 2019 13:31Hamish MB <hamishmb@live.co.uk> skrev:
Hi all,
I've been having some issues attempting to cross compile MariaDB 10.4.6 for ARMv5. I always get to a certain point, and it tries to compile
storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/ts/ts_util.c.o.
This hangs for a long time, and eventually I get two notes about the variable size tracking limit being exceeded, and then the build fails with no clear explanation:
[ 38%] Building C object storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/ts/ts_util.c.o
/home/wmt/Downloads/mariadb-10.4.6/storage/mroonga/vendor/groonga/lib/expr.c: In function 'grn_expr_exec':
/home/wmt/Downloads/mariadb-10.4.6/storage/mroonga/vendor/groonga/lib/expr.c:2620:1: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
/home/wmt/Downloads/mariadb-10.4.6/storage/mroonga/vendor/groonga/lib/expr.c:2620:1: note: variable tracking size limit exceeded Linking CXX static library libgroonga.a [ 38%] Built target libgroonga make: *** [all] Error 2
Does anyone have any idea why? Can I disable building this storage engine or something?
Hamish
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Hi Harnish, Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO This syntax works starting with MariaDB 10.1. For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines: cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780 With best regards, Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Hi Marko, I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of? I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how. Hamish On 28/06/2019 15:04, Marko Mäkelä wrote:
Hi Harnish,
Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO
This syntax works starting with MariaDB 10.1.
For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines:
cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO
Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780
With best regards,
Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Hi Harnish, It can be WITH_SSL=bundled or WITH_SSL=system. Possibly the bundled zlib is missing some recent change. For WITH_SSL=system to work, you should have installed a package like zlib1g-dev. I think that there are good chances that MariaDB 10.4 can be compiled for ARMv5 (or at least ARMv7), because 10.3 is available in the Debian GNU/Linux repository: https://packages.debian.org/buster/mariadb-server-core-10.3 A main difference between 10.3 and 10.4 is that 10.4 requires a compiler that supports C++11. Marko On Fri, Jun 28, 2019 at 5:06 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi Marko,
I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of?
I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how.
Hamish
On 28/06/2019 15:04, Marko Mäkelä wrote:
Hi Harnish,
Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO
This syntax works starting with MariaDB 10.1.
For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines:
cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO
Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780
With best regards,
Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
-- Marko Mäkelä, Lead Developer InnoDB MariaDB Corporation
Hi, Maybe I should try 10.3 then - the newest cross compiler I can build for this platform is GCC 4.7, which has only experimental support for C++11. I could also try the bundled Zlib, seeing as I'm trying to use the system one at the moment. It gets fairly far, so I imagine it should be possible. Hamish On 28/06/2019 15:19, Marko Mäkelä wrote:
Hi Harnish,
It can be WITH_SSL=bundled or WITH_SSL=system. Possibly the bundled zlib is missing some recent change. For WITH_SSL=system to work, you should have installed a package like zlib1g-dev.
I think that there are good chances that MariaDB 10.4 can be compiled for ARMv5 (or at least ARMv7), because 10.3 is available in the Debian GNU/Linux repository: https://packages.debian.org/buster/mariadb-server-core-10.3
A main difference between 10.3 and 10.4 is that 10.4 requires a compiler that supports C++11.
Marko
On Fri, Jun 28, 2019 at 5:06 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi Marko,
I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of?
I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how.
Hamish
On 28/06/2019 15:04, Marko Mäkelä wrote:
Hi Harnish,
Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO
This syntax works starting with MariaDB 10.1.
For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines:
cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO
Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780
With best regards,
Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
I think that the earliest GCC that supports enough of C++11 is 4.8. So, you should be out of luck compiling 10.4 with GCC 4.7. You might also try clang, if that is available for your platform. Marko On Fri, Jun 28, 2019 at 5:23 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi,
Maybe I should try 10.3 then - the newest cross compiler I can build for this platform is GCC 4.7, which has only experimental support for C++11. I could also try the bundled Zlib, seeing as I'm trying to use the system one at the moment. It gets fairly far, so I imagine it should be possible.
Hamish
On 28/06/2019 15:19, Marko Mäkelä wrote:
Hi Harnish,
It can be WITH_SSL=bundled or WITH_SSL=system. Possibly the bundled zlib is missing some recent change. For WITH_SSL=system to work, you should have installed a package like zlib1g-dev.
I think that there are good chances that MariaDB 10.4 can be compiled for ARMv5 (or at least ARMv7), because 10.3 is available in the Debian GNU/Linux repository: https://packages.debian.org/buster/mariadb-server-core-10.3
A main difference between 10.3 and 10.4 is that 10.4 requires a compiler that supports C++11.
Marko
On Fri, Jun 28, 2019 at 5:06 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi Marko,
I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of?
I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how.
Hamish
On 28/06/2019 15:04, Marko Mäkelä wrote:
Hi Harnish,
Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO
This syntax works starting with MariaDB 10.1.
For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines:
cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO
Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780
With best regards,
Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
-- Marko Mäkelä, Lead Developer InnoDB MariaDB Corporation
I could probably use clang, but crosstool-ng doesn't support it, and it took me ages to get this cross compiler working :) I think 10.3 will be fine, given the target is currently running the ancient mysql 5.1! I'll give it a go, hopefully with more luck. Hamish On 28/06/2019 15:32, Marko Mäkelä wrote:
I think that the earliest GCC that supports enough of C++11 is 4.8. So, you should be out of luck compiling 10.4 with GCC 4.7.
You might also try clang, if that is available for your platform.
Marko
On Fri, Jun 28, 2019 at 5:23 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi,
Maybe I should try 10.3 then - the newest cross compiler I can build for this platform is GCC 4.7, which has only experimental support for C++11. I could also try the bundled Zlib, seeing as I'm trying to use the system one at the moment. It gets fairly far, so I imagine it should be possible.
Hamish
On 28/06/2019 15:19, Marko Mäkelä wrote:
Hi Harnish,
It can be WITH_SSL=bundled or WITH_SSL=system. Possibly the bundled zlib is missing some recent change. For WITH_SSL=system to work, you should have installed a package like zlib1g-dev.
I think that there are good chances that MariaDB 10.4 can be compiled for ARMv5 (or at least ARMv7), because 10.3 is available in the Debian GNU/Linux repository: https://packages.debian.org/buster/mariadb-server-core-10.3
A main difference between 10.3 and 10.4 is that 10.4 requires a compiler that supports C++11.
Marko
On Fri, Jun 28, 2019 at 5:06 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi Marko,
I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of?
I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how.
Hamish
On 28/06/2019 15:04, Marko Mäkelä wrote:
Hi Harnish,
Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO
This syntax works starting with MariaDB 10.1.
For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines:
cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO
Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780
With best regards,
Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Okay, well this is weird: Same error, and even if I use the bundled zlib (WITH_ZLIB="bundled"), it still fails when trying to link with: /home/wmt/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.7.2/../../../../arm-unknown-linux-gnueabi/bin/ld: cannot find -lz Any ideas anyone? Hamish On 28/06/2019 15:40, Hamish MB wrote:
I could probably use clang, but crosstool-ng doesn't support it, and it took me ages to get this cross compiler working :)
I think 10.3 will be fine, given the target is currently running the ancient mysql 5.1! I'll give it a go, hopefully with more luck.
Hamish
On 28/06/2019 15:32, Marko Mäkelä wrote:
I think that the earliest GCC that supports enough of C++11 is 4.8. So, you should be out of luck compiling 10.4 with GCC 4.7.
You might also try clang, if that is available for your platform.
Marko
On Fri, Jun 28, 2019 at 5:23 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi,
Maybe I should try 10.3 then - the newest cross compiler I can build for this platform is GCC 4.7, which has only experimental support for C++11. I could also try the bundled Zlib, seeing as I'm trying to use the system one at the moment. It gets fairly far, so I imagine it should be possible.
Hamish
On 28/06/2019 15:19, Marko Mäkelä wrote:
Hi Harnish,
It can be WITH_SSL=bundled or WITH_SSL=system. Possibly the bundled zlib is missing some recent change. For WITH_SSL=system to work, you should have installed a package like zlib1g-dev.
I think that there are good chances that MariaDB 10.4 can be compiled for ARMv5 (or at least ARMv7), because 10.3 is available in the Debian GNU/Linux repository: https://packages.debian.org/buster/mariadb-server-core-10.3
A main difference between 10.3 and 10.4 is that 10.4 requires a compiler that supports C++11.
Marko
On Fri, Jun 28, 2019 at 5:06 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi Marko,
I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of?
I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how.
Hamish
On 28/06/2019 15:04, Marko Mäkelä wrote:
Hi Harnish,
Yes, you can disable storage engines that you do not need, like this: cmake -DPLUGIN_MROONGA=NO
This syntax works starting with MariaDB 10.1.
For example, I am developing InnoDB, and to cut the time for compilation and running tests, I disable a bunch of storage engines:
cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO
Side note: I would not be surprised if you ran into problems with TokuDB. I hope that we can finally remove it in MariaDB 10.5: https://jira.mariadb.org/browse/MDEV-19780
With best regards,
Marko Mäkelä Lead Developer InnoDB MariaDB Corporation
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
So, it seems the failing command: cd /home/wmt/Downloads/build-mariadb/storage/connect && /usr/bin/cmake -E cmake_link_script CMakeFiles/connect.dir/link.txt --verbose=1 /home/wmt/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-g++ -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -fno-rtti -Wall -Wmissing-declarations -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-value -Wno-error=parentheses -Wno-error=strict-aliasing -Wno-error=type-limits -fpermissive -fexceptions -fPIC -O2 -g -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF -shared -Wl,-soname,ha_connect.so -o ha_connect.so CMakeFiles/connect.dir/ha_connect.cc.o CMakeFiles/connect.dir/connect.cc.o CMakeFiles/connect.dir/user_connect.cc.o CMakeFiles/connect.dir/mycat.cc.o CMakeFiles/connect.dir/fmdlex.c.o CMakeFiles/connect.dir/osutil.c.o CMakeFiles/connect.dir/rcmsg.c.o CMakeFiles/connect.dir/array.cpp.o CMakeFiles/connect.dir/blkfil.cpp.o CMakeFiles/connect.dir/colblk.cpp.o CMakeFiles/connect.dir/csort.cpp.o CMakeFiles/connect.dir/filamap.cpp.o CMakeFiles/connect.dir/filamdbf.cpp.o CMakeFiles/connect.dir/filamfix.cpp.o CMakeFiles/connect.dir/filamgz.cpp.o CMakeFiles/connect.dir/filamtxt.cpp.o CMakeFiles/connect.dir/filter.cpp.o CMakeFiles/connect.dir/json.cpp.o CMakeFiles/connect.dir/jsonudf.cpp.o CMakeFiles/connect.dir/maputil.cpp.o CMakeFiles/connect.dir/myconn.cpp.o CMakeFiles/connect.dir/myutil.cpp.o CMakeFiles/connect.dir/plgdbutl.cpp.o CMakeFiles/connect.dir/plugutil.cpp.o CMakeFiles/connect.dir/reldef.cpp.o CMakeFiles/connect.dir/tabcol.cpp.o CMakeFiles/connect.dir/tabdos.cpp.o CMakeFiles/connect.dir/tabext.cpp.o CMakeFiles/connect.dir/tabfix.cpp.o CMakeFiles/connect.dir/tabfmt.cpp.o CMakeFiles/connect.dir/tabjson.cpp.o CMakeFiles/connect.dir/table.cpp.o CMakeFiles/connect.dir/tabmul.cpp.o CMakeFiles/connect.dir/tabmysql.cpp.o CMakeFiles/connect.dir/taboccur.cpp.o CMakeFiles/connect.dir/tabpivot.cpp.o CMakeFiles/connect.dir/tabsys.cpp.o CMakeFiles/connect.dir/tabtbl.cpp.o CMakeFiles/connect.dir/tabutil.cpp.o CMakeFiles/connect.dir/tabvir.cpp.o CMakeFiles/connect.dir/tabxcl.cpp.o CMakeFiles/connect.dir/valblk.cpp.o CMakeFiles/connect.dir/value.cpp.o CMakeFiles/connect.dir/xindex.cpp.o CMakeFiles/connect.dir/xobject.cpp.o CMakeFiles/connect.dir/inihandl.cpp.o CMakeFiles/connect.dir/filamvct.cpp.o CMakeFiles/connect.dir/tabvct.cpp.o CMakeFiles/connect.dir/libdoc.cpp.o CMakeFiles/connect.dir/tabxml.cpp.o CMakeFiles/connect.dir/plgxml.cpp.o CMakeFiles/connect.dir/filamzip.cpp.o CMakeFiles/connect.dir/tabzip.cpp.o CMakeFiles/connect.dir/unzip.c.o CMakeFiles/connect.dir/ioapi.c.o CMakeFiles/connect.dir/zip.c.o -lpthread ../../libservices/libmysqlservices.a -lz /home/wmt/nas-sysroot/usr/local/lib/libxml2.so -lpthread -Wl,-rpath,/home/wmt/nas-sysroot/usr/local/lib Doesn't specify the location of libz like most of the rest of the ld commands do (they normally specify ../../../zlib/libz.a). Any ideas for how I can fix this? I could modify the makefile if it comes to it, but I don't know which one, or where to modify. Hamish On 28/06/2019 15:59, Hamish MB wrote:
Okay, well this is weird:
Same error, and even if I use the bundled zlib (WITH_ZLIB="bundled"), it still fails when trying to link with:
/home/wmt/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.7.2/../../../../arm-unknown-linux-gnueabi/bin/ld: cannot find -lz
Any ideas anyone?
Hamish
On 28/06/2019 15:40, Hamish MB wrote:
I could probably use clang, but crosstool-ng doesn't support it, and it took me ages to get this cross compiler working :)
I think 10.3 will be fine, given the target is currently running the ancient mysql 5.1! I'll give it a go, hopefully with more luck.
Hamish
On 28/06/2019 15:32, Marko Mäkelä wrote:
I think that the earliest GCC that supports enough of C++11 is 4.8. So, you should be out of luck compiling 10.4 with GCC 4.7.
You might also try clang, if that is available for your platform.
Marko
On Fri, Jun 28, 2019 at 5:23 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi,
Maybe I should try 10.3 then - the newest cross compiler I can build for this platform is GCC 4.7, which has only experimental support for C++11. I could also try the bundled Zlib, seeing as I'm trying to use the system one at the moment. It gets fairly far, so I imagine it should be possible.
Hamish
On 28/06/2019 15:19, Marko Mäkelä wrote:
Hi Harnish,
It can be WITH_SSL=bundled or WITH_SSL=system. Possibly the bundled zlib is missing some recent change. For WITH_SSL=system to work, you should have installed a package like zlib1g-dev.
I think that there are good chances that MariaDB 10.4 can be compiled for ARMv5 (or at least ARMv7), because 10.3 is available in the Debian GNU/Linux repository: https://packages.debian.org/buster/mariadb-server-core-10.3
A main difference between 10.3 and 10.4 is that 10.4 requires a compiler that supports C++11.
Marko
On Fri, Jun 28, 2019 at 5:06 PM Hamish MB <hamishmb@live.co.uk> wrote:
Hi Marko,
I found that option, but eventually ran into a different issue. It turns out that zlib isn't being found by the linker, even if I explicitly set the path. Are there any examples of working toolchain.cmake files you/anyone else knows of?
I think it's mostly because I'm misconfiguring that file somehow, but I'm not sure how.
Hamish
On 28/06/2019 15:04, Marko Mäkelä wrote: > Hi Harnish, > > Yes, you can disable storage engines that you do not need, like this: > cmake -DPLUGIN_MROONGA=NO > > This syntax works starting with MariaDB 10.1. > > For example, I am developing InnoDB, and to cut the time for > compilation and running tests, I disable a bunch of storage engines: > > cmake -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO > > Side note: I would not be surprised if you ran into problems with > TokuDB. I hope that we can finally remove it in MariaDB 10.5: > https://jira.mariadb.org/browse/MDEV-19780 > > With best regards, > > Marko Mäkelä > Lead Developer InnoDB > MariaDB Corporation _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Hamish, The error comes from the Connect storage engine, which is a virtual storage engine that connects to other servers. If you do not need that, you can disable it. Similar storage engines are Federated, FederatedX, Spider. cmake -DPLUGIN_CONNECT=NO (which was part of my initial reply). Best regards, Marko
I didn't realise, I assumed it was essential. Oops, sorry! I'll give that a go now. Hamish On 28/06/2019 17:17, Marko Mäkelä wrote:
Hamish,
The error comes from the Connect storage engine, which is a virtual storage engine that connects to other servers. If you do not need that, you can disable it. Similar storage engines are Federated, FederatedX, Spider.
cmake -DPLUGIN_CONNECT=NO
(which was part of my initial reply).
Best regards, Marko
Okay, so after some more toil, I've managed to get it to compile. However, when I run mysqld, I get the error "A newer kernel is required to run this binary." My cross compiler compiles for Linux 2.6.27, and the target kernel is 2.6.31.8 - ancient I know, but I can't upgrade it. If I run "file" on mysqld, I get the following: ./nas-sysroot/usr/local/mysql/bin/mysqld: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped This all seems fine, so has anyone got any ideas why this is happening? Hamish On 28/06/2019 17:50, Hamish MB wrote:
I didn't realise, I assumed it was essential. Oops, sorry! I'll give that a go now.
Hamish
On 28/06/2019 17:17, Marko Mäkelä wrote:
Hamish,
The error comes from the Connect storage engine, which is a virtual storage engine that connects to other servers. If you do not need that, you can disable it. Similar storage engines are Federated, FederatedX, Spider.
cmake -DPLUGIN_CONNECT=NO
(which was part of my initial reply).
Best regards, Marko
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Update: Apparently, according to http://uhurumkate.blogspot.com/2014/07/a-newer-kernel-is-required-to-run-thi..., this is an issue with GCC 4.7 - the version of the cross compiler I'm using. When I try with GCC 4.6.2, using the same toolchain file, and the same cmake options and so on (double checked), it fails with: [ 5%] Building C object storage/myisammrg/CMakeFiles/myisammrg.dir/myrg_range.c.o In file included from /home/wmt/Downloads/mariadb-10.3.16/storage/myisammrg/ha_myisammrg.cc:105:0: /home/wmt/Downloads/mariadb-10.3.16/sql/sql_class.h: In function 'void update_global_memory_status(int64)': /home/wmt/Downloads/mariadb-10.3.16/sql/sql_class.h:914:3: error: 'my_atomic_add64' was not declared in this scope [ 5%] Building C object storage/myisammrg/CMakeFiles/myisammrg.dir/myrg_rfirst.c.o [ 5%] Building C object storage/myisammrg/CMakeFiles/myisammrg.dir/myrg_rkey.c.o [ 5%] Building C object storage/myisammrg/CMakeFiles/myisammrg.dir/myrg_rlast.c.o [ 5%] Building C object pcre/CMakeFiles/pcre.dir/pcre_tables.c.o make[2]: *** [storage/myisammrg/CMakeFiles/myisammrg.dir/ha_myisammrg.cc.o] Error 1 make[1]: *** [storage/myisammrg/CMakeFiles/myisammrg.dir/all] Error 2 [ 5%] Building C object strings/CMakeFiles/strings.dir/ctype-win1250ch.c.o [ 5%] Building C object pcre/CMakeFiles/pcre.dir/pcre_ucd.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/ctype.c.o [ 5%] Building C object pcre/CMakeFiles/pcre.dir/pcre_valid_utf8.c.o [ 5%] Building C object pcre/CMakeFiles/pcre.dir/pcre_version.c.o [ 5%] Building C object pcre/CMakeFiles/pcre.dir/pcre_xclass.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/decimal.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/dtoa.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/int2str.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/is_prefix.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/llstr.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/longlong2str.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/my_strtoll10.c.o [ 5%] Building C object strings/CMakeFiles/strings.dir/my_vsnprintf.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/str2int.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strcend.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strend.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strfill.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strmake.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strmov.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strnmov.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strxmov.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strxnmov.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/xml.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strmov_overlapp.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/my_strchr.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strcont.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/strappend.c.o [ 6%] Building C object strings/CMakeFiles/strings.dir/json_lib.c.o Linking C static library libstrings.a [ 6%] Built target strings Linking C static library libpcre.a [ 6%] Built target pcre make: *** [all] Error 2 I'm kind of at a loss with this now. Any more ideas from anyone? Hamish On 01/07/2019 12:21, Hamish MB wrote:
Okay, so after some more toil, I've managed to get it to compile.
However, when I run mysqld, I get the error "A newer kernel is required to run this binary."
My cross compiler compiles for Linux 2.6.27, and the target kernel is 2.6.31.8 - ancient I know, but I can't upgrade it.
If I run "file" on mysqld, I get the following: ./nas-sysroot/usr/local/mysql/bin/mysqld: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped
This all seems fine, so has anyone got any ideas why this is happening?
Hamish
On 28/06/2019 17:50, Hamish MB wrote:
I didn't realise, I assumed it was essential. Oops, sorry! I'll give that a go now.
Hamish
On 28/06/2019 17:17, Marko Mäkelä wrote:
Hamish,
The error comes from the Connect storage engine, which is a virtual storage engine that connects to other servers. If you do not need that, you can disable it. Similar storage engines are Federated, FederatedX, Spider.
cmake -DPLUGIN_CONNECT=NO
(which was part of my initial reply).
Best regards, Marko
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
participants (3)
-
Hamish MB
-
Marko Mäkelä
-
Rasmus Johansson