[llvm-commits] [llvm-gcc-4.2] r63427 - in /llvm-gcc-4.2/trunk: README.LLVM gcc/config/i386/t-linux64 gcc/config/rs6000/t-linux64

Anton Korobeynikov asl at math.spbu.ru
Fri Jan 30 13:50:26 PST 2009


Author: asl
Date: Fri Jan 30 15:50:25 2009
New Revision: 63427

URL: http://llvm.org/viewvc/llvm-project?rev=63427&view=rev
Log:
Make selection of library dir layout automatically during configure
(afair, patch provided by Andrew Pinski).

Drop the chunk from the documentation about manual layout selection.

Modified:
    llvm-gcc-4.2/trunk/README.LLVM
    llvm-gcc-4.2/trunk/gcc/config/i386/t-linux64
    llvm-gcc-4.2/trunk/gcc/config/rs6000/t-linux64

Modified: llvm-gcc-4.2/trunk/README.LLVM
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/README.LLVM?rev=63427&r1=63426&r2=63427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/README.LLVM (original)
+++ llvm-gcc-4.2/trunk/README.LLVM Fri Jan 30 15:50:25 2009
@@ -57,41 +57,6 @@
 //===-----------------------
 X86-64/AMD-64/EM64-T for any OS other than Darwin/Mac OS X:
 
-If you want to build multilib-enabled llvm-gcc (so, it will be able to generate
-32 and 64 bit executables) you need to consider your system default lib directory
-layout. 
-
-Usually, your system uses one of these layouts:
-
-I. /usr/lib    => 32 bit libraries (also in /usr/lib32)
-   /usr/lib64  => 64 bit libraries
-
-You're lucky and don't need to do anything, just proceed to usual configure
-steps.
-
-II. /usr/lib   => 64 bit libraries (also in /usr/lib64)
-    /usr/lib32 => 32 bit libraries
-
-You need to apply the following patch:
-
-<==cut==>
---- gcc/config/i386/t-linux64
-+++ gcc/config/i386/t-linux64
-@@ -6,7 +6,7 @@ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
- 
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32 
--MULTILIB_OSDIRNAMES = ../lib64 ../lib
-+MULTILIB_OSDIRNAMES = ../lib64 ../lib32
- 
- LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
-<==cut==>
-
-Note, that usually you don't notice such patching with your native gcc, since
-it's done automatically by your favourite system package manager. Maybe we'll
-add some layout detection routine in the future.
-
 If you want just pure 64 bit compiler, configure with --disable-multilib.
 
 //===-----------------------

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/t-linux64
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/t-linux64?rev=63427&r1=63426&r2=63427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/t-linux64 (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/t-linux64 Fri Jan 30 15:50:25 2009
@@ -4,9 +4,16 @@
 SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
 		 $(srcdir)/config/i386/libgcc-x86_64-glibc.ver
 
+# On Debian, Ubuntu and other derivitive distributions, the 32bit libraries
+# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to
+# /lib and /usr/lib, while other distributions install libraries into /lib64
+# and /usr/lib64.  The LSB does not enforce the use of /lib64 and /usr/lib64,
+# it doesn't tell anything about the 32bit libraries on those systems.  Set
+# MULTILIB_OSDIRNAMES according to what is found on the target.
+
 MULTILIB_OPTIONS = m64/m32
 MULTILIB_DIRNAMES = 64 32 
-MULTILIB_OSDIRNAMES = ../lib64 ../lib
+MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
 
 LIBGCC = stmp-multilib
 INSTALL_LIBGCC = install-multilib

Modified: llvm-gcc-4.2/trunk/gcc/config/rs6000/t-linux64
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/rs6000/t-linux64?rev=63427&r1=63426&r2=63427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/rs6000/t-linux64 (original)
+++ llvm-gcc-4.2/trunk/gcc/config/rs6000/t-linux64 Fri Jan 30 15:50:25 2009
@@ -7,12 +7,19 @@
 
 TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
 
+# On Debian, Ubuntu and other derivitive distributions, the 32bit libraries
+# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to
+# /lib and /usr/lib, while other distributions install libraries into /lib64
+# and /usr/lib64.  The LSB does not enforce the use of /lib64 and /usr/lib64,
+# it doesn't tell anything about the 32bit libraries on those systems.  Set
+# MULTILIB_OSDIRNAMES according to what is found on the target.
+
 MULTILIB_OPTIONS        = m64/m32 msoft-float
 MULTILIB_DIRNAMES       = 64 32 nof
 MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
 MULTILIB_EXCEPTIONS     = m64/msoft-float
 MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
-MULTILIB_OSDIRNAMES	= ../lib64 ../lib nof
+MULTILIB_OSDIRNAMES	= ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
 MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
 
 softfp_wrap_start := '\#ifndef __powerpc64__'





More information about the llvm-commits mailing list