The actual error reported to us was:
0509-150 Dependent module /usr/local/easysoft/unixODBC/lib/libodbc.a(odbc.so) could not be loaded.
and this is an AIX-specific issue.
At various stages in unixODBC's history, libtool
(used to create unixODBC shared objects) has created:
libodbc.a(libodbc.so)
libodbc.a(libodbc.so.1)
Applications linked against the library are dependent on the name of the archive (libodbc.a
) and the name of the object inside it. For example, running dump -H
on unixODBC's isql
might display:
INDEX PATH BASE MEMBER 3 libodbc.a libodbc.so.1
Applications such as Informatica, UniVerse, and UniData have a dependency on libodbc.a(odbc.so)
. To ensure isql
(and any other applications built against unixODBC) continue to function alongside Informatica, UniVerse, UniData, and so on, you need to extract the current object from libodbc.a
, rename it, and then add it back to the archive. For example:
$ cd /usr/local/easysoft/unixODBC/lib $ ar -X32_64 -tv libodbc.a rwxr-xr-x 201/1 698963 Oct 04 11:21 2004 libodbc.so.1 $ ar -X32_64 -xv libodbc.a x - libodbc.so.1 $ mv libodbc.so.1 odbc.so $ ar -X32_64 -rv libodbc.a odbc.so a - odbc.so