Re: [firebird-support] running Firebird without fbintl

2018-07-09 Thread Hamish Moffatt ham...@risingsoftware.com [firebird-support]
On 10/07/18 10:00, Hamish Moffatt ham...@risingsoftware.com 
[firebird-support] wrote:
> 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.
>

The darwin makefile failed to pass the exported symbols list to the 
linker for fbintl. It was correct for the other libraries, and it looks 
like this was already fixed in v3.

I rebuilt locally with that fixed and my problem is solved.

I reported it as CORE-5868.




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/



Re: [firebird-support] running Firebird without fbintl

2018-07-09 Thread Hamish Moffatt ham...@risingsoftware.com [firebird-support]
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/