Hi,
IMHO:
I think if you use autoheader it's possible to fix that according with your
glibc/compiler version.Also (...from what i remember what i saw in the
source code) is used macros for checking GLIBC2 style.
Regards,
Gelu
_____________________________________________________
G.NET SOFTWARE COMPANY
Permanent e-mail address : [EMAIL PROTECTED]
[EMAIL PROTECTED]
----- Original Message -----
From: "Michael Bacarella" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, January 23, 2003 4:23 PM
Subject: gethostbyname_r() (un)bug in MySQL source build
> Hope everyone's having fun at LinuxWorld.
>
>
> I couldn't find any discussion of a solution for this (according
> to Google, mysql.com search), other than at least a dozen reports
> from people having trouble with it. The bug is that the proper error
> is not reported and at least I was sent on a wild goose chase.
>
> In attempting to build MySQL 3.23.54a on a fresh Red Hat 8.0:
>
> libmysql.c: In function `mysql_real_connect':
> libmysql.c:1325: warning: passing arg 5 of `gethostbyname_r' from
incompatible pointer type
> libmysql.c:1325: too few arguments to function `gethostbyname_r'
> libmysql.c:1325: warning: assignment makes pointer from integer without a
cast
>
> Very odd. What ends up being generated in include/my_net.h is:
>
> #define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),
>
> When it should be generating:
>
> struct hostent *my_gethostbyname_r(const char *name,struct hostent
> *result, char *buffer,int buflen, int *h_errnop);
>
> It does not get generated because ./configure does not detect GLIBC2's
> gethostbyname_r() even though it is there, and it is the six argument
> version that ends up being called with five.
>
> The problem actually has nothing to do with gethostbyname_r().
>
> The problem is that g++ is not installed. The configure test program
> for gethostbyname_r() type depends on a C++ compiler, and ./configure is
> not halting the process for lack of C++ compiler:
>
> configure:19299: checking style of gethostname_r routines
> configure:19347: g++ -c -O -DDBUG_OFF conftest.cc >&5
> ./configure: line 1: g++: command not found
> configure:19350: $? = 127
> configure: failed program was:
> #line 19316 "configure"
> #include "confdefs.h"
> #undef inline
> #if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
> #define _REENTRANT
> #endif
> #include <pthread.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> #include <netdb.h>
> #ifdef F77_DUMMY_MAIN
> # ifdef __cplusplus
> extern "C"
> # endif
> int F77_DUMMY_MAIN() { return 1; }
> #endif
> int
> main ()
> {
> int skr;
>
> skr = gethostbyname_r((const char *) 0,
> (struct hostent*) 0, (char*) 0, 0, (struct hostent **) 0, &skr);
> ;
> return 0;
> }
>
> Solution? Tell the user there is no C++ compiler if there is no C++
compiler.
>
> --
> Michael Bacarella 24/7 phone: 646 641-8662
> Netgraft Corporation http://netgraft.com/
> "unique technologies to empower your business"
>
> Finger email address for public key. Key fingerprint:
> C40C CB1E D2F6 7628 6308 F554 7A68 A5CF 0BD8 C055
>
> ---------------------------------------------------------------------
> 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
>
>
---------------------------------------------------------------------
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