Re: [HACKERS] Off-topic: autoconf guru

From: Dmitry Samersoff <dms(at)wplus(dot)net>
To: The Hermit Hacker <scrappy(at)HUB(dot)ORG>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] Off-topic: autoconf guru
Date: 1999-07-29 14:02:36
Message-ID: XFMail.990729180236.dms@wplus.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On 29-Jul-99 The Hermit Hacker wrote:
>
> If you check configure.in with PostgreSQL, we use the --with-libs call in
> order to tell it where to look for 'libraries outside the system
> norm'...check the code for that, as I believe its what you are looking
> for, since, in general, the libpq would be outside that 'norm'..

Thanks, but I mention some other problem -
sequence
CC=g++
AC_CHECK_LIB(pq, PQexec)

is espanded by autoconf into
... main(){ PQexec(); } ...
that can't be compiled by g++,
instead
... main(){ PGconn *conn; const char *query; PQexec(conn,query); }

is there a way to correct this problem or I need to rewrite
autoconf macros?

configure:2672: checking for PQexec in -lpq
configure:2691: g++ -o conftest -g -O2 conftest.c -lpq
-L/usr/local/pgsql/lib 1>&5
configure:2688: Undefined symbol `PQexec(void)' referenced from text segment
collect2: ld returned 1 exit status
configure: failed program was:
#line 2680 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char PQexec();

int main() {
PQexec()
; return 0; }

>
>
> On Thu, 29 Jul 1999, Dmitry Samersoff wrote:
>
>> Is there any autoconf guru?
>>
>> I have lots problems Autoconf + C++ library.
>>
>> if I make CC=CXX, configure can't find libpq,
>> AC_CHECK_LIB(pq, PQexec)
>>
>> because it try link PQexec() - and it is missing
>>
>> if I keep CC as cc
>> AC_TRY_COMPILE([#include <stdlib.h>
>> #include <sys/types.h>
>> #include <sys/socket.h>
>> ],
>> [int a = accept(1, (struct sockaddr *) 0, (int *) 0);],
>> [AC_DEFINE(SOCKET_SIZE_TYPE, int) AC_MSG_RESULT(int)],
>> [AC_DEFINE(SOCKET_SIZE_TYPE, size_t) AC_MSG_RESULT(size_t)])
>>
>> return wrong result because int always aceptable for C but
>> can cause error for CXX
>>
>> Is there autoconf version modified for work with C++ or
>> I have to patch it's macros by my self ?
>>
>>
>> ---
>> Dmitry Samersoff, dms(at)wplus(dot)net, ICQ:3161705
>> http://devnull.wplus.net
>> * There will come soft rains ...
>>
>
> Marc G. Fournier ICQ#7615664 IRC Nick:
> Scrappy
> Systems Administrator @ hub.org
> primary: scrappy(at)hub(dot)org secondary:
> scrappy(at){freebsd|postgresql}.org

---
Dmitry Samersoff, dms(at)wplus(dot)net, ICQ:3161705
http://devnull.wplus.net
* There will come soft rains ...

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ryan Kirkpatrick 1999-07-29 14:33:02 Re: [PORTS] RedHat6.0 & Alpha
Previous Message Timothy Potier 1999-07-29 13:57:57 Unusual Problem?