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

Reply via email to