Skip to Content.
Sympa Menu

freetds - Re: [freetds] replacement iconv

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT schemamania.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] replacement iconv
  • Date: Sat, 13 Dec 2003 14:08:58 -0500

On 13 Dec 2003, Frediano Ziglio <freddyz77 AT tin.it> wrote:
> Il sab, 2003-12-13 alle 09:38, James K. Lowden ha scritto:
> >
> > I don't anticipate linking in our iconv *and* a system iconv, so I
> > don't see a reason to have two sets of names.
>
> Assume your system have iconv in libc but you don't want to use this
> version. You configure FreeTDS with --disable-libiconv. A program load
> libc and FreeTDS. Now you have two iconv versions. Which iconv version
> does another library loaded after FreeTDS one use?

Assume your system has iconv in libc but you don't want to use this
version. You configure FreeTDS with
--with-libiconv-prefix=/usr/local/iconv. Which iconv version
does another library loaded after FreeTDS one use?

Answer: The first one in the link list. You can override anything in
libc by inserting the object file (or archive) in the command line when
linking the executable. Because libc is always linked in last, its
objects are always precluded by higher-priority, same-name objects within
the project.

AFAIK, all linkers work this way, else it's impossible to override the
behavior of any function in any library.

I understand that using different names prevents accidentally linking in
the wrong iconv functions. OTOH, any time we use preprocessor magic, we
make understanding our work just that much harder. I'm not sure what the
best answer is.

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page