Hello!
On a Sun with
SunOS ai001273 5.6 Generic_105181-13 sun4u sparc SUNW,Ultra-30
I configured
./configure --prefix=/opt/ZITP7.33 --enable-shared --with-pthread
--with-low-memory --enable-assembler --enable-thread-safe-client
--with-mysqld-user=www --without-readline --with-extra-charsets=german1
--with-berkeley-db-includes=/opt/ZITP7.33/include
with envvars from
setenv CC gcc
setenv CFLAGS "-Wa,-xarch=v8plusa -O6 -mcpu=v9 -mtune=ultrasparc"
setenv CXX gcc
setenv CXXFLAGS "-Wa,-xarch=v8plusa -O6 -mcpu=v9 -mtune=ultrasparc
-felide-constructors -fno-exceptions -fno-rtti"
compilation stops with:
gmake[2]: Entering directory `/opt/www/Diele/mysql-3.23.32/client'
gcc -DUNDEF_THREADS_HACK -I./../include -I../include -I./.. -I.. -I.. -O3
-DDBUG_OFF -Wa,-xarch=v8plusa -O6 -mcpu=v9 -mtune=ultrasparc
-felide-constructors -fno-exceptions -fno-rtti -fno-implicit-templates
-DHAVE_RWLOCK_T -c mysql.cc
mysql.cc: In function `int com_status(String *, char *)':
mysql.cc:2190: integer constant out of range
mysql.cc:2190: warning: decimal integer constant is so large that it is
unsigned
gmake[2]: *** [mysql.o] Error 1
gmake[2]: Target `all' not remade because of errors.
gmake[2]: Leaving directory `/opt/www/Diele/mysql-3.23.32/client'
2182
2183 if ((status=mysql_stat(&mysql)) && !mysql_error(&mysql)[0])
2184 {
2185 char *pos,buff[40];
2186 ulong sec;
2187 pos=strchr(status,' ');
2188 *pos++=0;
2189 tee_fprintf(stdout, "%s\t\t\t", status); /* print label */
2190 if ((status=str2int(pos,10,0,LONG_MAX,(long*) &sec)))
2191 {
2192 nice_time((double) sec,buff,0);
2193 tee_puts(buff, stdout); /* print nice time */
2194 while (*status == ' ') status++; /* to next info */
2195 }
2196 if (status)
2197 {
2198 tee_putc('\n', stdout);
2199 tee_puts(status, stdout);
2200 }
2201 }
During compilation of mysql-3.23.32/client/mysql.cc these actual def's are
valid:
gcc -DUNDEF_THREADS_HACK -I./../include -I../include -I./.. -I.. -DDBUG_OFF
-Wa,-xarch=v8plusa -O6 -mcpu=v9 -mtune=ultrasparc -felide-constructors
-fno-exceptions -fno-rtti -fno-implicit-templates -DHAVE_RWLOCK_T -c mysql.cc -E
-dD -v -o mysql.ccp
Reading specs from /appl/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
/appl/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cpp -lang-c++ -v
-I./../include -I../include -I./.. -I.. -D__GNUC__=2 -D__GNUG__=2
-D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4
-D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix
-Asystem(unix) -Asystem(svr4) -D__OPTIMIZE__ -dD -D__sparc_v9__
-D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) -DUNDEF_THREADS_HACK
-DDBUG_OFF -DHAVE_RWLOCK_T mysql.cc -o mysql.ccpo
GNU CPP version 2.95.2 19991024 (release) (sparc)
Solaris' /usr/include/limits.h do correctly:
#define LONG_MIN (-2147483647L-1L)
#define LONG_MAX 2147483647L
#define ULONG_MAX 4294967295UL
#define LLONG_MIN (-9223372036854775807LL-1LL)
#define LLONG_MAX 9223372036854775807LL
#define ULLONG_MAX 18446744073709551615ULL
but then gcc's
/appl/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/include/limits.h are included:
#define __LONG_MAX__ 9223372036854775807L
#define LONG_MIN (-LONG_MAX-1)
#define LONG_MAX __LONG_MAX__
#define ULONG_MAX (LONG_MAX * 2UL + 1)
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define LONG_LONG_MIN (-LONG_LONG_MAX-1)
#define LONG_LONG_MAX __LONG_LONG_MAX__
#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
and finally mySQL's ../include/global.h:
#define HAVE_LONG_LONG 1
#define LONGLONG_MIN ((long long) 0x8000000000000000LL)
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
and finally gcc sees line #2190 as:
if ((status=str2int(pos,10,0,9223372036854775807L ,(long*) &sec)))
Gcc's /appl/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/include/limits.h reads:
76 /* Minimum and maximum values a `signed long int' can hold.
77 (Same as `int'). */
78 #ifndef __LONG_MAX__
79 #if defined (__alpha__) || defined (__sparc_v9__) || defined (__sparcv9)
80 #define __LONG_MAX__ 9223372036854775807L
81 #else
82 #define __LONG_MAX__ 2147483647L
83 #endif /* __alpha__ || sparc64 */
84 #endif
85 #undef LONG_MIN
86 #define LONG_MIN (-LONG_MAX-1)
87 #undef LONG_MAX
88 #define LONG_MAX __LONG_MAX__
89
90 /* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
91 #undef ULONG_MAX
92 #define ULONG_MAX (LONG_MAX * 2UL + 1)
93
94 #if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined
(__STRICT_ANSI__)
95 /* Minimum and maximum values a `signed long long int' can hold. */
96 #ifndef __LONG_LONG_MAX__
97 #define __LONG_LONG_MAX__ 9223372036854775807LL
98 #endif
99 #undef LONG_LONG_MIN
100 #define LONG_LONG_MIN (-LONG_LONG_MAX-1)
101 #undef LONG_LONG_MAX
102 #define LONG_LONG_MAX __LONG_LONG_MAX__
103
104 /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
105 #undef ULONG_LONG_MAX
106 #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
107 #endif
What do you suggest to do? My workaround was to insert "#define __LONG_MAX__"
as line #28 ... and:
Compilation finished at Wed Jan 31 17:50:36
--
Greetings
Pete
(Peter Dyballa, ZIT P 7.33, 14.937 AHH, 47561)
Ce qui �t� compris n'existe plus
[Attachment omitted, unknown MIME type or encoding (application/ms-tnef)]
---------------------------------------------------------------------
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