Thread: Build failure on Mac OS X 10.3.9

Build failure on Mac OS X 10.3.9

From
"lothar.behrens@lollisoft.de"
Date:
Hi,

I am trying to use the Mac OS X installation package of PostgreSQL 8.1.
The database could be installed
and I could basically use my old psqlODBC driver (07.03.0200).

Trying to compile the odbc driver 08.02.0200 gives me these errors ?

./configure --with-unixodbc
...

 gcc -DHAVE_CONFIG_H -I. -I. -I. -I/sw/include/postgresql -g -O2 -MT
results.lo -MD -MP -MF .deps/results.Tpo -c results.c  -fno-common
-DPIC -o .libs/results.o
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I. -I.   -I/sw/include/postgresql  -g -O2 -MT socket.lo -MD -MP -MF
".deps/socket.Tpo" -c -o socket.lo socket.c; \
then mv -f ".deps/socket.Tpo" ".deps/socket.Plo"; else rm -f
".deps/socket.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I. -I/sw/include/postgresql -g -O2 -MT
socket.lo -MD -MP -MF .deps/socket.Tpo -c socket.c  -fno-common -DPIC
-o .libs/socket.o
socket.c: In function `SOCK_connect_to':
socket.c:310: error: storage size of `tm' isn't known
socket.c: In function `SOCK_wait_for_ready':
socket.c:422: error: storage size of `tm' isn't known
make[1]: *** [socket.lo] Error 1
make: *** [all] Error 2
lothars-Computer:~/psqlodbc-08.02.0200 lothar$

What is wrong ?

Thanks, Lothar


Re: Build failure on Mac OS X 10.3.9

From
Hiroshi Inoue
Date:
lothar.behrens@lollisoft.de wrote:
> Hi,
>
> I am trying to use the Mac OS X installation package of PostgreSQL 8.1.
> The database could be installed
> and I could basically use my old psqlODBC driver (07.03.0200).
>
> Trying to compile the odbc driver 08.02.0200 gives me these errors ?
>
> ./configure --with-unixodbc
> ...
>
>  gcc -DHAVE_CONFIG_H -I. -I. -I. -I/sw/include/postgresql -g -O2 -MT
> results.lo -MD -MP -MF .deps/results.Tpo -c results.c  -fno-common
> -DPIC -o .libs/results.o
> if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
> -I. -I.   -I/sw/include/postgresql  -g -O2 -MT socket.lo -MD -MP -MF
> ".deps/socket.Tpo" -c -o socket.lo socket.c; \
> then mv -f ".deps/socket.Tpo" ".deps/socket.Plo"; else rm -f
> ".deps/socket.Tpo"; exit 1; fi
>  gcc -DHAVE_CONFIG_H -I. -I. -I. -I/sw/include/postgresql -g -O2 -MT
> socket.lo -MD -MP -MF .deps/socket.Tpo -c socket.c  -fno-common -DPIC
> -o .libs/socket.o
> socket.c: In function `SOCK_connect_to':
> socket.c:310: error: storage size of `tm' isn't known
> socket.c: In function `SOCK_wait_for_ready':
> socket.c:422: error: storage size of `tm' isn't known
> make[1]: *** [socket.lo] Error 1
> make: *** [all] Error 2
> lothars-Computer:~/psqlodbc-08.02.0200 lothar$
>
> What is wrong ?

Could you try the following patch ?

*** socket.c.orig    Tue Oct 24 00:16:47 2006
--- socket.c    Sat Dec 23 19:36:39 2006
***************
*** 24,29 ****
--- 24,30 ----
  #include <string.h>                /* for memset */
  #if defined(TM_IN_SYS_TIME)
  #include <sys/time.h>
+ #include <time.h>
  #else
  #include <time.h>
  #endif /* defined(TM_IN_SYS_TIME) */

regards,
Hiroshi Inoue
*** socket.c.orig    Tue Oct 24 00:16:47 2006
--- socket.c    Sat Dec 23 19:36:39 2006
***************
*** 24,29 ****
--- 24,30 ----
  #include <string.h>                /* for memset */
  #if defined(TM_IN_SYS_TIME)
  #include <sys/time.h>
+ #include <time.h>
  #else
  #include <time.h>
  #endif /* defined(TM_IN_SYS_TIME) */

Re: Build failure on Mac OS X 10.3.9

From
"lothar.behrens@lollisoft.de"
Date:
> *** socket.c.orig    Tue Oct 24 00:16:47 2006
> --- socket.c    Sat Dec 23 19:36:39 2006
> ***************
> *** 24,29 ****
> --- 24,30 ----
>   #include <string.h>                /* for memset */
>   #if defined(TM_IN_SYS_TIME)
>   #include <sys/time.h>
> + #include <time.h>
>   #else

Here should be the line (after the above else line)

#include <sys/time.h>

>   #include <time.h>
>   #endif /* defined(TM_IN_SYS_TIME) */
>

Now I have another error:

After an error by indirectly linking to libssl I have added -lssl to
the makefile. Then I get this error:

ld: Undefined symbols:
_CONNLOCK_ACQUIRE
_CONNLOCK_RELEASE
_INIT_CONNLOCK

Where are these functions ?

Thanks, Lothar


Re: Build failure on Mac OS X 10.3.9

From
Hiroshi Inoue
Date:
lothar.behrens@lollisoft.de wrote:
>> *** socket.c.orig    Tue Oct 24 00:16:47 2006
>> --- socket.c    Sat Dec 23 19:36:39 2006
>> ***************
>> *** 24,29 ****
>> --- 24,30 ----
>>   #include <string.h>                /* for memset */
>>   #if defined(TM_IN_SYS_TIME)
>>   #include <sys/time.h>
>> + #include <time.h>
>>   #else
>>
>
> Here should be the line (after the above else line)
>
> #include <sys/time.h>
>
>
>>   #include <time.h>
>>   #endif /* defined(TM_IN_SYS_TIME) */
>>
>>
>
> Now I have another error:
>
> After an error by indirectly linking to libssl I have added -lssl to
> the makefile. Then I get this error:
>
> ld: Undefined symbols:
> _CONNLOCK_ACQUIRE
> _CONNLOCK_RELEASE
> _INIT_CONNLOCK
>
> Where are these functions ?
>

It is already fixed in the current CVS.
Please apply the following patch .

===================================================================
RCS file: /cvsroot/psqlodbc/psqlodbc/connection.h,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -p -r1.79 -r1.80
--- psqlodbc/psqlodbc/connection.h    2006/10/31 12:21:28    1.79
+++ psqlodbc/psqlodbc/connection.h    2006/11/03 10:41:19    1.80
@@ -173,8 +173,10 @@ do { \
 #define INIT_CONNLOCK(x)
 #define TRY_ENTER_CONN_CS(x)
 #define ENTER_CONN_CS(x)
-#define ENTER_INNER_CONN_CS(x, entered) (0)
+#define CONNLOCK_ACQUIRE(x)
+#define ENTER_INNER_CONN_CS(x, entered)
 #define LEAVE_CONN_CS(x)
+#define CONNLOCK_RELEASE(x)
 #define DELETE_CONN_CS(x)
 #define DELETE_CONNLOCK(x)
 #endif /* WIN_MULTITHREAD_SUPPORT */