logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: [HACKERS] ECPG thread-safety: msg#00139

Subject: Re: [HACKERS] ECPG thread-safety
Rod Taylor wrote:
-- Start of PGP signed section.
> On Mon, 2003-05-26 at 13:06, Bruce Momjian wrote:
> > Shridhar Daithankar wrote:
> > > On Friday 28 March 2003 21:45, you wrote:
> > > > For testing the library, I think it is enough to init an thread attr. 
> > > > like
> > > > pthread_init_attr, that should be enough to test header and library.
> > > 
> > > And compiler flags, I forgot.. -pthread on freeBSD/gcc and -D_REENTRANT 
> > > on 
> > > linux at least. FreeBSD needs _THREAD_SAFE as well IIRC.
> > 
> > Are you saying FreeBSD actually has a -pthread compiler flag?  And Linux
> > needs REENTRANT.  We can do that.  Here is an updated patch.  Of course,
> > I need to run autoconf too.
> 
> If I'm not mistaken, you use -lpthread on FreeBSD 4.x, and -lc_r on
> FreeBSD 5.x.

Thanks.  Patch updated and attached.  Are there any FreeBSD 3.X machines
still around that have pthread.h?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@xxxxxxxxxxxxxxxx               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: configure.in
===================================================================
RCS file: /cvsroot/pgsql-server/configure.in,v
retrieving revision 1.253
diff -c -c -r1.253 configure.in
*** configure.in        22 May 2003 16:39:28 -0000      1.253
--- configure.in        26 May 2003 17:38:28 -0000
***************
*** 506,511 ****
--- 506,514 ----
                [  --without-zlib          do not use Zlib])
  
  
+ #
+ # Elf
+ #
  
  # Assume system is ELF if it predefines __ELF__ as 1,
  # otherwise believe host_os based default.
***************
*** 527,533 ****
--- 530,560 ----
  fi])
  AC_SUBST(ELF_SYS)
  
+ #
+ # Pthreads
+ #
  
+ AC_CHECK_HEADER(pthread.h,
+       [AC_DEFINE(HAVE_THREADS, 1, [Define to 1 if you have the threads 
interface.])])
+ if test ! -z "$HAVE_THREADS"
+ then  
+       case $host_os in
+               # BSD/OS and NetBSD require no special libraries or flags
+               netbsd*|bsdi*) ;;
+               freebsd4*) THREAD_CFLAGS="-pthread" ;;
+               freebsd*) THREAD_LIBS="-lc_r" ;;
+               linux*) THREAD_LIBS="-lpthread"
+                       THREAD_CFLAGS="-D_REENTRANT" ;;
+       # other operating systems might fail because they have pthread.h but 
need
+       # special libs we don't know about yet.
+       esac
+ fi
+ AC_SUBST(THREAD_LIBS)
+ AC_SUBST(THREAD_CFLAGS)
+ 
+ #
+ # Assignments
+ #
  
  CPPFLAGS="$CPPFLAGS $INCLUDES"
  LDFLAGS="$LDFLAGS $LIBDIRS"
Index: src/Makefile.global.in
===================================================================
RCS file: /cvsroot/pgsql-server/src/Makefile.global.in,v
retrieving revision 1.162
diff -c -c -r1.162 Makefile.global.in
*** src/Makefile.global.in      11 May 2003 20:50:53 -0000      1.162
--- src/Makefile.global.in      26 May 2003 17:38:31 -0000
***************
*** 152,157 ****
--- 152,160 ----
  TK_LIB_SPEC           = @TK_LIB_SPEC@
  TK_XINCLUDES          = @TK_XINCLUDES@
  
+ THREAD_CFLAGS         = @THREAD_CFLAGS@
+ THREAD_LIBS           = @THREAD_LIBS@
+ 
  have_docbook  = @have_docbook@
  DOCBOOKSTYLE  = @DOCBOOKSTYLE@
  COLLATEINDEX  = @COLLATEINDEX@
Index: src/include/pg_config.h.in
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/pg_config.h.in,v
retrieving revision 1.47
diff -c -c -r1.47 pg_config.h.in
*** src/include/pg_config.h.in  22 May 2003 16:39:30 -0000      1.47
--- src/include/pg_config.h.in  26 May 2003 17:38:32 -0000
***************
*** 465,470 ****
--- 465,473 ----
  /* Define to 1 if you have the <termios.h> header file. */
  #undef HAVE_TERMIOS_H
  
+ /* Define to 1 if you have the <pthread.h> header file. */
+ #undef HAVE_THREADS
+ 
  /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
     `HAVE_STRUCT_TM_TM_ZONE' instead. */
  #undef HAVE_TM_ZONE
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>