Bug #8599 | Compile failure in handler.cc / ha_federated.h | ||
---|---|---|---|
Submitted: | 18 Feb 2005 12:10 | Modified: | 5 Apr 2005 21:23 |
Reporter: | Joerg Bruehe | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S1 (Critical) |
Version: | 5.0.3-pre | OS: | HP/UX (HP-UX) |
Assigned to: | Bugs System | CPU Architecture: | Any |
[18 Feb 2005 12:10]
Joerg Bruehe
[19 Feb 2005 4:56]
Patrick Galbraith
I'm trying to build on hpux11 and hp3750, using the build options from logfile: such as on hp3750: CC=cc CXX=aCC CFLAGS="-DBIG_TABLES +DAportable" CXXFLAGS="-DBIG_TABLES -DAPortable" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data -libexecdir=/usr/local/mysql/bin --with-extra_charsets=complex --with-server-suffix="-max" --enable-thread-safe-client --enable-local-infile --disable-shared --with-berkely-db --with-low-memory --with-readline --with-embedded-server --with-innodb Then, when I run 'make', I get: Making all in Docs cd . && \ /bin/sh /home/mysqldev/patg/mysql-5.0/missing --run makeinfo -I . --no-headers --no-split --output manual.txt makeinfo: missing file argument. Try `makeinfo --help' for more information. *** Error exit code 1 Stop. *** Error exit code 1 Stop. *** Error exit code 1 Stop. Is this something simple I'm missing? I want to try to see if my code fixes work, but can't get past this in either case. If someone could help me get past this, I can see if my pending patches work. Thanks much ;)
[19 Feb 2005 5:16]
Patrick Galbraith
Ok, I got past the problems with makeinfo by just nixing 'Docs' from the SUBDIRS list in the main Makefile, and the compile proceeds as far as: cc -O -DDBUG_OFF -DBIG_TABLES +DAportable -DHPUX11 -DSNPRINTF_RETURN_TRUNC -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT -DHAVE_BROKEN_INLINE -o mysql_client_test mysql_client_test.o ../libmysql/.libs/libmysqlclient.a /home/mysqldev/patg/mysql-5.0/zlib/.libs/libz.a -lpthread -lpthread ../mysys/libmysys.a ../zlib/.libs/libz.a -lpthread -lcrypt -lnsl -lm -lpthread source='insert_test.c' object='insert_test.o' libtool=no \ depfile='.deps/insert_test.Po' tmpdepfile='.deps/insert_test.TPo' \ depmode=hp /bin/sh ../depcomp \ cc -DUNDEF_THREADS_HACK -I. -I. -I.. -I../include -O -DDBUG_OFF -DBIG_TABLES +DAportable -DHPUX11 -DSNPRINTF_RETURN_TRUNC -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT -DHAVE_BROKEN_INLINE -c `test -f 'insert_test.c' || echo './'`insert_test.c cc: "../include/mysql.h", line 502: error 1000: Unexpected symbol: "*". cc: "../include/mysql.h", line 502: error 1573: Type of "to" is undefined due to an illegal declaration. *** Error exit code 1 Note: previous to this, there are multitudes of this error: Warning 740: "item_subselect.h", line 151 # Unsafe cast between pointers/references to incomplete classes: casting 'Item_cache *' to 'Item *'. Item* el(uint i) { return my_reinterpret_cast(Item*)(row[i]); } ^^^^^^ Warning 749: "sql_lex.h", line 393 # The cast from 'st_select_lex_node *' to 'st_select_lex *' is performed as a 'reinterpret_cast'. This operation is non-portable and potentially unsafe. return my_reinterpret_cast(st_select_lex*)(slave);
[19 Feb 2005 8:38]
Sergei Golubchik
That was fixed yesterday, before the build. The problem is that HP compiler does not like bool ha_federated::create_where_from_key(String *to, KEY *key_info, const byte *key in the class definition. It should be bool create_where_from_key(String *to, KEY *key_info, const byte *key (this happened many times already - pytical copy-paste error :)
[19 Feb 2005 18:02]
Patrick Galbraith
The previous error is due to a change I've made to mysql.h that makes cli_fetch_lengths useable in my handler: unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); // this line (this comment is not in the code) void STDCALL cli_fetch_lengths(ulong *to, MYSQL_ROW column, unsigned int field_count); MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); So, I've changed the line to: void STDCALL cli_fetch_lengths(unsigned long *to, MYSQL_ROW column, unsigned int field_count); And it gets past that point, but then fails at: /usr/bin/sed \ -e 's!@''testdir''@!/usr/local/mysql/mysql-test!g' \ -e 's!@''bindir''@!/usr/local/mysql/bin!g' \ -e 's!@''scriptdir''@!/usr/local/mysql/bin!g' \ -e 's!@''prefix''@!/usr/local/mysql!g' \ -e 's!@''datadir''@!/usr/local/mysql/share!g' \ -e 's!@''localstatedir''@!/usr/local/mysql/data!g' \ -e 's!@''libexecdir''@!/usr/local/mysql/bin!g' \ -e 's!@''PERL''@!/opt/perl/bin/perl!' \ -e 's!@''VERSION''@!5.0.3-alpha!' \ -e 's!@''MYSQL_TCP_PORT''@!3306!' \ -e 's!@''MYSQL_BASE_VERSION''@!5.0!' \ -e 's!@''MYSQL_UNIX_ADDR''@!/tmp/mysql.sock!' \ -e 's!@''MYSQL_TCP_PORT''@!3306!' \ -e 's!@''MYSQL_NO_DASH_VERSION''@!5.0.3!' \ -e 's!@''MYSQL_SERVER_SUFFIX''@!-max!' \ install_test_db.sh > install_test_db-t /usr/bin/chmod +x install_test_db-t /usr/bin/mv install_test_db-t install_test_db Make: Don't know how to make std_data/client-key.pem. Stop. *** Error exit code 1
[19 Feb 2005 18:50]
Patrick Galbraith
just typing 'make' again got the code to complete the compile (???), and federated compiles and links with the change to mysql.h and serg's recommended fix to ha_federated.h, but when I run the tests, a warning is given that the tables are defaulting to MyISAM. I need to <try> to compile with --debug and run the tests in debug mode. The original problem for this bug is fixed, but I'm not sure if that means this bug report should be closed. I will consult someone in eng or dev about this.
[5 Apr 2005 21:23]
Patrick Galbraith
Fixed - this was due to a test result that had the wrong values.