IBM gave me a workaround that seems to work. However for a lengthy link it
may be a burden if you don't want a stripped link! -you'd have to strip,
check the sum and then relink!
'sum -i <executable>' on a stripped executable will give a consistant
checksum across different builds if source does not change.
-----Original Message-----
From: Winter, Mike
Sent: Monday, May 01, 2000 10:59 AM
To: 'ace-...@cs.wustl.edu'
Subject: FW: [ace-users] IBM CXX=some frustration
I think the wider audience of this distribution may have some good stuff to
respond to this email I posted on my company BBS. It's not directly related
to ACE but I have been using this compiler and builing ACE.
Appreciate any feedback.
Thanks
-----Original Message-----
From: Winter, Mike
Posted At: Monday, May 01, 2000 10:53 AM
Posted To: Schwebb
Conversation: IBM CXX=some frustration
Subject: IBM CXX 3.6.6.0=some frustration
One of the basic tenets of development is- change nothing you should be able
to generate the same binary any number of times from the same source, not so
w/ IBM....
if you do nothing but...
make clean
make the_binary
sum the_binary
...w/o changing anything else, this produces the same results every time you
run sum when compiling with gcc and different values every time you run sum
when using IBM compilers. I opened trouble ticket with IBM: PMR80072-49R in
response to this. A support engineer today told me that an IBM architect
told him that it is left for the user to produce 'some script' to strip the
time-stamp integer from each object file which is 4 bytes embedded 12 bytes
into the object and another time-stamp for the linkage in the symbol-table.
Iasked for a design change request to be submitted-DCR #41.
Another problem I had was with libraries. In my experience w/ unix I have
understood an extension '.so' to mean 'shared object' for inclusion in the
runtime release and '.a' to be a statically linked library-requiring nothing
but the linked binary to run in the production environment. Not so w/ IBM.
the CXX (3.6.6.0) suite of libraries has libXXX.a as shared runtime library
and libXXXns.a as a 'non-shared' library. Upon learning this and cussing a
bit I built the binary and linked libcxxbasens.a and was informed by IBM I
was required to use a different compiler xlC_r7 (rather than xlC_r -required
by ibmcxxbase.a) in order to resolve an undefined pthreads library routine
(no threads in my program-why do I need this, cos it's in the huge package
and also I was required to include a further library libconv.a is this a
static or runtime linkage?.
Confused? I'm not! I will fight the good fight and support any effort to
boycott IBM C/C++ compiler products within this good company ASAP. I am
interested to know of any other frustrations people have experienced w/
other compiler/linker sets on AIX. The other direct competitor to use would
be obviously gcc. I have only limited experience of this but I will be
investigating it.
Anybody else feeling this way, please RSVP!
Mike Winter
mike....@schwab.com
415-667-0354