Author Message
JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline

Current versions (minimally up through Release 6.1 and perhaps beyond) of the TSAPI Linux Client libraries (libcsta.so and libattpriv.so) improperly export symbols that are not part of the Telephony Services API. For example, the shared object file libcsta.so is statically linked with liblog4cxx.a, libapr-1.a, and libaprutil-1.a, and the symbols from all three of these libraries are exported. If your application references symbols from any of these libraries, then depending upon how your application was linked, the linker may resolve those symbols to libcsta.so instead of the libraries where the symbols are actually defined. This creates two possible problems for your application:

1.   The symbols that are improperly exported by current versions of the TSAPI Linux Client libraries may not be exported by future versions of the libraries. Although your application may work fine with current versions of the TSAPI Linux Client libraries, users may experience symbol lookup errors for unresolved symbols when trying to run your application with future versions of the TSAPI Linux Client libraries.

2.   The symbols that are improperly exported by current versions of the TSAPI Linux Client libraries may be incompatible with symbols that are resolved at run time, causing your application to crash.

To avoid these problems, developers of TSAPI applications for Linux are urged to adhere to the following guidelines:

--   When linking your application, always use the -l option to explicitly identify all of the libraries used by your application.

--   When linking your application, place the command-line options for the TSAPI Linux Client libraries (-lcsta and -lattpriv) *after* the command-line options for any other libraries. This will ensure that the linker resolves any symbols improperly exported by the TSAPI Client libraries to the libraries where they are actually defined.

For example, use:

g++ -o myapp -I/usr/include/nts myapp.cpp \
-llog4cxx -lapr-1 -laprutil-1 -lcsta -lattpriv

NOT:

g++ -o myapp -I/usr/include/nts myapp.cpp \
-lcsta -lattpriv -llog4cxx -lapr-1 -laprutil-1

BrentBailey2
Joined: Mar 27, 2006
Messages: 1
Offline
Thank you for the info! You do an incredible job at keeping this forum up to date. It is really appreciated.
Go to:   
Mobile view