[omniORB] Re: Autoconf Abilities [was Installation and Configuration on RedHat 6.0]

Sai-Lai Lo S.Lo@uk.research.att.com
18 Sep 1999 15:12:26 +0100


I've actually gone through the trouble of building two versions of
egcs-1.1.2. One version with --enable-threads and the other
without --enable-threads. I then compile the omniORB runtime libraries
with each compiler and compare the object code to see if there is any
difference between the two versions.

Here is my observation:

1. Both versions produce the same object code in the omniORB runtime. *BUT*
2. The gcc runtime libgcc.a differs significantly.
   In particular, the object file *_eh.o and frame.o are different*.
   If one look at the libgcc source, these modules deal with exception
   at runtime and the source code distingushes between threaded and
   non-threaded exception handling.

So despite of what the documentation says about --enable-threads only
affect objective-C, it is not true.

I've also done the same to gcc-2.95. The --enable-threads and the non
--enable-threads version exhibit slightly different
behaviour:

1. Some object files in the omniORB runtime *ARE DIFFERENT*.
   I look at the assembler output of one of these files, the difference is
   that the non --enable-threads version produce code that has 3 entries
   missing in its __EXCEPTION_TABLE__!!

2. Again the _eh.o and frame.o in the gcc runtime libgcc.a differs
   significantly.


To summarise, MAKE SURE THAT YOUR GCC COMPILER IS BUILD WITH --enable-threads!


-- 
Sai-Lai Lo                                   S.Lo@uk.research.att.com
AT&T Laboratories Cambridge           WWW:   http://www.uk.research.att.com 
24a Trumpington Street                Tel:   +44 1223 343000
Cambridge CB2 1QA                     Fax:   +44 1223 313542
ENGLAND