[sldev] Re: shared objects output during standalone build (Was: releasefordownload - linux)

Paul TBBle Hampson Paul.Hampson at Pobox.com
Sat Jul 14 11:00:01 PDT 2007


On Thu, Jul 12, 2007 at 10:32:27AM -0400, Jason Giglio wrote:
> Boroondas Gupte wrote:
> >Jason Giglio <gigstaggart at gmail.com>:
> > > I had to run cp
> > > ../linden/indra/lib_releasefordownload_client/i686-linux/ lib/ to get
> > > the libraries that it neglected to tar up apparently.
> >might be what Callum found two weeks ago:
> >https://lists.secondlife.com/pipermail/sldev/2007-June/002727.html
> >https://lists.secondlife.com/pipermail/sldev/2007-June/thread.html#2727
> >I don't think there's a Jira Issue about it, yet. So you might want to create one.
> >Boroondas

> Yes it appears to be the same issue.

> Filed:
> http://jira.secondlife.com/browse/VWR-1697

I see Sardonyx Linden has marked this as fixed internally. What was the
fix?

I'm hoping it wasn't unsharing the shared objects, because I'm pretty
sure building those as shared objects cut my build time by about an hour
(from three to two), unless someone else can suggest a different 1.17 to
1.18 change that would cause that?

(My measurement of 'two hours' is a little unscientific, mind you, but
the three hours was measured before, to within 10 minutes over the last
three versions I've packaged)

I'm particularly interested to know what the fix was so I can apply it
to the 1.18 packages I'm trying to prepare. My first instinct was to
organise an rpath in slviewer for /usr/lib/slviewer/ to put those .so
files in, but if upstream is going to instead either change the
create_cond_macro function or not use it for the client components, then
I can make _that_ change here and save myself some work later.

I note that in the indra/lib_release_client/powerpc-linux or equivalent
directory:

for d in *.so; do objdump -T $d --demangle | grep UND |grep -v -E '(PNG12_0|GLIBC_|GLIBCXX_|GCC_|CXXABI_| jpeg_| apr_| XML_| gz| opj_| cio_)' | grep -v '^00000000  w' | cut -c 46- |sort -u > $d.missing; done
for d in *.so; do objdump -T $d --demangle | grep -v UND |cut -dB -f 2- |grep '^ase' |cut -c 12- |sort -u > $d.have; done
for d in *.so; do cat *.have | grep -v -F -f - $d.missing ; done

indicates that the .so files don't have any unresolved dependancies
on the static linked objects.

Further,

sort *.have | uniq -dc |grep LL
indicates the overlap in exported interfaces is small:
      5 guard variable for LLStringBase<char>::null
      4 LLStringBase<char>::assign(char const*)
      4 LLStringBase<char>::assign(LLStringBase<char> const&)
      4 LLStringBase<char>::LLStringBase(char const*)
      5 LLStringBase<char>::null
      2 LLStringBase<char>::toLower(std::string&)
      2 LLStringBase<char>::toUpper(std::string&)
      2 LLStringOps::toLower(char)
      2 LLStringOps::toUpper(char)
      4 std::ostream& operator<< <char>(std::ostream&, LLStringBase<char> const&)
      5 typeinfo for LLError::NoClassInfo
      5 typeinfo name for LLError::NoClassInfo

which I'm guessing is the result of inlining, so unless there's some kind
of performance penalty for using shared libraries, I'm all for this
state of affairs continuing and even encompassing more. I believe there
was a Jira issue around for .soing more of the client...

The only issue then is convincing SCons to put an rpath into the client.

(Side note. Searching for shared object in Jira didn't come up with
anything useful on the first page of forty. Searing for .so came up with
a similarly large number of pages, and the first report on the first
page was "JIRA's navigation is so nonintuitive as to be useless".)

I haven't shipped it yet, awaiting feedback.

I note with slight amusement that llcommon and llmath have a circular
dependancy relationship. ^_^

-- 
-----------------------------------------------------------
Paul "TBBle" Hampson, B.Sc, LPI, MCSE
On-hiatus Asian Studies student, ANU
The Boss, Bubblesworth Pty Ltd (ABN: 51 095 284 361)
Paul.Hampson at Pobox.com

Of course Pacman didn't influence us as kids. If it did,
we'd be running around in darkened rooms, popping pills and
listening to repetitive music.
 -- Kristian Wilson, Nintendo, Inc, 1989

License: http://creativecommons.org/licenses/by/2.1/au/
-----------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.secondlife.com/pipermail/sldev/attachments/20070715/78ccf671/attachment-0001.pgp


More information about the SLDev mailing list