>As far as I know and remember, the way we're doing now -force libavi* >and friends to be linked into the core- is due to the fact that >1. we don't want to install libavi into the system lib directory. Fair >enough, and that shouldn't change. >2. we can't static link it to every module which needs it (pointless >duplication and most important, it just doesn't work)
See, that "pointless duplication" comment is exactly what I was talking about when I mentioned unnecessary optimization. (: avilib/wavlib are small enough (50k and 3k respectively, ignoring ELF/debug overhead) that duplication among the modules that use them--and I don't think there are very many anymore?--isn't worth worrying about when compared to a clean(*) code structure. (*) Of course, "clean" can mean lots of different things, but to me, the "cleanest" method of handling this would be to just link the static libs into each module; that way all the symbols are resolved at link time of the module, the module only needs to rely on the published interface of the core itself, and we aren't cluttering the user's filesystem with unnecessary shared objects. With respect to "just doesn't work", granted I haven't actually tried it myself (: but why doesn't it work? Is there some weird symbol dereferencing or some such that causes problems if -lavi/-lwav is added to each module that requires them, instead of to the core? --Andrew Church achu...@achurch.org http://achurch.org/