Greetings !
Last week I upgraded our 2100A from 4.0B to 4.0D
("better late than never") using the standard upgrade.
Just to be sure, I then recompiled and relinked our software -
and several tests I then ran failed, generating core dumps !
Checking the way it was all generated, I have two differences:
1) Most of the modules had originally (= in 4.0B) been compiled using
/usr/opt/s5/bin/cc
which I had in between changed to plain 'cc'.
Due to people having left, I cannot tell why the call had been
to 's5' in the past.
2) Of course the compiler has been changed by the upgrade,
and I notice changes in the binaries (I kept the old modules).
However, I checked that the '-O'-options given had been unchanged
(for my test program, mostly '-O1' and some '-O2'), that also
applies to '-std1' (is used) and the relevant '-D...' options.
The symptoms of the crash are such that I suspect wrong optimisation,
but I can not (yet) tell for sure. Hence my questions:
1) Looking at the former '/usr/opt/s5/bin/cc', I had the impression
that using it (over plain 'cc') has no effect on the optimization
but "only" changes the search path for "includes" and libraries.
Is that correct, or did I miss something there ?
The modules compiled (earlier) using '/usr/opt/s5/bin/cc'
do not make system calls (these are in other modules always
compiled using 'cc') - could the 's5' use then have any effect ?
2) I assume that calling the 's5' version is only possible if I have
the SVID compatibility installed (which I have, till now).
What about running the generated binaries - do they also need
that subset, or are the functions always available ?
3) Is there any place where I could find details about the changes
in the C compiler from 4.0B to 4.0D ?
Thank you for hints, I will summarize.
Regards, Joerg Bruehe
--
Joerg Bruehe, SQL Datenbanksysteme GmbH, Berlin, Germany
(speaking only for himself)
mailto: joerg_at_sql.de
Received on Mon Dec 06 1999 - 15:59:02 NZDT