strange install directory

Niels Möller nisse at lysator.liu.se
Fri Feb 26 18:20:45 UTC 2021


Paul Zimmermann <Paul.Zimmermann at inria.fr> writes:

> on the gcc118 machine from the gcc compile farm, with gmp-6.2.1, make install
> puts the libgmp.{a,so} files in $PREFIX/lib64 instead of $PREFIX/lib. Is there
> any reason for that?

I don't know about GMP (and this is the first time I hear about
automake's genered install target using a different default than
libdir=${exec_prefix}/lib). Maybe a recent change in autoconf, automake,
(or possibly libtool)? But I've been doing somethignsimilar in Nettle
for years, and the problem case I want to avoid is this:

1. Assume we have a libfoo.so installed in /usr/local/lib, and that this
   is a the directory for 32-bit libraries.

2. User now builds and installs a new version of libfoo.so, for 64-bit
   abi, with default prefix. Say, "./configure CC='gcc -m64' && make &&
   make check && make install". If make install installs in
   /usr/local/lib, it will overwrite a working .so file with a new one
   completely breaking 32-bit programs on the system that depend on that
   32-bit library.

To avoid this kind of breakage one can apply some heuristics to tweak
the default location, depending on the api built for, OS flavor, current
structure under /usr/lib*, etc.

Does it work to override it by explicitly passing --libdir=$PREFIX/lib?

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677.
Internet email is subject to wholesale government surveillance.


More information about the gmp-devel mailing list