Jon Smirl wrote: > Functions implemented in h files are getting inserted multiple times into > the shared libs (at least on windows). This is easy verified by looking at > the symbol exports for DLLs and noticing that things like GetInterface and > QueryReferent are being exported multiple times. These functions get built > once per lib, but if five libs get linked together there are five copies in > the shared library. It is easy to fix these problems once they are found, > either make the function inline or NS_EXPORT and move it to a cpp file.
On Linux, at least, we basically _force_ that behaviour through the --whole-archive insanity. Hard to get around, though, without explicit whitelists of functions, because the linker doesn't use the vtable entries as root sets for determining liveness of symbols. Mike
