This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Exception Handling is thread safe?


On Thursday, March 19, 1998 2:13 AM, Bastiaan Bakker 
[SMTP:Bastiaan.Bakker@Harbinger.nl] wrote:
> Hi ,
>
> On the OmniORB project pages I read  that egcs' exception handling is
> not thread safe but that it can be fixed with a patch from Teemu Torma.

Thread safe exception handling is available in the March 8th snapshot,
which is what I am using right now. Presumably, it has been incorporated
into the 1.0.2 release; I have not yet checked.

In the March 8th (980308) snapshot, you have to manually enable thread-safe
exception handling by editing the 'gthr.h' header file in the 'gcc' 
subdirectory.

At the top, add

	#define _PTHREADS = 1

if you are using POSIX threads. Otherwise #define _DCE_THREADS
or _SOLARIS_THREADS in the same way.

Then remove the 'libgcc2.a' file, and do a make install. Watch for
libgcc.a being built; if it doesn't happen, remove libgcc2.a and try
again.

Once you have everything successfully built and installed, your
libgcc.a now contains undefined symbols referring to the appropriate
threading library, thus you may have to add the appropriate link options
on the compiler command line to compile C++ code that does
exception handling. (On my system, the pthreads API is in
a separate library; I'm using LinuxThreads in conjunction with
libc5.)

This advice may work for 1.0.2; I don't know yet.

Watch out; I tried to ``cheat'' by doing only a ``make libgcc.a''
in the gcc directory and copying the libgcc.a file manually to
its destination. It did not work for some reason that I don't fully
understand. Only a ``make install'' did the right magic.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]