On 06/07/18 18:59, Dimitry Sibiryakov s...@ibphoenix.com
[firebird-support] wrote:
> 06.07.2018 10:45, 'Paul Beach' pbe...@mail.ibphoenix.com [firebird-support]
> wrote:
>>> With GCC "-fvisibility=internal" can be used to suppress exporting of
>>> all symbols.
>> We currently use -fvisibility-inlines-hidden and -fvisibility=hidden for
>> clang...
> But still framework somehow calls internal delete. Did you check exported
> symbols with
> nm (or whatever utility on MacOS can show public symbols of a library)?
Right, it looks like fbintl is exporting operator delete() and operator
delete[](), while libfbembed.dylib is not.
macOS has nm but it doesn't demangle. They have their own utility
symbols(1).
Here's the whole list of symbols exported (flags including "EXT") from
fbintl:
$ symbols Versions/A/fbintl| grep " EXT"
0x16c0 ( 0x130) LD_lookup_charset [FUNC,
EXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
0x1840 ( 0x340) LD_lookup_texttype [FUNC,
EXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
0x1b80 ( 0x2a0) LD_setup_attributes
[FUNC, EXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
0x1ef0 ( 0x40) LD_version [FUNC, EXT,
NameNList, MangledNameNList, Merged, NList, FunctionStarts]
0x00037b90 ( 0x40) operator new(unsigned
long) [FUNC, EXT, NameNList, MangledNameNList, Merged, NList,
FunctionStarts]
0x00037c20 ( 0x40) operator new[](unsigned
long) [FUNC, EXT, NameNList, MangledNameNList, Merged, NList,
FunctionStarts]
0x00037c60 ( 0x40) operator delete(void*)
[FUNC, EXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
0x00037cf0 ( 0x40) operator delete[](void*)
[FUNC, EXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
ie new, new[], delete and delete[] are exported.
Meanwhile libfbembed.dylib (ie the main Firebird binary) has these
marked as PEXT = private-external.
$ symbols libfbembed.dylib | grep delete
.
0x30451b70 ( 0x40) operator delete(void*)
[FUNC, PEXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
0x30451bb0 ( 0x40) operator delete[](void*)
[FUNC, PEXT, NameNList, MangledNameNList, Merged, NList, FunctionStarts]
Now to work out how to fix it.
Hamish
++
Visit http://www.firebirdsql.org and click the Documentation item
on the main (top) menu. Try FAQ and other links from the left-side menu there.
Also search the knowledgebases at http://www.ibphoenix.com/resources/documents/
++
Yahoo Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/firebird-support/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/firebird-support/join
(Yahoo! ID required)
<*> To change settings via email:
firebird-support-dig...@yahoogroups.com
firebird-support-fullfeatu...@yahoogroups.com
<*> To unsubscribe from this group, send an email to:
firebird-support-unsubscr...@yahoogroups.com
<*> Your use of Yahoo Groups is subject to:
https://info.yahoo.com/legal/us/yahoo/utos/terms/