[I tried to send this once without subscribing, but it turns out that
the tools-linking list is set up to _discard_ non-member messages
outright rather than moderate them.  If that's not intentional, someone
who administers this list might want to look into it.]

I'm stuck between a rock and a hard place compiling a large (and
proprietary) C++ application on OpenSolaris b118, and I'd like some
advice or at least pointers for the sorts of information I should be
gathering.

I'm using SunStudio 12 Update 1, installed by 'pkg'.  It's an AMD64
system.  I first got this problem when I try to compile and link the
application:

ld: fatal: file /opt/sunstudio12.1/prod/lib/crti.o: section
.rela.annotate has invalid type [ SHT_RELA ]

After searching the web, I found that "LD_NOEXEC_64=1" is apparently the
work-around for this.  I rebuilt using that and got further, but now I
have a new problem.

When I give a list of 114 .o binaries totaling about 92MB of object code
to SunStudio CC, /usr/ccs/bin/ld starts chewing up memory.  It gets just
shy of 2GB of storage, and then drops core on a segfault, presumably
because it ran out of heap space.  The CC arguments (besides the list of
objects) are "-mt -instances=explicit -template=wholeclass -G -ldl -h
libname.so".

Is this because of LD_NOEXEC_64?  Should I expect that 'ld' will need
several GB to deal with around a hundred MB of objects?  Should I just
wait until there's another SunStudio update?

Because it's a proprietary application, I'm a little limited in what I
can provide here, but if there's anything I should be doing to debug
this, I'd appreciate the hints.

-- 
James Carlson         42.703N 71.076W         <carlsonj at workingcode.com>

Reply via email to