changeset 30842:8745f743ea71

Document the complications of bi-arch systems.
author Bruno Haible <bruno@clisp.org>
date Mon, 09 Feb 2009 11:54:37 +0100
parents 3c7f62e0a64f
children 6cad807f8b98
files ChangeLog doc/havelib.texi
diffstat 2 files changed, 43 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Feb 09 01:29:54 2009 +0100
+++ b/ChangeLog	Mon Feb 09 11:54:37 2009 +0100
@@ -1,3 +1,7 @@
+2009-02-09  Bruno Haible  <bruno@clisp.org>
+
+	* doc/havelib.texi: Document the conventions on bi-arch systems.
+
 2009-02-08  Bruno Haible  <bruno@clisp.org>
 
 	Document the AC_LIB_LINKFLAGS macro.
--- a/doc/havelib.texi	Mon Feb 09 01:29:54 2009 +0100
+++ b/doc/havelib.texi	Mon Feb 09 11:54:37 2009 +0100
@@ -165,3 +165,42 @@
 @smallexample
   AC_TRY_RUN([int main () @{ return lib@var{name}_version != LIB@var{NAME}_VERSION; @}])
 @end smallexample
+
+@unnumberedsubsubsec Bi-arch systems
+
+A bi-arch system is one where
+@itemize
+@item
+the processor has a 32-bit execution mode and a 64-bit execution mode
+(for example, x86_64, ia64, sparc64, powerpc64), and
+@item
+32-bit mode libraries and executables and 64-bit mode libraries are both
+installed, and
+@item
+32-bit mode libraries and object files cannot be mixed with 64-bit mode
+ones.
+@end itemize
+
+On several types of such systems, for historical reasons, the 32-bit libraries
+are installed in @file{@var{prefix}/lib}, whereas the 64-bit libraries are
+installed in
+@itemize
+@item
+@file{@var{prefix}/lib64} on many glibc systems,
+@item
+@file{@var{prefix}/lib/64} on Solaris systems.
+@end itemize
+
+On such systems, in 64-bit mode, @command{configure} will search for the
+libraries in @file{@var{prefix}/lib64} or @file{@var{prefix}/lib/64},
+respectively, not in @file{@var{prefix}/lib}.  A user can adhere to these
+system-wide conventions by using the @samp{--libdir} option when installing
+packages.  When a user has already installed packages in 64-bit mode using
+the GNU default @samp{--libdir=@var{prefix}/lib}, he can make this directory
+adhere to the system-wide convention by placing a symbolic link:
+@table @asis
+@item On glibc systems:
+@code{ln -s lib @var{prefix}/lib64}
+@item On Solaris systems:
+@code{ln -s . @var{prefix}/lib/64}
+@end table