On Thu, Apr 26, 2012 at 12:57 PM, Simon Atanasyan <[email protected]>wrote:
> Author: atanasyan > Date: Thu Apr 26 14:57:02 2012 > New Revision: 155656 > > URL: http://llvm.org/viewvc/llvm-project?rev=155656&view=rev > Log: > MIPS: Add support for 64-bit MIPS targets: mips64 / mips64el. > Very cool! > > Modified: > cfe/trunk/lib/Driver/ToolChains.cpp > cfe/trunk/test/Driver/linux-ld.c > > Modified: cfe/trunk/lib/Driver/ToolChains.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=155656&r1=155655&r2=155656&view=diff > > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains.cpp Thu Apr 26 14:57:02 2012 > @@ -1218,6 +1218,11 @@ > static const char *const MIPSELLibDirs[] = { "/lib" }; > static const char *const MIPSELTriples[] = { "mipsel-linux-gnu" }; > > + static const char *const MIPS64LibDirs[] = { "/lib64", "/lib" }; > + static const char *const MIPS64Triples[] = { "mips64-linux-gnu" }; > + static const char *const MIPS64ELLibDirs[] = { "/lib64", "/lib" }; > + static const char *const MIPS64ELTriples[] = { "mips64el-linux-gnu" }; > + > static const char *const PPCLibDirs[] = { "/lib32", "/lib" }; > static const char *const PPCTriples[] = { > "powerpc-linux-gnu", > @@ -1263,12 +1268,40 @@ > MIPSLibDirs, MIPSLibDirs + llvm::array_lengthof(MIPSLibDirs)); > TripleAliases.append( > MIPSTriples, MIPSTriples + llvm::array_lengthof(MIPSTriples)); > + MultiarchLibDirs.append( > + MIPS64LibDirs, MIPS64LibDirs + llvm::array_lengthof(MIPS64LibDirs)); > + MultiarchTripleAliases.append( > + MIPS64Triples, MIPS64Triples + llvm::array_lengthof(MIPS64Triples)); > break; > case llvm::Triple::mipsel: > LibDirs.append( > MIPSELLibDirs, MIPSELLibDirs + llvm::array_lengthof(MIPSELLibDirs)); > TripleAliases.append( > MIPSELTriples, MIPSELTriples + llvm::array_lengthof(MIPSELTriples)); > + MultiarchLibDirs.append( > + MIPS64ELLibDirs, MIPS64ELLibDirs + > llvm::array_lengthof(MIPS64ELLibDirs)); > + MultiarchTripleAliases.append( > + MIPS64ELTriples, MIPS64ELTriples + > llvm::array_lengthof(MIPS64ELTriples)); > + break; > + case llvm::Triple::mips64: > + LibDirs.append( > + MIPS64LibDirs, MIPS64LibDirs + llvm::array_lengthof(MIPS64LibDirs)); > + TripleAliases.append( > + MIPS64Triples, MIPS64Triples + llvm::array_lengthof(MIPS64Triples)); > + MultiarchLibDirs.append( > + MIPSLibDirs, MIPSLibDirs + llvm::array_lengthof(MIPSLibDirs)); > + MultiarchTripleAliases.append( > + MIPSTriples, MIPSTriples + llvm::array_lengthof(MIPSTriples)); > + break; > + case llvm::Triple::mips64el: > + LibDirs.append( > + MIPS64ELLibDirs, MIPS64ELLibDirs + > llvm::array_lengthof(MIPS64ELLibDirs)); > + TripleAliases.append( > + MIPS64ELTriples, MIPS64ELTriples + > llvm::array_lengthof(MIPS64ELTriples)); > + MultiarchLibDirs.append( > + MIPSELLibDirs, MIPSELLibDirs + llvm::array_lengthof(MIPSELLibDirs)); > + MultiarchTripleAliases.append( > + MIPSELTriples, MIPSELTriples + llvm::array_lengthof(MIPSELTriples)); > break; > case llvm::Triple::ppc: > LibDirs.append(PPCLibDirs, PPCLibDirs + > llvm::array_lengthof(PPCLibDirs)); > @@ -1350,7 +1383,9 @@ > // crtbegin.o without the subdirectory. > StringRef MultiarchSuffix > = (TargetArch == llvm::Triple::x86_64 || > - TargetArch == llvm::Triple::ppc64) ? "/64" : "/32"; > + TargetArch == llvm::Triple::ppc64 || > + TargetArch == llvm::Triple::mips64 || > + TargetArch == llvm::Triple::mips64el) ? "/64" : "/32"; > if (llvm::sys::fs::exists(LI->path() + MultiarchSuffix + > "/crtbegin.o")) { > GCCMultiarchSuffix = MultiarchSuffix.str(); > } else { > > Modified: cfe/trunk/test/Driver/linux-ld.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/linux-ld.c?rev=155656&r1=155655&r2=155656&view=diff > > ============================================================================== > --- cfe/trunk/test/Driver/linux-ld.c (original) > +++ cfe/trunk/test/Driver/linux-ld.c Thu Apr 26 14:57:02 2012 > @@ -291,6 +291,28 @@ > // CHECK-DEBIAN-MIPSEL: > "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." > // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib" > // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib" > +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ > +// RUN: -target mips64-linux-gnu \ > +// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ > +// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s > +// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" > "--sysroot=[[SYSROOT:[^"]+]]" > +// CHECK-DEBIAN-MIPS64: > "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64/crtbegin.o" > +// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64" > +// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" > +// CHECK-DEBIAN-MIPS64: > "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." > +// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib" > +// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib" > +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ > +// RUN: -target mips64el-linux-gnu \ > +// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ > +// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s > +// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" > "--sysroot=[[SYSROOT:[^"]+]]" > +// CHECK-DEBIAN-MIPS64EL: > "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64/crtbegin.o" > +// CHECK-DEBIAN-MIPS64EL: > "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64" > +// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" > +// CHECK-DEBIAN-MIPS64EL: > "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." > +// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib" > +// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib" Please add a multilib tree and test against that as well.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
