[blfs-dev] libiodbc overwrites files from unixODBC

Randy McMurchy randy at linuxfromscratch.org
Tue Feb 12 07:48:02 PST 2013

Armin K. wrote these words on 02/12/13 02:38 CST:
> There is none at the moment. All packages use pkg-config to get the 
> CFLAGS/LDFLAGS. Archlinux does that too - --includedir --disable-iodbc 
> and I appear to have used their instructions since nothing is 
> overwritten on my system.

Your suggestion works for the installation of libiodbc, thanks.

However, I am a bit confused with the installation of the Virtuoso package.
I am just now getting around to building KDE4 for the first time. Being one
who likes to know the internals of the packages, I am being careful with the
installation of the KDE packages. Now, back to Virtuoso.

Contrary to what you say, Virtuoso does not use pkg-config to find out the
location of the libiodbc headers. In fact, if you do not pass
--with-iodbc=/usr to configure, it uses an internal copy of the iodbc
headers located in the source tree. They probably do this because of the
conflict with the unixODBC headers.

Furthermore, once you pass --with-iodbc=/usr to configure, you can quickly
see that it tries to use headers located in /usr/include and libs located
in /usr/lib. So, I modified the one place in the configure script to add
/iodbc to the cppflags section of the iodbc headers. Everything worked fine
and the build was successful.

So, what this means is that Virtuoso by default uses its internal copy of
the headers (which are damn near exactly the same as the installed libiodbc
versions). So it really makes no difference in the build, and there are
only two packages (Soprano and Redland) that have Virtuoso listed as
dependencies. And Soprano uses Virtuoso only at run-time according to the

Here is what I see needs to happen in the book:

1) Add the stuff to libiodbc so that it doesn't conflict with unixODBC.

2) Change libiodbc from recommended to required in the Virtuoso instructions
as the build will fail if the libiodbc libraries are not installed.

3) (optional, as it appears it doesn't matter) Add a sed command to the
Virtuoso configure script to make it look in /usr/include/iodbc for the
interface headers instead of using the internal copies.

Can we agree on this?


rmlscsi: [bogomips 1003.23] [GNU ld version 2.16.1] [gcc (GCC) 4.0.3]
[GNU C Library stable release version 2.3.6] [Linux i686]
09:20:00 up 68 days, 19:19, 1 user, load average: 0.00, 0.00, 0.00

More information about the blfs-dev mailing list