Have tried compiling 3.23.51 with gcc 2.95.2 on both solaris x86
2.7 and
        solaris sparc 2.7.  on both systems configure is fine (using
both my own
        configuration and that recommended in your README for solaris
2.7) but
        when compiling sql_lex.cc compilation fails when attempting to
        implement the inline function get_hash_symbol().

        specifically:

        sql_lex.cc: In function `int find_keyword(LEX *, unsigned int,
bool)':
        sql_lex.cc:168: implicit declaration of function `int
get_hash_symbol(...)'
        sql_lex.cc:168: initialization to `SYMBOL *' from `int' lacks a
cast

        Further investigation shows that get_hash_symbol() is an inline
        function that appears to be 'generated' dynamically during
        configuration from file gen_lex_hash.cc.  (Interesting
technique).

        This is a clear demonstration of a confused compiler.  I thought
adding
        a prototype for the function get_hash_symbol() might help:

        Adding the prototype ahead of the function find_keyword() in
        sql_lex.cc as follows:

                SYMBOL  *get_hash_symbol(const char*tok,uint len,bool
function);

        allows compile to continue (now that the compiler understands
what
        the function is supposed to be passing/returning).  HOWEVER it
fails at
        link time, of course, because there is no function
get_hash_symbol()
        defined in any of the searched libraries.

        My ./configure options are as follows:

        2.7 x86:
                CC=gcc CFLAGS="-O3 -fomit-frame-pointer -DHAVE_CURSES_H"
\
                        CXX=gcc \
                        CXXFLAGS="-O3 -fomit-frame-pointer
-felide-constructors \
                        -fno-exceptions -fno-rtti -DHAVE_CURSES_H" \
                        ./configure --prefix=/usr/local/mysql

        2.7 sparc:
                CC=gcc CFLAGS="-O3" \
                        CXX=gcc CXXFLAGS="-O3 -felide-constructors \
                        -fno-exceptions -fno-rtti" \
                        ./configure --prefix=/usr/local/mysql \
                        --with-low-memory --enable-assembler

        Should I go ahead and code the function get_hash_symbol() inline

        based on your clever printf example in gen_lex_hash.cc??  I am
so

        Should I go ahead and code the function get_hash_symbol() inline

        based on your clever printf example in gen_lex_hash.cc??  I am
so
        impressed by your database engine and am afraid to implement
this

        Should I go ahead and code the function get_hash_symbol() inline

        based on your clever printf example in gen_lex_hash.cc??  I am
so
        impressed by your database engine and am afraid to implement
this
        function myself without your thoughts as it might jeopardize the

        integrity of your application.

        Bottom line, what am I doing wrong.  :)

        Humbly in awe,
        Dave

>How-To-Repeat:
        compile with gcc 2.95.2 on either sun solaris 2.7 x86 or sparc.
>Fix:
        not sure, I suspect I am not including a library that is missed
        in ./configure or I need to code the function inline myself or
        something-- guessing at this point, desperately need a solution.

>Submitter-Id:  <submitter ID>
>Originator:    LC
>Organization:
>MySQL support: [none]
>Synopsis:      I am making some kind if idiotic mistake.
>Severity:      serious
>Priority:      medium
>Category:      mysql
>Class:         sw-bug
>Release:       mysql-3.23.51 (Source distribution)

>Environment:
        <machine, os, target, libraries (multiple lines)>
System: SunOS hercules 5.7 Generic_106541-08 sun4c sparc SUNW,Sun_4_75
Architecture: sun4

Some paths:  /usr/bin/perl /usr/ccs/bin/make /usr/local/bin/gcc
GCC: Reading specs from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/specs
gcc version 2.95.3 20010315 (release)
Compilation info: CC='gcc'  CFLAGS=''  CXX='gcc'  CXXFLAGS=''
LDFLAGS=''
LIBC:
-rw-r--r--   1 bin      bin      1690732 Oct 14  1999 /lib/libc.a
lrwxrwxrwx   1 root     root          11 Sep  7 16:26 /lib/libc.so ->
./libc.so.1
-rwxr-xr-x   1 bin      bin      1109336 Oct 14  1999 /lib/libc.so.1
-rw-r--r--   1 bin      bin      1690732 Oct 14  1999 /usr/lib/libc.a
lrwxrwxrwx   1 root     root          11 Sep  7 16:26 /usr/lib/libc.so
-> ./libc.so.1
-rwxr-xr-x   1 bin      bin      1109336 Oct 14  1999 /usr/lib/libc.so.1

Configure command: ./configure
--with-unix-socket-path=/var/tmp/mysql.sock --with-low-memory
--with-mit-threads=ye
s --without-perl --enable-thread-safe-client --with-berkeley-db
--enable-local-infile --with-innodb CC=gcc CXX=gcc
Perl: This is perl, version 5.005_03 built for sun4-solaris



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to