Discussion:
lib64 and --disable-multilib
Shaun Jackman
2014-09-09 17:57:22 UTC
Permalink
Hi. I compiled gcc with --disable-multilib on an x86-64 system and
expected GCC libraries to be installed in $prefix/lib, but found them
instead installed in $prefix/lib64. Is there a configure option to
override this behaviour and install libraries in $prefix/lib? If not,
should simply moving the libraries to $prefix/lib work?

Cheers,
Shaun

http://sjackman.ca
Andrew Haley
2014-09-09 18:10:21 UTC
Permalink
Post by Shaun Jackman
Hi. I compiled gcc with --disable-multilib on an x86-64 system and
expected GCC libraries to be installed in $prefix/lib, but found them
instead installed in $prefix/lib64.
That's right: it's the standard place for 64-bit x86-64 libraries.
Post by Shaun Jackman
Is there a configure option to
override this behaviour and install libraries in $prefix/lib? If not,
should simply moving the libraries to $prefix/lib work?
Umm, why would you want to?

Andrew.
Shaun Jackman
2014-09-09 20:04:10 UTC
Permalink
Post by Andrew Haley
Post by Shaun Jackman
Hi. I compiled gcc with --disable-multilib on an x86-64 system and
expected GCC libraries to be installed in $prefix/lib, but found them
instead installed in $prefix/lib64.
That's right: it's the standard place for 64-bit x86-64 libraries.
Post by Shaun Jackman
Is there a configure option to
override this behaviour and install libraries in $prefix/lib? If not,
should simply moving the libraries to $prefix/lib work?
Umm, why would you want to?
Hi, Andrew.

I understand lib64 has a vital purpose on a multilib system. On a
non-multilib system, it seems odd to me to have a populated lib64
directory and an empty lib directory. It's tidier (in my opinion) to
just name the directory lib.

Most open-source software after `./configure && make install` install
libraries into $prefix/lib, not $prefix/lib64. I installed 139 open
source packages on this system, and only four packages installed
libraries in lib64: gcc, git, libffi and r. To have a system with a
consistent directory structure, I'd rather modify those four packages
that use lib64 to use lib, rather than modify 135 packages to use
lib64.

Cheers,
Shaun
Aaro Koskinen
2014-09-09 20:56:45 UTC
Permalink
Hi,
Post by Shaun Jackman
Most open-source software after `./configure && make install` install
libraries into $prefix/lib, not $prefix/lib64. I installed 139 open
source packages on this system, and only four packages installed
libraries in lib64: gcc, git, libffi and r. To have a system with a
consistent directory structure, I'd rather modify those four packages
that use lib64 to use lib, rather than modify 135 packages to use
lib64.
You can pass --libdir to configure; you don't need to modify the packages.

A.
Andrew Haley
2014-09-10 08:12:19 UTC
Permalink
Hi,
Post by Shaun Jackman
Post by Andrew Haley
Post by Shaun Jackman
Hi. I compiled gcc with --disable-multilib on an x86-64 system and
expected GCC libraries to be installed in $prefix/lib, but found them
instead installed in $prefix/lib64.
That's right: it's the standard place for 64-bit x86-64 libraries.
Post by Shaun Jackman
Is there a configure option to
override this behaviour and install libraries in $prefix/lib? If not,
should simply moving the libraries to $prefix/lib work?
I understand lib64 has a vital purpose on a multilib system. On a
non-multilib system, it seems odd to me to have a populated lib64
directory and an empty lib directory. It's tidier (in my opinion) to
just name the directory lib.
Sure, but it's nonstandard. You should just do what Debian do, and
symlink lib and lib64.
Post by Shaun Jackman
Most open-source software after `./configure && make install` install
libraries into $prefix/lib, not $prefix/lib64. I installed 139 open
source packages on this system, and only four packages installed
libraries in lib64: gcc, git, libffi and r.
Well, those packages are broken. I'm surprised that there are so many
packages out there which still haven't been fixed. Standards exist
for a reason.

Andrew.
Jędrzej Dudkiewicz
2014-09-10 11:14:54 UTC
Permalink
Post by Andrew Haley
Hi,
Post by Shaun Jackman
I understand lib64 has a vital purpose on a multilib system. On a
non-multilib system, it seems odd to me to have a populated lib64
directory and an empty lib directory. It's tidier (in my opinion) to
just name the directory lib.
Sure, but it's nonstandard. You should just do what Debian do, and
symlink lib and lib64.
Isn't each and every system potentially a multilib one? There are
commercial solutions (I worked on one not so long ago) providing only
32-bit versions of software where providing 64-bit is for some reason
not possible at the moment (we were forced to provide 32-bit binary
due to difficulties with one of external libraries - it was quite big,
we had no way to replace it and 64-bit version is "right around the
corner" for a few years now). This means that at some point one might
be forced to install 32-bit libc and so on.
--
Jędrzej Dudkiewicz

I really hate this damn machine, I wish that they would sell it.
It never does just what I want, but only what I tell it.
Marc Glisse
2014-09-10 11:28:01 UTC
Permalink
You should just do what Debian do, and symlink lib and lib64.
That's probably the simplest solution in this case, but note that Debian
does not do that. I have 4 distinct directories /lib, /lib64, /usr/lib and
/usr/lib64 here (the last one is almost empty) and no /usr/local/lib64.
--
Marc Glisse
Andrew Haley
2014-09-10 12:02:05 UTC
Permalink
Post by Marc Glisse
You should just do what Debian do, and symlink lib and lib64.
That's probably the simplest solution in this case, but note that Debian
does not do that. I have 4 distinct directories /lib, /lib64, /usr/lib and
/usr/lib64 here (the last one is almost empty) and no /usr/local/lib64.
I think it depends on the Debian system in question. Debian certainly
used to have a 64-bit system with libraries in /lib. Or maybe that was
Ubuntu? Anyway, that's what they did.

Andrew.

Loading...