Hi,
I loaded a fresh hardware with SuSE 7.3 and find myself unable
to compile MySQL database any more. What happens?
I unpack mysql-3.23.47 and do
./configure
which stops at some point:
checking for inline... inline
checking for off_t... yes
checking for st_rdev in struct stat... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking size of char... 1
checking size of int... 4
checking size of long... 4
checking size of long long... 8
checking size of off_t... 0
configure: error: MySQL needs a off_t type.
The same thing happens when using or not using some options and/or
compiler flags with
./configure.
The log file says:
In file included from configure:6797:
/usr/include/stdlib.h: In function `atoi':
/usr/include/stdlib.h:362: `__constnptr' undeclared (first use in this function)
/usr/include/stdlib.h:362: (Each undeclared identifier is reported only once
/usr/include/stdlib.h:362: for each function it appears in.)
/usr/include/stdlib.h: In function `atol':
/usr/include/stdlib.h:367: `strtoconstnptr' undeclared (first use in this functi
/usr/include/stdlib.h:367: parse error before `)'
/usr/include/stdlib.h: In function `atoll':
/usr/include/stdlib.h:374: `strtocconstnptr' undeclared (first use in this funct
/usr/include/stdlib.h:374: parse error before `)'
configure: failed program was:
#line 6793 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <sys/types.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
main()
{
FILE *f=fopen("conftestval", "w");
if (!f) exit(1);
fprintf(f, "%d\n", sizeof(off_t));
exit(0);
}
Obviously it fails in a common system include file, namely stdlib.h, at
this point:
/*
* ISO C99 Standard: 7.20 General utilities <stdlib.h>
*/
#ifndef _STDLIB_H
#include <features.h>
<snip>
/* Convert a string to a floating-point number. */
extern double atof (__const char *__nptr) __THROW __attribute_pure__;
/* Convert a string to an integer. */
extern int atoi (__const char *__nptr) __THROW __attribute_pure__;
/* Convert a string to a long integer. */
extern long int atol (__const char *__nptr) __THROW __attribute_pure__;
<snip>
#ifdef __USE_EXTERN_INLINES
/* Define inline functions which call the internal entry points. */
<snip>
extern __inline double
atof (__const char *__nptr) __THROW
{
return strtod (__nptr, (char **) NULL);
}
extern __inline int
atoi (__const char *__nptr) __THROW
{
return (int) l (__constnptr, (char **) NULL, 10);
}
extern __inline long int
atol (__const char *__nptr) __THROW
{
return strtoconstnptr, (char **) NULL, 10);
}
<snip>
#endif /* Optimizing and Inlining. */
Compile option __USE_EXTERN_INLINES may be set from features.h at this
point (grep finds no other file *.h where it is defined):
features.h:
/* Decide whether we can define 'extern inline' functions in headers. */
#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
# define __USE_EXTERN_INLINES 1
#endif
What goes wrong here? Am I missing some prerequisite include file? Or can
I turn off 'extern inline' in some way? I do not know if my installation
is broken or I don't get the options right.
TIA for any help.
Thomas Spahni
---------------------------------------------------------------------
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