Thread: osx and thread safety?

osx and thread safety?

From
Theodore Petrosky
Date:
Can someone shed some light on the thread safety
switch. I am using PostgreSQL on mac os x. I have made
and installed from 7.2 through 8.0b. I now see this
feature of thread safety and I don't understand why I
would need it.

I have tried:

./configure --with-rendezvous --enable-thread-safety

I get these errors:

ld: common symbols not allowed with MH_DYLIB output
format with the -multi_module option
fe-secure.o definition of common _thread_in_send (size
4)
/usr/bin/libtool: internal link edit command failed
make[3]: *** [libpq.3.2.dylib] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all] Error 2
make: *** [all] Error 2

this is os x 10.3.5 with gcc (GCC) 3.3

any ideas (If I don't know what it is, do I need it?)

Ted




__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail

Re: osx and thread safety?

From
Bruce Momjian
Date:
You need threading if you need to do threads in your client
applications.  Not sure why you get the link error though.

---------------------------------------------------------------------------

Theodore Petrosky wrote:
> Can someone shed some light on the thread safety
> switch. I am using PostgreSQL on mac os x. I have made
> and installed from 7.2 through 8.0b. I now see this
> feature of thread safety and I don't understand why I
> would need it.
>
> I have tried:
>
> ./configure --with-rendezvous --enable-thread-safety
>
> I get these errors:
>
> ld: common symbols not allowed with MH_DYLIB output
> format with the -multi_module option
> fe-secure.o definition of common _thread_in_send (size
> 4)
> /usr/bin/libtool: internal link edit command failed
> make[3]: *** [libpq.3.2.dylib] Error 1
> make[2]: *** [all] Error 2
> make[1]: *** [all] Error 2
> make: *** [all] Error 2
>
> this is os x 10.3.5 with gcc (GCC) 3.3
>
> any ideas (If I don't know what it is, do I need it?)
>
> Ted
>
>
>
>
> __________________________________
> Do you Yahoo!?
> New and Improved Yahoo! Mail - 100MB free storage!
> http://promotions.yahoo.com/new_mail
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: osx and thread safety?

From
Tom Lane
Date:
Theodore Petrosky <tedpet5@yahoo.com> writes:
> I get these errors:

> ld: common symbols not allowed with MH_DYLIB output
> format with the -multi_module option
> fe-secure.o definition of common _thread_in_send (size
> 4)

Some googling turns up the fact that OS X does not like uninitialized
global variables in dynamic libraries.  There are a couple of
workarounds but the easiest one seems to be to initialize the variable.
I added "= 0" to the definition of thread_in_send and the problem
went away.

It's possible that this would create issues on platforms where
type pthread_key_t is neither integral nor a pointer type.  Does
anyone know of such?

            regards, tom lane