Hi Jonas, >>> [_ZN8DwStringixEj] that symbol is defined in mimelib/mimelib/string.h as ] inline char& DwString::operator [] (size_t aPos) It is pulled in by mimelib/param.cpp because of ] void DwParameter::Parse() ] { ] [...] ] if (len > 2 && mValue[0] == '\'' && mValue[len-1] == '\'') { ] [...] (mValue is a DwString member of class DwParameter) But g++ doesn't really inline inline header functions (sic): ] (LENNY)root@apocatequil:/BUILD/kdepim-3.5.9/mimelib# readelf -a ../obj-i486-linux-gnu/mimelib/.libs/param.o | grep ixEj ] 0000032f 00003804 R_386_PLT32 00000000 _ZN8DwStringixEj ] 0000034d 00003804 R_386_PLT32 00000000 _ZN8DwStringixEj ] (LENNY)root@apocatequil:/BUILD/kdepim-3.5.9/mimelib# objdump -d ../obj-i486-linux-gnu/mimelib/.libs/param.o ] [...] ] 000001a0 <_ZN11DwParameter5ParseEv>: ] [...] ] 32e: e8 fc ff ff ff call 32f <_ZN11DwParameter5ParseEv+0x18f> ] [...] Instead, it makes them weak global symbols: ] (LENNY)root@apocatequil:/BUILD/kdepim-3.5.9/mimelib# nm -D ../obj-i486-linux-gnu/mimelib/.libs/libmimelib.so | grep ixEj ] 000299c0 W _ZN8DwStringixEj However, this does not depend on the application of your patch. In fact, I get this weak symbol with and without your 1.1.2 diff... What environment did you compile your standalone libmimelib in (e.g. do you pass '-finline' to g++)? Regarding the original question: Anyone who would like to use that function would have to include <mimelib/string.h> anyway, so dropping the symbol from the library (however you managed to do that) should be safe. Regards, Jan
Attachment:
signature.asc
Description: Digital signature