Author: atanasyan Date: Wed Feb 25 22:45:57 2015 New Revision: 230611 URL: http://llvm.org/viewvc/llvm-project?rev=230611&view=rev Log: [Mips] Handle -mips32r[3|5] / -mips64r[3|5] options while selecting lib/headers paths
There is no supported toolchain which provides headers / libs / object files specific to the mips32r[3|5] and mips64r[3|5] ISA. So select "r2" specific folders when they are available. http://reviews.llvm.org/D7879 Modified: cfe/trunk/lib/Driver/ToolChains.cpp cfe/trunk/test/Driver/mips-fsf.cpp Modified: cfe/trunk/lib/Driver/ToolChains.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=230611&r1=230610&r2=230611&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains.cpp Wed Feb 25 22:45:57 2015 @@ -1783,10 +1783,13 @@ static bool findMIPSMultilibs(const llvm addMultilibFlag(isMips64(TargetArch), "m64", Flags); addMultilibFlag(isMips16(Args), "mips16", Flags); addMultilibFlag(CPUName == "mips32", "march=mips32", Flags); - addMultilibFlag(CPUName == "mips32r2", "march=mips32r2", Flags); + addMultilibFlag(CPUName == "mips32r2" || CPUName == "mips32r3" || + CPUName == "mips32r5", + "march=mips32r2", Flags); addMultilibFlag(CPUName == "mips32r6", "march=mips32r6", Flags); addMultilibFlag(CPUName == "mips64", "march=mips64", Flags); - addMultilibFlag(CPUName == "mips64r2" || CPUName == "octeon", + addMultilibFlag(CPUName == "mips64r2" || CPUName == "mips64r3" || + CPUName == "mips64r5" || CPUName == "octeon", "march=mips64r2", Flags); addMultilibFlag(isMicroMips(Args), "mmicromips", Flags); addMultilibFlag(tools::mips::isUCLibc(Args), "muclibc", Flags); Modified: cfe/trunk/test/Driver/mips-fsf.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/mips-fsf.cpp?rev=230611&r1=230610&r2=230611&view=diff ============================================================================== --- cfe/trunk/test/Driver/mips-fsf.cpp (original) +++ cfe/trunk/test/Driver/mips-fsf.cpp Wed Feb 25 22:45:57 2015 @@ -2699,3 +2699,113 @@ // CHECK-EL-NAN64-64R2-64-DEF: "-L[[TC]]/../../../../sysroot/mips64r2/64/el/nan2008/usr/lib" // CHECK-EL-NAN64-64R2-64-DEF: "[[TC]]/mips64r2/64/el/nan2008{{/|\\\\}}crtend.o" // CHECK-EL-NAN64-64R2-64-DEF: "[[TC]]/../../../../sysroot/mips64r2/64/el/nan2008/usr/lib{{/|\\\\}}crtn.o" +// +// Check that mips32r3 and mips32r5 are equal to mips32r2 +// +// = Big-endian, mips32r3, hard float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-linux-gnu -mips32r3 -mhard-float \ +// RUN: --gcc-toolchain=%S/Inputs/mips_fsf_tree \ +// RUN: | FileCheck --check-prefix=CHECK-BE-HF-32R3 %s +// CHECK-BE-HF-32R3: "-internal-isystem" +// CHECK-BE-HF-32R3: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.0]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0" +// CHECK-BE-HF-32R3: "-internal-isystem" +// CHECK-BE-HF-32R3: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu" +// CHECK-BE-HF-32R3: "-internal-isystem" +// CHECK-BE-HF-32R3: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/backward" +// CHECK-BE-HF-32R3: "-internal-externc-isystem" +// CHECK-BE-HF-32R3: "[[TC]]/include" +// CHECK-BE-HF-32R3: "-internal-externc-isystem" +// CHECK-BE-HF-32R3: "[[TC]]/../../../../sysroot/usr/include" +// CHECK-BE-HF-32R3: "{{.*}}ld{{(.exe)?}}" +// CHECK-BE-HF-32R3: "--sysroot=[[TC]]/../../../../sysroot" +// CHECK-BE-HF-32R3: "-dynamic-linker" "/lib/ld.so.1" +// CHECK-BE-HF-32R3: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crt1.o" +// CHECK-BE-HF-32R3: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crti.o" +// CHECK-BE-HF-32R3: "[[TC]]{{/|\\\\}}crtbegin.o" +// CHECK-BE-HF-32R3: "-L[[TC]]" +// CHECK-BE-HF-32R3: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/../lib" +// CHECK-BE-HF-32R3: "-L[[TC]]/../../../../sysroot/usr/lib/../lib" +// CHECK-BE-HF-32R3: "[[TC]]{{/|\\\\}}crtend.o" +// CHECK-BE-HF-32R3: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crtn.o" +// +// = Big-endian, mips32r5, hard float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-linux-gnu -mips32r5 -mhard-float \ +// RUN: --gcc-toolchain=%S/Inputs/mips_fsf_tree \ +// RUN: | FileCheck --check-prefix=CHECK-BE-HF-32R5 %s +// CHECK-BE-HF-32R5: "-internal-isystem" +// CHECK-BE-HF-32R5: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.0]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0" +// CHECK-BE-HF-32R5: "-internal-isystem" +// CHECK-BE-HF-32R5: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu" +// CHECK-BE-HF-32R5: "-internal-isystem" +// CHECK-BE-HF-32R5: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/backward" +// CHECK-BE-HF-32R5: "-internal-externc-isystem" +// CHECK-BE-HF-32R5: "[[TC]]/include" +// CHECK-BE-HF-32R5: "-internal-externc-isystem" +// CHECK-BE-HF-32R5: "[[TC]]/../../../../sysroot/usr/include" +// CHECK-BE-HF-32R5: "{{.*}}ld{{(.exe)?}}" +// CHECK-BE-HF-32R5: "--sysroot=[[TC]]/../../../../sysroot" +// CHECK-BE-HF-32R5: "-dynamic-linker" "/lib/ld.so.1" +// CHECK-BE-HF-32R5: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crt1.o" +// CHECK-BE-HF-32R5: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crti.o" +// CHECK-BE-HF-32R5: "[[TC]]{{/|\\\\}}crtbegin.o" +// CHECK-BE-HF-32R5: "-L[[TC]]" +// CHECK-BE-HF-32R5: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/../lib" +// CHECK-BE-HF-32R5: "-L[[TC]]/../../../../sysroot/usr/lib/../lib" +// CHECK-BE-HF-32R5: "[[TC]]{{/|\\\\}}crtend.o" +// CHECK-BE-HF-32R5: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crtn.o" +// +// = Big-endian, mips64r3, ABI 64, hard float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips64-linux-gnu -mips64r3 -mabi=64 -mhard-float \ +// RUN: --gcc-toolchain=%S/Inputs/mips_fsf_tree \ +// RUN: | FileCheck --check-prefix=CHECK-BE-HF-64R3-64 %s +// CHECK-BE-HF-64R3-64: "-internal-isystem" +// CHECK-BE-HF-64R3-64: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.0]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0" +// CHECK-BE-HF-64R3-64: "-internal-isystem" +// CHECK-BE-HF-64R3-64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64" +// CHECK-BE-HF-64R3-64: "-internal-isystem" +// CHECK-BE-HF-64R3-64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/backward" +// CHECK-BE-HF-64R3-64: "-internal-externc-isystem" +// CHECK-BE-HF-64R3-64: "[[TC]]/include" +// CHECK-BE-HF-64R3-64: "-internal-externc-isystem" +// CHECK-BE-HF-64R3-64: "[[TC]]/../../../../sysroot/usr/include" +// CHECK-BE-HF-64R3-64: "{{.*}}ld{{(.exe)?}}" +// CHECK-BE-HF-64R3-64: "--sysroot=[[TC]]/../../../../sysroot/mips64r2/64" +// CHECK-BE-HF-64R3-64: "-dynamic-linker" "/lib64/ld.so.1" +// CHECK-BE-HF-64R3-64: "[[TC]]/../../../../sysroot/mips64r2/64/usr/lib{{/|\\\\}}crt1.o" +// CHECK-BE-HF-64R3-64: "[[TC]]/../../../../sysroot/mips64r2/64/usr/lib{{/|\\\\}}crti.o" +// CHECK-BE-HF-64R3-64: "[[TC]]/mips64r2/64{{/|\\\\}}crtbegin.o" +// CHECK-BE-HF-64R3-64: "-L[[TC]]/mips64r2/64" +// CHECK-BE-HF-64R3-64: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips64r2/64" +// CHECK-BE-HF-64R3-64: "-L[[TC]]/../../../../sysroot/mips64r2/64/usr/lib" +// CHECK-BE-HF-64R3-64: "[[TC]]/mips64r2/64{{/|\\\\}}crtend.o" +// CHECK-BE-HF-64R3-64: "[[TC]]/../../../../sysroot/mips64r2/64/usr/lib{{/|\\\\}}crtn.o" +// +// = Big-endian, mips64r5, ABI 64, hard float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips64-linux-gnu -mips64r5 -mabi=64 -mhard-float \ +// RUN: --gcc-toolchain=%S/Inputs/mips_fsf_tree \ +// RUN: | FileCheck --check-prefix=CHECK-BE-HF-64R5-64 %s +// CHECK-BE-HF-64R5-64: "-internal-isystem" +// CHECK-BE-HF-64R5-64: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.0]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0" +// CHECK-BE-HF-64R5-64: "-internal-isystem" +// CHECK-BE-HF-64R5-64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64" +// CHECK-BE-HF-64R5-64: "-internal-isystem" +// CHECK-BE-HF-64R5-64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.0/backward" +// CHECK-BE-HF-64R5-64: "-internal-externc-isystem" +// CHECK-BE-HF-64R5-64: "[[TC]]/include" +// CHECK-BE-HF-64R5-64: "-internal-externc-isystem" +// CHECK-BE-HF-64R5-64: "[[TC]]/../../../../sysroot/usr/include" +// CHECK-BE-HF-64R5-64: "{{.*}}ld{{(.exe)?}}" +// CHECK-BE-HF-64R5-64: "--sysroot=[[TC]]/../../../../sysroot/mips64r2/64" +// CHECK-BE-HF-64R5-64: "-dynamic-linker" "/lib64/ld.so.1" +// CHECK-BE-HF-64R5-64: "[[TC]]/../../../../sysroot/mips64r2/64/usr/lib{{/|\\\\}}crt1.o" +// CHECK-BE-HF-64R5-64: "[[TC]]/../../../../sysroot/mips64r2/64/usr/lib{{/|\\\\}}crti.o" +// CHECK-BE-HF-64R5-64: "[[TC]]/mips64r2/64{{/|\\\\}}crtbegin.o" +// CHECK-BE-HF-64R5-64: "-L[[TC]]/mips64r2/64" +// CHECK-BE-HF-64R5-64: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips64r2/64" +// CHECK-BE-HF-64R5-64: "-L[[TC]]/../../../../sysroot/mips64r2/64/usr/lib" +// CHECK-BE-HF-64R5-64: "[[TC]]/mips64r2/64{{/|\\\\}}crtend.o" +// CHECK-BE-HF-64R5-64: "[[TC]]/../../../../sysroot/mips64r2/64/usr/lib{{/|\\\\}}crtn.o" _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
