[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