Skip to Content.
Sympa Menu

freetds - Re: [freetds] "libtdsodbc.so" vs "libtdsodbc.so.0" ??????

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frediano Ziglio <freddyz77 AT tin.it>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] "libtdsodbc.so" vs "libtdsodbc.so.0" ??????
  • Date: Fri, 01 Apr 2005 20:31:15 +0200

Il giorno ven, 01-04-2005 alle 10:01 -0800, David Vaughan ha scritto:
> What is the difference? I could not find the ".so" for my version of FreeTDS
> (installed the freetds-0.62-4-1.i386.rpm), but did find a mandrake rpm that
> did not fail the dependancy check (freetds-unixodbc-0.62.4-2mdk.i586.rpm)
> but it was the ".so.0" version. It seems to have worked, but some of my SQL
> queries fail and others are just fine. These are the same queries we use on
> our current webserver box (Mandrake 8) and they all work perfectly fine. We
> are in the process of moving our webserver to this new Fedora box.
>
> Any thoughts on why SOME of these queries would fail on the Fedora box
> (keeping in mind all these queries work fine on our current webserver)? I
> would think it would be an all or nothing thing, especially since I know all
> the queries work fine. Would it have anything to do with me using this
> ".so.0" version? Perhaps it's something in my php.ini (4.3.1 version) file,
> but not sure what.
>

Mmm... the .0 at end is library compatibility version... It works so.
Assume you have library foo version 0.1.0 (this do not mean that project
is version 0.1.0!!!). Usually you get 3 files
1) libfoo.so.0.1.0
2) libfoo.so.0
3) libfoo.so
libfoo.so.0 is the compatibility name. If you add some feature and/or
fix some bugs (nor causing incompatibility) you can release version
0.2.0 now all programs that used libfoo.0 now will use libfoo.0.2.0.
libfoo.so is the developer name. When you link a program linker search
for libfoo.so but use internally compatibility name (in this case
libfoo.so.0).
This is designed cause if you install foo version 1.0.0 (which is not
binary compatible!!!) in your system you will have
libfoo.so.0.2.0
libfoo.so.0
libfoo.so.1.0.0
libfoo.so.1
libfoo.so
now libfoo.so (a link, not a standard file) should point to libfoo.so.1.
Now former program still use libfoo.so.0.2.0 while if you build new
programs you will use libfoo.so.1.0.0.

Specifically all FreeTDS ODBC driver versions are compatible that is new
versions only add functions and older one behave like before.

Honesty I don't know why under Mandrake is working (if I understand you
are not sure which version are you using under former server). Try to
post your query. I suggest you to install new 0.63 version on new
machine. Is not hard to compile. Install unixODBC-devel and issue
rpmbuild -ta freetds-0.63.tar.gz
you will get a freetds-unixodbc package that you can install alone (it
do not require freetds package).
If you have a Intel machine I can provide you a compiled package (I have
access to all fedora releases).

freddy77






Archive powered by MHonArc 2.6.24.

Top of Page