From: <iod...@li...> - 2004-06-30 13:15:22
|
Hi Idar, > What does "file /usr/local/lib/libmyodbc3.sl" give you? > > An example from my 10.20 box gives; > file /usr/local/libz.sl > libz.sl: PA-RISC1.1 shared library -not stripped > > > And here's a relevant capture of /usr/local/lib: > > > > # ls -la /usr/local/lib > > ... > > -rw-r--r-- 1 root sys 927386 Jun 28 15:21 libiodbc.a > > -rw-r--r-- 1 root sys 668 Jun 28 15:21 libiodbc.la > > -r-xr-xr-x 3 root sys 501992 Jun 28 15:21 libiodbc.sl > > -r-xr-xr-x 3 root sys 501992 Jun 28 15:21 libiodbc.sl.3 > > -r-xr-xr-x 3 root sys 501992 Jun 28 15:21 > libiodbc.sl.3.8 > > -rwxr-xr-x 1 root sys 229376 Jun 28 15:06 > libmyodbc3-3.51.06.sl > > -rw-r--r-- 1 root sys 360164 Jun 28 15:06 libmyodbc3.a > > -rw-r--r-- 1 root sys 885 Jun 28 15:06 libmyodbc3.la > > -rw-r--r-- 1 root sys 877 Jun 28 15:06 libmyodbc3.lai > > -rwxr-xr-x 1 root sys 229376 Jun 28 15:06 libmyodbc3.sl > > -rwxr-xr-x 1 root sys 229376 Jun 28 15:06 > >libmyodbc3_r-3.51.06.sl > > -rw-r--r-- 1 root sys 360344 Jun 28 15:06 libmyodbc3_r.a > > -rw-r--r-- 1 root sys 826 Jun 28 15:06 > libmyodbc3_r.la > > -rw-r--r-- 1 root sys 827 Jun 28 15:06 > libmyodbc3_r.lai > > -rwxr-xr-x 1 root sys 229376 Jun 28 15:06 > libmyodbc3_r.sl > >... > > I just noticed something else. > > First; shouldn't iODBC have installed libiodbc.sl and libiodbc.sl.3 as > symlinks to libiodbc.sl.3.8? If you look at the ls -l output, you can see that these libraries are hard linked instead of symlinked. I believe this is a problem of the tar program used to package the precompiled archive. > The same question goes for the MyODBC libraries, but here it has > additionally put the version number in front of the ".sl" extension. The > norm is to have the version after the ".sl" extension, as iODBC has > done...? No, there is a difference in version numbers between shared libraries (like the iODBC driver manager) and shared loadable object modules (like the myodbc driver). I do not want to go into too much detail on the various library version formats used on Unix, but the short of it is this: Libraries use .sl.current.age.revision format as the real library with a .sl and a .sl.current symlink to use for the runtime. The current, revision and age numbers denote the API state. Different Unix releases (and different packages) sometimes have their own ideas of library versions, but to get a good idea of proper library versioning i recommend reading the libtool.info file from the GNU libtool package on Library Versioning. This is what most OpenSource packages (including iODBC) use. Loadable modules are normally just referenced as .sl files without noting their API state. Instead they are either version less, or have a version number based on the package they where build from. In the case of MyODBC, they where build from the MyODBC-3.51.06.tar.gz package. This is why the myodbc driver is called myodbc-version.sl Hope this clarifies your questions. Best regards, Patrick -- Patrick van Kleef Email : io...@op... Maintainer iODBC Web : http://www.iodbc.org/ OpenLink Software Universal Data Access & Data Integration Technology Providers |