Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tcl 8.6.6 and sqlite3 public symbol visibility

53 views
Skip to first unread message

phil...@gmail.com

unread,
May 17, 2017, 3:38:51 PM5/17/17
to
We have noticed in attempting to port to Tcl 8.6.6 that the symbols that used to be visible in the sqlite3 shared library are no longer visible. Since we use sqlite3 both from within Tcl as well as through its native 'C' interface, this is causing unresolved symbols during our link. So, for example, the symbol for sqlite3_exec used to show up as:

tcl8.6.4$ nm ./unix/pkgs/sqlite3.8.8.3/libsqlite3.8.8.3.so | grep sqlite3_exec
000000000007c160 T sqlite3_exec

tcl8.6.6$ nm ./unix/pkgs/sqlite3.13.0/libsqlite3.13.0.so | grep sqlite3_exec
0000000000089b90 t sqlite3_exec

where the change from T to t indicates that the symbol has been marked private. It now causes link errors when we attempt to link with the library.

Questions:

1) Why was the change made? It is apparently unique to the Tcl build. When I build a sqlite3 library by itself, it does not make these symbols private:

sqlite-autoconf-3180000$ nm ./.libs/libsqlite3.so.0.8.6 | grep sqlite3_exec
000000000007d1b0 T sqlite3_exec

2) Is there a simple way to revert the behavior so that these symbols are no longer made private?

3) Are other libraries affected in the same manner?

Andreas Kupries

unread,
May 18, 2017, 12:38:05 AM5/18/17
to
phil...@gmail.com writes:

> We have noticed in attempting to port to Tcl 8.6.6 that the symbols
> that used to be visible in the sqlite3 shared library are no longer
> visible. Since we use sqlite3 both from within Tcl as well as
> through its native 'C' interface, this is causing unresolved symbols
> during our link. So, for example, the symbol for sqlite3_exec used
> to show up as:

Might be better asked on the tcl-core list.

--
See you,
Andreas Kupries <akup...@shaw.ca>
<http://core.tcl.tk/akupries/>
Developer @ SUSE (MicroFocus Canada LLC)
<andreas...@suse.com>

Tcl'2017, Oct 16-20, Houston, TX, USA. http://www.tcl.tk/community/tcl2017/
EuroTcl 2017, Jul 8-9, Berlin/DE, http://www.eurotcl.tcl3d.org/
-------------------------------------------------------------------------------
0 new messages