Skip to Content.
Sympa Menu

freetds - Re: [freetds] Re: 0.63 Release Candidate 10

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] Re: 0.63 Release Candidate 10
  • Date: Sat, 12 Feb 2005 15:25:51 +0100

Il giorno lun, 07-02-2005 alle 11:49 -0600, Jonathan Monroe ha scritto:
> On Feb 7, 2005, at 11:01 AM, Frediano ZIGLIO wrote:
>
> >> ODBC shared libraries gets the wrong name, *.so. Other shared
> >> libraries
> >> get the correct .dylib name.
> >
> > Before to say it's wrong it's best to try it... in 0.62 I changed from
> > .dylib to .so cause iODBC (bundled with Max OS X 10.2 if I remember)
> > refuse to load dylib but loads .so (don't ask me why...)
>
> The iODBC libraries shipped with Darwin / OS X will load either a
> .dylib or a .so (bundle). The loader checks the library type and then
> calls the correct loading routines. I mentioned in a previous post
> that Apple recommends that dylibs be built using "two level
> namespaces":
>
> https://lists.ibiblio.org/sympa/arc/freetds/2004q1/015609.html
>
> Since the same symbols (SQLAllocHandle, etc) appear in both the driver
> manager and the driver, the two level name space option ensures that
> the application keeps the symbols separate. There are situations where
> conflicts occur when the libraries are built with flat name spaces.
> I'm not sure if that's the problem you ran into - I can run the unit
> tests with the library built as either a dylib or a bundle.
>
> Jonathan
>

Let's remember a bit of story. Mac OS X had some problem with library
for some months we tried to fix it (trying changing libtool script with
patch or even libtool version). The main problem is that there were very
few tester... If we change a line and we have to wait for a week or two
this means that changing a line ten times require 2 months...
After some time someone reported problems with ODBC (driver not loaded).
Someone else report a link to Apple pages that tell that iODBC
implementation had problems... After some months we discovered that
using bundle instead of .dylib fix the issue. So we add -module to
Makefile.am and we had no more reports (happily). Some time ago we
discovered also that instead of upgrading libtool we could change link
script (and so we did... happily no reports). Your mail, if I remember
correctly, was in 0.62 RC phase so instead of trying to improve linking
we "ignore" (not correct term...) your mail. Now we are still in RC and
still this issue raise in a very bad period. As you say current scripts
work so for 0.63 they are fine.

You spot however two problems:
1) two level namespaces
2) module format

1) Probably the solution is to check is Mac OS X (which version provide
this option?)? and add -Wl,-twolevel_namespace to src/odbc/Makefile.am
2) still problem is version. Which version support correctly
loading .dylib??

All code I sent was from libtool output so another problem is: how
libtool behave using -Wl,-twolevel_namespace and not using -module under
Mac OS X ??

freddy77






Archive powered by MHonArc 2.6.24.

Top of Page