Bug #37972 | Compiling MySQL client binaries | ||
---|---|---|---|
Submitted: | 8 Jul 2008 16:19 | Modified: | 9 Jul 2008 20:30 |
Reporter: | Chris Kairalla | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
Version: | 5.0.51b | OS: | Other (QNX 6.3.2) |
Assigned to: | CPU Architecture: | Any |
[8 Jul 2008 16:19]
Chris Kairalla
[8 Jul 2008 17:50]
Valeriy Kravchuk
Thank you for a problem report. What gcc version do you have? Have you tried to compile entire server, using the following configure options: ./configure --prefix=/usr/local/mysql --enable-thread-safe-client
[8 Jul 2008 17:55]
Chris Kairalla
Hi, Thank you for reply. gcc version is 2.95.3 No, I haven't. As I've got MySQL server installed on Windows machine, I am just trying to have the ODBC connector in order to be able to run queries from QNX machine. I can try to have the full server....I'll let you know.
[8 Jul 2008 18:17]
Chris Kairalla
Just tried to build entire server with options: ./configure --prefix=/usr/local/mysql -enable-thread-safe-client but the result is exactly the same: makeke[2]: *** [libmysqlclient_r.la] segmentation violation (core dumped) make[2]: Leaving directory `/tmp/mysql-5.0.51b/libmysql_r' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/mysql-5.0.51b' make: *** [all] Error 2
[8 Jul 2008 18:21]
Valeriy Kravchuk
How much RAM do you have on that machine? Please, check also versions of other tools based on http://dev.mysql.com/doc/refman/5.0/en/installing-source.html.
[8 Jul 2008 20:08]
Chris Kairalla
It has 767Mb where 600Mb is being currently used. I've checked other tool versions and they're fine: - gcc: 2.95.3 - make: 3.80 - libtool: 2.2.4 Any suspecion?
[8 Jul 2008 20:23]
Valeriy Kravchuk
I do not have this platform to test, so I'll continue with some wild guesses. Try this: make clean ./configure --prefix=/usr/local/mysql --without-server make
[9 Jul 2008 13:53]
Sergei Golubchik
I'm sorry, but it's not clear from your bugreport. make reports a sigsegv while building libmysqlclient_r.la. But what is it, that crashes ? make ? gcc ? shell ?
[9 Jul 2008 18:51]
Chris Kairalla
Hi Sergei, I din't understand your question. Can you clarify? Thanks! The only way I can build is using --disable-shared option. The options I used: ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --disable-shared So, this way I was able to generate mySQL client libraries. Finally, with these libraries (static) I was able to build ODBC connector for QNX but now I need when I try to run a simple application, it returns me as I don't have shared libraries: [[unixODBC][Driver Manager]Can't open lib '/usr/local/mysql-conn/lib/libmyodbc5.a' : Shared library is corrupted] Is there a way I can generate shared libraries from static ones??
[9 Jul 2008 18:58]
Sergei Golubchik
You wrote make[2]: *** [libmysqlclient_r.la] segmentation violation (core dumped) make[2]: Leaving directory `/tmp/mysql-5.0.51b/libmysql_r' but you didn't say what program caused this segmentation violation. That's what I've asked.
[9 Jul 2008 19:03]
Chris Kairalla
Right, sorry about that. I got this error when I tried make command. After this error, I've got sh.core under /var/dumps
[9 Jul 2008 19:12]
Sergei Golubchik
Right, that's what I mean. I don't think it's MySQL bug that QNX shell crashes. I suspect (but don't know for sure) that it crashes in your builds on libtool scripts. Try to debug that. For example, modify libtool scripts to do set -x as the very first command, see where exactly the shell crashes. Or update libtool. Or shell. Or both.
[9 Jul 2008 20:30]
Chris Kairalla
I'll try it. Thanks! In the meanwhile, do I really need shared objects for ODBC connector or I can use static libraries instead?
[4 Dec 2008 22:39]
Dimitri Tarassenko
Just in case anyone happens to have the same problem: 1. Look in your /var/dumps and see what exactly coredumped. In my case, it was sh. 2. If it's the same, I was able to fix it by using bash instead of sh - passing SHELL=/usr/bin/bash and MAKE_SHELL=/usr/bin/bash to make.