From 27fd355d250c21577c7c8fe2c514c2c55e774136 Mon Sep 17 00:00:00 2001 From: Simon Atanasyan Date: Sun, 22 May 2016 18:18:07 +0000 Subject: [PATCH] [driver][mips] Support new versions of MIPS CodeScape toolchains git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270373 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Driver/Multilib.h | 7 + lib/Driver/ToolChains.cpp | 179 +++++++- test/Driver/Inputs/mips_img_v2_tree/bin/.keep | 0 .../mips-img-linux-gnu/4.9.2/include/.keep | 0 .../4.9.2/micromips-r6-hard/lib/crtbegin.o | 0 .../4.9.2/micromips-r6-hard/lib/crtend.o | 0 .../4.9.2/micromips-r6-soft/lib/crtbegin.o | 0 .../4.9.2/micromips-r6-soft/lib/crtend.o | 0 .../4.9.2/micromipsel-r6-hard/lib/crtbegin.o | 0 .../4.9.2/micromipsel-r6-hard/lib/crtend.o | 0 .../4.9.2/micromipsel-r6-soft/lib/crtbegin.o | 0 .../4.9.2/micromipsel-r6-soft/lib/crtend.o | 0 .../4.9.2/mips-r6-hard/lib/crtbegin.o | 0 .../4.9.2/mips-r6-hard/lib/crtend.o | 0 .../4.9.2/mips-r6-hard/lib32/crtbegin.o | 0 .../4.9.2/mips-r6-hard/lib32/crtend.o | 0 .../4.9.2/mips-r6-hard/lib64/crtbegin.o | 0 .../4.9.2/mips-r6-hard/lib64/crtend.o | 0 .../4.9.2/mips-r6-soft/lib/crtbegin.o | 0 .../4.9.2/mips-r6-soft/lib/crtend.o | 0 .../4.9.2/mipsel-r6-hard/lib/crtbegin.o | 0 .../4.9.2/mipsel-r6-hard/lib/crtend.o | 0 .../4.9.2/mipsel-r6-hard/lib32/crtbegin.o | 0 .../4.9.2/mipsel-r6-hard/lib32/crtend.o | 0 .../4.9.2/mipsel-r6-hard/lib64/crtbegin.o | 0 .../4.9.2/mipsel-r6-hard/lib64/crtend.o | 0 .../4.9.2/mipsel-r6-soft/lib/crtbegin.o | 0 .../4.9.2/mipsel-r6-soft/lib/crtend.o | 0 .../mips-img-linux-gnu/bin/.keep | 0 .../micromips-r6-hard/lib/.keep | 0 .../micromips-r6-soft/lib/.keep | 0 .../micromipsel-r6-hard/lib/.keep | 0 .../micromipsel-r6-soft/lib/.keep | 0 .../mips-img-linux-gnu/mips-r6-hard/lib/.keep | 0 .../mips-r6-hard/lib32/.keep | 0 .../mips-r6-hard/lib64/.keep | 0 .../mips-img-linux-gnu/mips-r6-soft/lib/.keep | 0 .../mipsel-r6-hard/lib/.keep | 0 .../mipsel-r6-hard/lib32/.keep | 0 .../mipsel-r6-hard/lib64/.keep | 0 .../mipsel-r6-soft/lib/.keep | 0 .../lib/micromips-r6-hard/lib/.keep | 0 .../lib/micromips-r6-soft/lib/.keep | 0 .../lib/micromipsel-r6-hard/lib/.keep | 0 .../lib/micromipsel-r6-soft/lib/.keep | 0 .../lib/mips-r6-hard/lib/.keep | 0 .../lib/mips-r6-hard/lib32/.keep | 0 .../lib/mips-r6-hard/lib64/.keep | 0 .../lib/mips-r6-soft/lib/.keep | 0 .../lib/mipsel-r6-hard/lib/.keep | 0 .../lib/mipsel-r6-hard/lib32/.keep | 0 .../lib/mipsel-r6-hard/lib64/.keep | 0 .../sysroot/micromips-r6-hard/lib/.keep | 0 .../micromips-r6-hard/usr/include/.keep | 0 .../sysroot/micromips-r6-hard/usr/lib/crt1.o | 0 .../sysroot/micromips-r6-hard/usr/lib/crti.o | 0 .../sysroot/micromips-r6-hard/usr/lib/crtn.o | 0 .../sysroot/micromips-r6-soft/lib/.keep | 0 .../micromips-r6-soft/usr/include/.keep | 0 .../sysroot/micromips-r6-soft/usr/lib/crt1.o | 0 .../sysroot/micromips-r6-soft/usr/lib/crti.o | 0 .../sysroot/micromips-r6-soft/usr/lib/crtn.o | 0 .../sysroot/micromipsel-r6-hard/lib/.keep | 0 .../micromipsel-r6-hard/usr/include/.keep | 0 .../micromipsel-r6-hard/usr/lib/crt1.o | 0 .../micromipsel-r6-hard/usr/lib/crti.o | 0 .../micromipsel-r6-hard/usr/lib/crtn.o | 0 .../sysroot/micromipsel-r6-soft/lib/.keep | 0 .../micromipsel-r6-soft/usr/include/.keep | 0 .../micromipsel-r6-soft/usr/lib/crt1.o | 0 .../micromipsel-r6-soft/usr/lib/crti.o | 0 .../micromipsel-r6-soft/usr/lib/crtn.o | 0 .../sysroot/mips-r6-hard/lib/.keep | 0 .../sysroot/mips-r6-hard/lib32/.keep | 0 .../sysroot/mips-r6-hard/lib64/.keep | 0 .../sysroot/mips-r6-hard/usr/include/.keep | 0 .../sysroot/mips-r6-hard/usr/lib/crt1.o | 0 .../sysroot/mips-r6-hard/usr/lib/crti.o | 0 .../sysroot/mips-r6-hard/usr/lib/crtn.o | 0 .../sysroot/mips-r6-hard/usr/lib32/crt1.o | 0 .../sysroot/mips-r6-hard/usr/lib32/crti.o | 0 .../sysroot/mips-r6-hard/usr/lib32/crtn.o | 0 .../sysroot/mips-r6-hard/usr/lib64/crt1.o | 0 .../sysroot/mips-r6-hard/usr/lib64/crti.o | 0 .../sysroot/mips-r6-hard/usr/lib64/crtn.o | 0 .../sysroot/mips-r6-soft/lib/.keep | 0 .../sysroot/mips-r6-soft/usr/include/.keep | 0 .../sysroot/mips-r6-soft/usr/lib/crt1.o | 0 .../sysroot/mips-r6-soft/usr/lib/crti.o | 0 .../sysroot/mips-r6-soft/usr/lib/crtn.o | 0 .../sysroot/mipsel-r6-hard/lib/.keep | 0 .../sysroot/mipsel-r6-hard/lib32/.keep | 0 .../sysroot/mipsel-r6-hard/lib64/.keep | 0 .../sysroot/mipsel-r6-hard/usr/include/.keep | 0 .../sysroot/mipsel-r6-hard/usr/lib/crt1.o | 0 .../sysroot/mipsel-r6-hard/usr/lib/crti.o | 0 .../sysroot/mipsel-r6-hard/usr/lib/crtn.o | 0 .../sysroot/mipsel-r6-hard/usr/lib32/crt1.o | 0 .../sysroot/mipsel-r6-hard/usr/lib32/crti.o | 0 .../sysroot/mipsel-r6-hard/usr/lib32/crtn.o | 0 .../sysroot/mipsel-r6-hard/usr/lib64/crt1.o | 0 .../sysroot/mipsel-r6-hard/usr/lib64/crti.o | 0 .../sysroot/mipsel-r6-hard/usr/lib64/crtn.o | 0 .../sysroot/mipsel-r6-soft/lib/.keep | 0 .../sysroot/mipsel-r6-soft/usr/include/.keep | 0 .../sysroot/mipsel-r6-soft/usr/lib/crt1.o | 0 .../sysroot/mipsel-r6-soft/usr/lib/crti.o | 0 .../sysroot/mipsel-r6-soft/usr/lib/crtn.o | 0 test/Driver/Inputs/mips_mti_tree/bin/.keep | 0 .../mips-mti-linux-gnu/4.9.2/include/.keep | 0 .../lib/crtbegin.o | 0 .../micromipsel-r2-hard-nan2008/lib/crtend.o | 0 .../4.9.2/micromipsel-r2-soft/lib/crtbegin.o | 0 .../4.9.2/micromipsel-r2-soft/lib/crtend.o | 0 .../lib/crtbegin.o | 0 .../mips-r2-hard-nan2008-uclibc/lib/crtend.o | 0 .../4.9.2/mips-r2-hard-nan2008/lib/crtbegin.o | 0 .../4.9.2/mips-r2-hard-nan2008/lib/crtend.o | 0 .../4.9.2/mips-r2-hard-uclibc/lib/crtbegin.o | 0 .../4.9.2/mips-r2-hard-uclibc/lib/crtend.o | 0 .../4.9.2/mips-r2-hard/lib/crtbegin.o | 0 .../4.9.2/mips-r2-hard/lib/crtend.o | 0 .../4.9.2/mips-r2-hard/lib32/crtbegin.o | 0 .../4.9.2/mips-r2-hard/lib32/crtend.o | 0 .../4.9.2/mips-r2-hard/lib64/crtbegin.o | 0 .../4.9.2/mips-r2-hard/lib64/crtend.o | 0 .../4.9.2/mips-r2-soft/lib/crtbegin.o | 0 .../4.9.2/mips-r2-soft/lib/crtend.o | 0 .../lib/crtbegin.o | 0 .../lib/crtend.o | 0 .../mipsel-r2-hard-nan2008/lib/crtbegin.o | 0 .../4.9.2/mipsel-r2-hard-nan2008/lib/crtend.o | 0 .../mipsel-r2-hard-uclibc/lib/crtbegin.o | 0 .../4.9.2/mipsel-r2-hard-uclibc/lib/crtend.o | 0 .../4.9.2/mipsel-r2-hard/lib/crtbegin.o | 0 .../4.9.2/mipsel-r2-hard/lib/crtend.o | 0 .../4.9.2/mipsel-r2-hard/lib32/crtbegin.o | 0 .../4.9.2/mipsel-r2-hard/lib32/crtend.o | 0 .../4.9.2/mipsel-r2-hard/lib64/crtbegin.o | 0 .../4.9.2/mipsel-r2-hard/lib64/crtend.o | 0 .../4.9.2/mipsel-r2-soft/lib/crtbegin.o | 0 .../4.9.2/mipsel-r2-soft/lib/crtend.o | 0 .../mips-mti-linux-gnu/bin/.keep | 0 .../micromipsel-r2-hard-nan2008/lib/.keep | 0 .../c++/4.9.2/micromipsel-r2-soft/lib/.keep | 0 .../mips-r2-hard-nan2008-uclibc/lib/.keep | 0 .../c++/4.9.2/mips-r2-hard-nan2008/lib/.keep | 0 .../c++/4.9.2/mips-r2-hard-uclibc/lib/.keep | 0 .../include/c++/4.9.2/mips-r2-hard/lib/.keep | 0 .../c++/4.9.2/mips-r2-hard/lib32/.keep | 0 .../c++/4.9.2/mips-r2-hard/lib64/.keep | 0 .../include/c++/4.9.2/mips-r2-soft/lib/.keep | 0 .../mipsel-r2-hard-nan2008-uclibc/lib/.keep | 0 .../4.9.2/mipsel-r2-hard-nan2008/lib/.keep | 0 .../c++/4.9.2/mipsel-r2-hard-uclibc/lib/.keep | 0 .../c++/4.9.2/mipsel-r2-hard/lib/.keep | 0 .../c++/4.9.2/mipsel-r2-hard/lib32/.keep | 0 .../c++/4.9.2/mipsel-r2-hard/lib64/.keep | 0 .../c++/4.9.2/mipsel-r2-soft/lib/.keep | 0 .../lib/micromipsel-r2-hard-nan2008/lib/.keep | 0 .../lib/micromipsel-r2-soft/lib/.keep | 0 .../lib/mips-r2-hard-nan2008-uclibc/lib/.keep | 0 .../lib/mips-r2-hard-nan2008/lib/.keep | 0 .../lib/mips-r2-hard-uclibc/lib/.keep | 0 .../lib/mips-r2-hard/lib/.keep | 0 .../lib/mips-r2-hard/lib32/.keep | 0 .../lib/mips-r2-hard/lib64/.keep | 0 .../lib/mips-r2-soft/lib/.keep | 0 .../mipsel-r2-hard-nan2008-uclibc/lib/.keep | 0 .../lib/mipsel-r2-hard-nan2008/lib/.keep | 0 .../lib/mipsel-r2-hard-uclibc/lib/.keep | 0 .../lib/mipsel-r2-hard/lib/.keep | 0 .../lib/mipsel-r2-hard/lib32/.keep | 0 .../lib/mipsel-r2-hard/lib64/.keep | 0 .../lib/mipsel-r2-soft/lib/.keep | 0 .../micromipsel-r2-hard-nan2008/lib/.keep | 0 .../usr/include/.keep | 0 .../micromipsel-r2-hard-nan2008/usr/lib/.keep | 0 .../usr/lib/crt1.o | 0 .../usr/lib/crti.o | 0 .../usr/lib/crtn.o | 0 .../sysroot/micromipsel-r2-soft/lib/.keep | 0 .../micromipsel-r2-soft/usr/include/.keep | 0 .../sysroot/micromipsel-r2-soft/usr/lib/.keep | 0 .../micromipsel-r2-soft/usr/lib/crt1.o | 0 .../micromipsel-r2-soft/usr/lib/crti.o | 0 .../micromipsel-r2-soft/usr/lib/crtn.o | 0 .../mips-r2-hard-nan2008-uclibc/lib/.keep | 0 .../usr/include/.keep | 0 .../mips-r2-hard-nan2008-uclibc/usr/lib/.keep | 0 .../usr/lib/crt1.o | 0 .../usr/lib/crti.o | 0 .../usr/lib/crtn.o | 0 .../sysroot/mips-r2-hard-nan2008/lib/.keep | 0 .../mips-r2-hard-nan2008/usr/include/.keep | 0 .../mips-r2-hard-nan2008/usr/lib/.keep | 0 .../mips-r2-hard-nan2008/usr/lib/crt1.o | 0 .../mips-r2-hard-nan2008/usr/lib/crti.o | 0 .../mips-r2-hard-nan2008/usr/lib/crtn.o | 0 .../sysroot/mips-r2-hard-uclibc/lib/.keep | 0 .../mips-r2-hard-uclibc/usr/include/.keep | 0 .../sysroot/mips-r2-hard-uclibc/usr/lib/.keep | 0 .../mips-r2-hard-uclibc/usr/lib/crt1.o | 0 .../mips-r2-hard-uclibc/usr/lib/crti.o | 0 .../mips-r2-hard-uclibc/usr/lib/crtn.o | 0 .../sysroot/mips-r2-hard/lib/.keep | 0 .../sysroot/mips-r2-hard/lib32/.keep | 0 .../sysroot/mips-r2-hard/lib64/.keep | 0 .../sysroot/mips-r2-hard/usr/include/.keep | 0 .../sysroot/mips-r2-hard/usr/lib/.keep | 0 .../sysroot/mips-r2-hard/usr/lib/crt1.o | 0 .../sysroot/mips-r2-hard/usr/lib/crti.o | 0 .../sysroot/mips-r2-hard/usr/lib/crtn.o | 0 .../sysroot/mips-r2-hard/usr/lib32/crt1.o | 0 .../sysroot/mips-r2-hard/usr/lib32/crti.o | 0 .../sysroot/mips-r2-hard/usr/lib32/crtn.o | 0 .../sysroot/mips-r2-hard/usr/lib64/crt1.o | 0 .../sysroot/mips-r2-hard/usr/lib64/crti.o | 0 .../sysroot/mips-r2-hard/usr/lib64/crtn.o | 0 .../sysroot/mips-r2-soft/lib/.keep | 0 .../sysroot/mips-r2-soft/usr/include/.keep | 0 .../sysroot/mips-r2-soft/usr/lib/.keep | 0 .../sysroot/mips-r2-soft/usr/lib/crt1.o | 0 .../sysroot/mips-r2-soft/usr/lib/crti.o | 0 .../sysroot/mips-r2-soft/usr/lib/crtn.o | 0 .../mipsel-r2-hard-nan2008-uclibc/lib/.keep | 0 .../usr/include/.keep | 0 .../usr/lib/.keep | 0 .../usr/lib/crt1.o | 0 .../usr/lib/crti.o | 0 .../usr/lib/crtn.o | 0 .../sysroot/mipsel-r2-hard-nan2008/lib/.keep | 0 .../mipsel-r2-hard-nan2008/usr/include/.keep | 0 .../mipsel-r2-hard-nan2008/usr/lib/.keep | 0 .../mipsel-r2-hard-nan2008/usr/lib/crt1.o | 0 .../mipsel-r2-hard-nan2008/usr/lib/crti.o | 0 .../mipsel-r2-hard-nan2008/usr/lib/crtn.o | 0 .../sysroot/mipsel-r2-hard-uclibc/lib/.keep | 0 .../mipsel-r2-hard-uclibc/usr/include/.keep | 0 .../mipsel-r2-hard-uclibc/usr/lib/.keep | 0 .../mipsel-r2-hard-uclibc/usr/lib/crt1.o | 0 .../mipsel-r2-hard-uclibc/usr/lib/crti.o | 0 .../mipsel-r2-hard-uclibc/usr/lib/crtn.o | 0 .../sysroot/mipsel-r2-hard/lib/.keep | 0 .../sysroot/mipsel-r2-hard/lib32/.keep | 0 .../sysroot/mipsel-r2-hard/lib64/.keep | 0 .../sysroot/mipsel-r2-hard/usr/include/.keep | 0 .../sysroot/mipsel-r2-hard/usr/lib/.keep | 0 .../sysroot/mipsel-r2-hard/usr/lib/crt1.o | 0 .../sysroot/mipsel-r2-hard/usr/lib/crti.o | 0 .../sysroot/mipsel-r2-hard/usr/lib/crtn.o | 0 .../sysroot/mipsel-r2-hard/usr/lib32/crt1.o | 0 .../sysroot/mipsel-r2-hard/usr/lib32/crti.o | 0 .../sysroot/mipsel-r2-hard/usr/lib32/crtn.o | 0 .../sysroot/mipsel-r2-hard/usr/lib64/crt1.o | 0 .../sysroot/mipsel-r2-hard/usr/lib64/crti.o | 0 .../sysroot/mipsel-r2-hard/usr/lib64/crtn.o | 0 .../sysroot/mipsel-r2-soft/lib/.keep | 0 .../sysroot/mipsel-r2-soft/usr/include/.keep | 0 .../sysroot/mipsel-r2-soft/usr/lib/.keep | 0 .../sysroot/mipsel-r2-soft/usr/lib/crt1.o | 0 .../sysroot/mipsel-r2-soft/usr/lib/crti.o | 0 .../sysroot/mipsel-r2-soft/usr/lib/crtn.o | 0 test/Driver/mips-img-v2.cpp | 325 +++++++++++++ test/Driver/mips-mti.cpp | 433 ++++++++++++++++++ 265 files changed, 938 insertions(+), 6 deletions(-) create mode 100644 test/Driver/Inputs/mips_img_v2_tree/bin/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/bin/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crtn.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/bin/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtbegin.o create mode 100644 test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtend.o create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/bin/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib32/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib64/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crtn.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/include/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/.keep create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crt1.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crti.o create mode 100644 test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crtn.o create mode 100644 test/Driver/mips-img-v2.cpp create mode 100644 test/Driver/mips-mti.cpp diff --git a/include/clang/Driver/Multilib.h b/include/clang/Driver/Multilib.h index a2df8f1c29..6b54d72d7c 100644 --- a/include/clang/Driver/Multilib.h +++ b/include/clang/Driver/Multilib.h @@ -107,6 +107,7 @@ public: private: multilib_list Multilibs; IncludeDirsFunc IncludeCallback; + IncludeDirsFunc FilePathsCallback; public: MultilibSet() {} @@ -158,6 +159,12 @@ public: } const IncludeDirsFunc &includeDirsCallback() const { return IncludeCallback; } + MultilibSet &setFilePathsCallback(IncludeDirsFunc F) { + FilePathsCallback = std::move(F); + return *this; + } + const IncludeDirsFunc &filePathsCallback() const { return FilePathsCallback; } + private: /// Apply the filter to Multilibs and return the subset that remains static multilib_list filterCopy(FilterCallback F, const multilib_list &Ms); diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index a74a750b56..cf50d860eb 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1937,6 +1937,95 @@ static bool findMIPSMultilibs(const Driver &D, const llvm::Triple &TargetTriple, }); } + // Check for CodeScape IMG toolchain starting from v1.3. + MultilibSet MtiMipsMultilibsV2; + { + auto BeHard = makeMultilib("/mips-r2-hard") + .flag("+EB") + .flag("-msoft-float") + .flag("-mnan=2008") + .flag("-muclibc"); + auto BeSoft = makeMultilib("/mips-r2-soft") + .flag("+EB") + .flag("+msoft-float") + .flag("-mnan=2008"); + auto ElHard = makeMultilib("/mipsel-r2-hard") + .flag("+EL") + .flag("-msoft-float") + .flag("-mnan=2008") + .flag("-muclibc"); + auto ElSoft = makeMultilib("/mipsel-r2-soft") + .flag("+EL") + .flag("+msoft-float") + .flag("-mnan=2008") + .flag("-mmicromips"); + auto BeHardNan = makeMultilib("/mips-r2-hard-nan2008") + .flag("+EB") + .flag("-msoft-float") + .flag("+mnan=2008") + .flag("-muclibc"); + auto ElHardNan = makeMultilib("/mipsel-r2-hard-nan2008") + .flag("+EL") + .flag("-msoft-float") + .flag("+mnan=2008") + .flag("-muclibc") + .flag("-mmicromips"); + auto BeHardNanUclibc = makeMultilib("/mips-r2-hard-nan2008-uclibc") + .flag("+EB") + .flag("-msoft-float") + .flag("+mnan=2008") + .flag("+muclibc"); + auto ElHardNanUclibc = makeMultilib("/mipsel-r2-hard-nan2008-uclibc") + .flag("+EL") + .flag("-msoft-float") + .flag("+mnan=2008") + .flag("+muclibc"); + auto BeHardUclibc = makeMultilib("/mips-r2-hard-uclibc") + .flag("+EB") + .flag("-msoft-float") + .flag("-mnan=2008") + .flag("+muclibc"); + auto ElHardUclibc = makeMultilib("/mipsel-r2-hard-uclibc") + .flag("+EL") + .flag("-msoft-float") + .flag("-mnan=2008") + .flag("+muclibc"); + auto ElMicroHardNan = makeMultilib("/micromipsel-r2-hard-nan2008") + .flag("+EL") + .flag("-msoft-float") + .flag("+mnan=2008") + .flag("+mmicromips"); + auto ElMicroSoft = makeMultilib("/micromipsel-r2-soft") + .flag("+EL") + .flag("+msoft-float") + .flag("-mnan=2008") + .flag("+mmicromips"); + + auto O32 = + makeMultilib("/lib").osSuffix("").flag("-mabi=n32").flag("-mabi=n64"); + auto N32 = + makeMultilib("/lib32").osSuffix("").flag("+mabi=n32").flag("-mabi=n64"); + auto N64 = + makeMultilib("/lib64").osSuffix("").flag("-mabi=n32").flag("+mabi=n64"); + + MtiMipsMultilibsV2 = + MultilibSet() + .Either({BeHard, BeSoft, ElHard, ElSoft, BeHardNan, ElHardNan, + BeHardNanUclibc, ElHardNanUclibc, BeHardUclibc, + ElHardUclibc, ElMicroHardNan, ElMicroSoft}) + .Either(O32, N32, N64) + .FilterOut(NonExistent) + .setIncludeDirsCallback([](const Multilib &M) { + return std::vector({"/../../../../sysroot" + + M.includeSuffix() + + "/../usr/include"}); + }) + .setFilePathsCallback([](const Multilib &M) { + return std::vector( + {"/../../../../mips-mti-linux-gnu/lib" + M.gccSuffix()}); + }); + } + // Check for Musl toolchain multilibs MultilibSet MuslMipsMultilibs; { @@ -2006,6 +2095,66 @@ static bool findMIPSMultilibs(const Driver &D, const llvm::Triple &TargetTriple, }); } + // Check for CodeScape IMG toolchain starting from v1.3. + MultilibSet ImgMultilibsV2; + { + auto BeHard = makeMultilib("/mips-r6-hard") + .flag("+EB") + .flag("-msoft-float") + .flag("-mmicromips"); + auto BeSoft = makeMultilib("/mips-r6-soft") + .flag("+EB") + .flag("+msoft-float") + .flag("-mmicromips"); + auto ElHard = makeMultilib("/mipsel-r6-hard") + .flag("+EL") + .flag("-msoft-float") + .flag("-mmicromips"); + auto ElSoft = makeMultilib("/mipsel-r6-soft") + .flag("+EL") + .flag("+msoft-float") + .flag("-mmicromips"); + auto BeMicroHard = makeMultilib("/micromips-r6-hard") + .flag("+EB") + .flag("-msoft-float") + .flag("+mmicromips"); + auto BeMicroSoft = makeMultilib("/micromips-r6-soft") + .flag("+EB") + .flag("+msoft-float") + .flag("+mmicromips"); + auto ElMicroHard = makeMultilib("/micromipsel-r6-hard") + .flag("+EL") + .flag("-msoft-float") + .flag("+mmicromips"); + auto ElMicroSoft = makeMultilib("/micromipsel-r6-soft") + .flag("+EL") + .flag("+msoft-float") + .flag("+mmicromips"); + + auto O32 = + makeMultilib("/lib").osSuffix("").flag("-mabi=n32").flag("-mabi=n64"); + auto N32 = + makeMultilib("/lib32").osSuffix("").flag("+mabi=n32").flag("-mabi=n64"); + auto N64 = + makeMultilib("/lib64").osSuffix("").flag("-mabi=n32").flag("+mabi=n64"); + + ImgMultilibsV2 = MultilibSet() + .Either({BeHard, BeSoft, ElHard, ElSoft, BeMicroHard, + BeMicroSoft, ElMicroHard, ElMicroSoft}) + .Either(O32, N32, N64) + .FilterOut(NonExistent) + .setIncludeDirsCallback([](const Multilib &M) { + return std::vector( + {"/../../../../sysroot" + M.includeSuffix() + + "/../usr/include"}); + }) + .setFilePathsCallback([](const Multilib &M) { + return std::vector( + {"/../../../../mips-img-linux-gnu/lib" + + M.gccSuffix()}); + }); + } + StringRef CPUName; StringRef ABIName; tools::mips::getMipsCPUAndABI(Args, TargetTriple, CPUName, ABIName); @@ -2059,9 +2208,11 @@ static bool findMIPSMultilibs(const Driver &D, const llvm::Triple &TargetTriple, TargetTriple.getOS() == llvm::Triple::Linux && TargetTriple.getEnvironment() == llvm::Triple::GNU) { // Select mips-mti-linux-gnu toolchain. - if (MtiMipsMultilibsV1.select(Flags, Result.SelectedMultilib)) { - Result.Multilibs = MtiMipsMultilibsV1; - return true; + for (auto candidate : {&MtiMipsMultilibsV1, &MtiMipsMultilibsV2}) { + if (candidate->select(Flags, Result.SelectedMultilib)) { + Result.Multilibs = *candidate; + return true; + } } return false; } @@ -2070,9 +2221,11 @@ static bool findMIPSMultilibs(const Driver &D, const llvm::Triple &TargetTriple, TargetTriple.getOS() == llvm::Triple::Linux && TargetTriple.getEnvironment() == llvm::Triple::GNU) { // Select mips-img-linux-gnu toolchain. - if (ImgMultilibsV1.select(Flags, Result.SelectedMultilib)) { - Result.Multilibs = ImgMultilibsV1; - return true; + for (auto candidate : {&ImgMultilibsV1, &ImgMultilibsV2}) { + if (candidate->select(Flags, Result.SelectedMultilib)) { + Result.Multilibs = *candidate; + return true; + } } return false; } @@ -3649,6 +3802,15 @@ static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) { return Triple.isArch32Bit() ? "lib" : "lib64"; } +static void addMultilibsFilePaths(const Driver &D, const MultilibSet &Multilibs, + const Multilib &Multilib, + StringRef InstallPath, + ToolChain::path_list &Paths) { + if (const auto &PathsCallback = Multilibs.filePathsCallback()) + for (const auto &Path : PathsCallback(Multilib)) + addPathIfExists(D, InstallPath + Path, Paths); +} + Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) : Generic_ELF(D, Triple, Args) { GCCInstallation.init(Triple, Args); @@ -3727,6 +3889,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) const llvm::Triple &GCCTriple = GCCInstallation.getTriple(); const std::string &LibPath = GCCInstallation.getParentLibPath(); const Multilib &Multilib = GCCInstallation.getMultilib(); + const MultilibSet &Multilibs = GCCInstallation.getMultilibs(); + + // Add toolchain / multilib specific file paths. + addMultilibsFilePaths(D, Multilibs, Multilib, + GCCInstallation.getInstallPath(), Paths); // Sourcery CodeBench MIPS toolchain holds some libraries under // a biarch-like suffix of the GCC installation. diff --git a/test/Driver/Inputs/mips_img_v2_tree/bin/.keep b/test/Driver/Inputs/mips_img_v2_tree/bin/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtend.o b/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/bin/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/bin/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib32/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib64/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib32/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib64/.keep b/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib32/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib64/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib32/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib64/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/lib/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/include/.keep b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/bin/.keep b/test/Driver/Inputs/mips_mti_tree/bin/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/include/.keep b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtbegin.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtend.o b/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/bin/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/bin/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib32/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib64/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib32/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib64/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib32/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib64/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib32/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib64/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib32/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib32/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib64/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib64/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/include/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/include/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/.keep b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crt1.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crti.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crtn.o b/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/mips-img-v2.cpp b/test/Driver/mips-img-v2.cpp new file mode 100644 index 0000000000..1878998e54 --- /dev/null +++ b/test/Driver/mips-img-v2.cpp @@ -0,0 +1,325 @@ +// Check frontend and linker invocations on the IMG v2 MIPS toolchain. + +// -EB -mips32r6 -mhard-float -mabi=32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EB -mips32r6 -mhard-float -mabi=32 \ +// RUN: | FileCheck --check-prefix=EB-HARD-O32 %s +// EB-HARD-O32: "-internal-isystem" +// EB-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EB-HARD-O32: "-internal-isystem" +// EB-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib" +// EB-HARD-O32: "-internal-isystem" +// EB-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-O32: "-internal-externc-isystem" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/lib/../usr/include" +// EB-HARD-O32: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-hard" +// EB-HARD-O32: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-HARD-O32: "[[TC]]/mips-r6-hard/lib{{/|\\\\}}crtbegin.o" +// EB-HARD-O32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-hard/lib" +// EB-HARD-O32: "-L[[TC]]/mips-r6-hard/lib" +// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/lib/../lib" +// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib" +// EB-HARD-O32: "[[TC]]/mips-r6-hard/lib{{/|\\\\}}crtend.o" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mips64r6 -mhard-float -mabi=n32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EB -mips64r6 -mhard-float -mabi=n32 \ +// RUN: | FileCheck --check-prefix=EB-HARD-N32 %s +// EB-HARD-N32: "-internal-isystem" +// EB-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EB-HARD-N32: "-internal-isystem" +// EB-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32" +// EB-HARD-N32: "-internal-isystem" +// EB-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-N32: "-internal-externc-isystem" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/lib32/../usr/include" +// EB-HARD-N32: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-hard" +// EB-HARD-N32: "-dynamic-linker" "/lib32/ld-linux-mipsn8.so.1" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32{{/|\\\\}}crt1.o" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32{{/|\\\\}}crti.o" +// EB-HARD-N32: "[[TC]]/mips-r6-hard/lib32{{/|\\\\}}crtbegin.o" +// EB-HARD-N32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-hard/lib32" +// EB-HARD-N32: "-L[[TC]]/mips-r6-hard/lib32" +// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/lib/../lib32" +// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32" +// EB-HARD-N32: "[[TC]]/mips-r6-hard/lib32{{/|\\\\}}crtend.o" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32{{/|\\\\}}crtn.o" + +// -EB -mips64r6 -mhard-float -mabi=64 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips64-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EB -mips64r6 -mhard-float -mabi=64 \ +// RUN: | FileCheck --check-prefix=EB-HARD-N64 %s +// EB-HARD-N64: "-internal-isystem" +// EB-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EB-HARD-N64: "-internal-isystem" +// EB-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64" +// EB-HARD-N64: "-internal-isystem" +// EB-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-N64: "-internal-externc-isystem" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/lib64/../usr/include" +// EB-HARD-N64: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-hard" +// EB-HARD-N64: "-dynamic-linker" "/lib64/ld-linux-mipsn8.so.1" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64{{/|\\\\}}crt1.o" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64{{/|\\\\}}crti.o" +// EB-HARD-N64: "[[TC]]/mips-r6-hard/lib64{{/|\\\\}}crtbegin.o" +// EB-HARD-N64: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-hard/lib64" +// EB-HARD-N64: "-L[[TC]]/mips-r6-hard/lib64" +// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r6-hard/lib/../lib64" +// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64" +// EB-HARD-N64: "[[TC]]/mips-r6-hard/lib64{{/|\\\\}}crtend.o" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64{{/|\\\\}}crtn.o" + +// -EL -mips32r6 -mhard-float -mabi=32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EL -mips32r6 -mhard-float -mabi=32 \ +// RUN: | FileCheck --check-prefix=EL-HARD-O32 %s +// EL-HARD-O32: "-internal-isystem" +// EL-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EL-HARD-O32: "-internal-isystem" +// EL-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib" +// EL-HARD-O32: "-internal-isystem" +// EL-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-O32: "-internal-externc-isystem" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../usr/include" +// EL-HARD-O32: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-hard" +// EL-HARD-O32: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-HARD-O32: "[[TC]]/mipsel-r6-hard/lib{{/|\\\\}}crtbegin.o" +// EL-HARD-O32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-hard/lib" +// EL-HARD-O32: "-L[[TC]]/mipsel-r6-hard/lib" +// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../lib" +// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib" +// EL-HARD-O32: "[[TC]]/mipsel-r6-hard/lib{{/|\\\\}}crtend.o" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mips64r6 -mhard-float -mabi=n32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EL -mips64r6 -mhard-float -mabi=n32 \ +// RUN: | FileCheck --check-prefix=EL-HARD-N32 %s +// EL-HARD-N32: "-internal-isystem" +// EL-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EL-HARD-N32: "-internal-isystem" +// EL-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32" +// EL-HARD-N32: "-internal-isystem" +// EL-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-N32: "-internal-externc-isystem" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/lib32/../usr/include" +// EL-HARD-N32: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-hard" +// EL-HARD-N32: "-dynamic-linker" "/lib32/ld-linux-mipsn8.so.1" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32{{/|\\\\}}crt1.o" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32{{/|\\\\}}crti.o" +// EL-HARD-N32: "[[TC]]/mipsel-r6-hard/lib32{{/|\\\\}}crtbegin.o" +// EL-HARD-N32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-hard/lib32" +// EL-HARD-N32: "-L[[TC]]/mipsel-r6-hard/lib32" +// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../lib32" +// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32" +// EL-HARD-N32: "[[TC]]/mipsel-r6-hard/lib32{{/|\\\\}}crtend.o" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32{{/|\\\\}}crtn.o" + +// -EL -mips64r6 -mhard-float -mabi=64 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips64-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EL -mips64r6 -mhard-float -mabi=64 \ +// RUN: | FileCheck --check-prefix=EL-HARD-N64 %s +// EL-HARD-N64: "-internal-isystem" +// EL-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EL-HARD-N64: "-internal-isystem" +// EL-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64" +// EL-HARD-N64: "-internal-isystem" +// EL-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-N64: "-internal-externc-isystem" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/lib64/../usr/include" +// EL-HARD-N64: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-hard" +// EL-HARD-N64: "-dynamic-linker" "/lib64/ld-linux-mipsn8.so.1" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64{{/|\\\\}}crt1.o" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64{{/|\\\\}}crti.o" +// EL-HARD-N64: "[[TC]]/mipsel-r6-hard/lib64{{/|\\\\}}crtbegin.o" +// EL-HARD-N64: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-hard/lib64" +// EL-HARD-N64: "-L[[TC]]/mipsel-r6-hard/lib64" +// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../lib64" +// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64" +// EL-HARD-N64: "[[TC]]/mipsel-r6-hard/lib64{{/|\\\\}}crtend.o" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64{{/|\\\\}}crtn.o" + +// -EB -mips32r6 -msoft-float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EB -mips32r6 -msoft-float \ +// RUN: | FileCheck --check-prefix=EB-SOFT %s +// EB-SOFT: "-internal-isystem" +// EB-SOFT: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EB-SOFT: "-internal-isystem" +// EB-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib" +// EB-SOFT: "-internal-isystem" +// EB-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EB-SOFT: "-internal-externc-isystem" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/lib/../usr/include" +// EB-SOFT: "{{.*}}ld{{(.exe)?}}" +// EB-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-soft" +// EB-SOFT: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-SOFT: "[[TC]]/mips-r6-soft/lib{{/|\\\\}}crtbegin.o" +// EB-SOFT: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-soft/lib" +// EB-SOFT: "-L[[TC]]/mips-r6-soft/lib" +// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r6-soft/lib/../lib" +// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib" +// EB-SOFT: "[[TC]]/mips-r6-soft/lib{{/|\\\\}}crtend.o" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mips32r6 -msoft-float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EL -mips32r6 -msoft-float \ +// RUN: | FileCheck --check-prefix=EL-SOFT %s +// EL-SOFT: "-internal-isystem" +// EL-SOFT: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EL-SOFT: "-internal-isystem" +// EL-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib" +// EL-SOFT: "-internal-isystem" +// EL-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EL-SOFT: "-internal-externc-isystem" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/lib/../usr/include" +// EL-SOFT: "{{.*}}ld{{(.exe)?}}" +// EL-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-soft" +// EL-SOFT: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-SOFT: "[[TC]]/mipsel-r6-soft/lib{{/|\\\\}}crtbegin.o" +// EL-SOFT: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-soft/lib" +// EL-SOFT: "-L[[TC]]/mipsel-r6-soft/lib" +// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r6-soft/lib/../lib" +// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib" +// EL-SOFT: "[[TC]]/mipsel-r6-soft/lib{{/|\\\\}}crtend.o" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mips32r6 -mhard-float -mmicromips +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EB -mips32r6 -mhard-float -mmicromips \ +// RUN: | FileCheck --check-prefix=EB-HARD-MICRO %s +// EB-HARD-MICRO: "-internal-isystem" +// EB-HARD-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EB-HARD-MICRO: "-internal-isystem" +// EB-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib" +// EB-HARD-MICRO: "-internal-isystem" +// EB-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-MICRO: "-internal-externc-isystem" +// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/lib/../usr/include" +// EB-HARD-MICRO: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromips-r6-hard" +// EB-HARD-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-HARD-MICRO: "[[TC]]/micromips-r6-hard/lib{{/|\\\\}}crtbegin.o" +// EB-HARD-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromips-r6-hard/lib" +// EB-HARD-MICRO: "-L[[TC]]/micromips-r6-hard/lib" +// EB-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-hard/lib/../lib" +// EB-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib" +// EB-HARD-MICRO: "[[TC]]/micromips-r6-hard/lib{{/|\\\\}}crtend.o" +// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mips32r6 -msoft-float -mmicromips +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EB -mips32r6 -msoft-float -mmicromips \ +// RUN: | FileCheck --check-prefix=EB-SOFT-MICRO %s +// EB-SOFT-MICRO: "-internal-isystem" +// EB-SOFT-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EB-SOFT-MICRO: "-internal-isystem" +// EB-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib" +// EB-SOFT-MICRO: "-internal-isystem" +// EB-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EB-SOFT-MICRO: "-internal-externc-isystem" +// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/lib/../usr/include" +// EB-SOFT-MICRO: "{{.*}}ld{{(.exe)?}}" +// EB-SOFT-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromips-r6-soft" +// EB-SOFT-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-SOFT-MICRO: "[[TC]]/micromips-r6-soft/lib{{/|\\\\}}crtbegin.o" +// EB-SOFT-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromips-r6-soft/lib" +// EB-SOFT-MICRO: "-L[[TC]]/micromips-r6-soft/lib" +// EB-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-soft/lib/../lib" +// EB-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib" +// EB-SOFT-MICRO: "[[TC]]/micromips-r6-soft/lib{{/|\\\\}}crtend.o" +// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mips32r6 -mhard-float -mmicromips +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EL -mips32r6 -mhard-float -mmicromips \ +// RUN: | FileCheck --check-prefix=EL-HARD-MICRO %s +// EL-HARD-MICRO: "-internal-isystem" +// EL-HARD-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EL-HARD-MICRO: "-internal-isystem" +// EL-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib" +// EL-HARD-MICRO: "-internal-isystem" +// EL-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-MICRO: "-internal-externc-isystem" +// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/lib/../usr/include" +// EL-HARD-MICRO: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r6-hard" +// EL-HARD-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-HARD-MICRO: "[[TC]]/micromipsel-r6-hard/lib{{/|\\\\}}crtbegin.o" +// EL-HARD-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromipsel-r6-hard/lib" +// EL-HARD-MICRO: "-L[[TC]]/micromipsel-r6-hard/lib" +// EL-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-hard/lib/../lib" +// EL-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib" +// EL-HARD-MICRO: "[[TC]]/micromipsel-r6-hard/lib{{/|\\\\}}crtend.o" +// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mips32r6 -msoft-float -mmicromips +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-img-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_img_v2_tree \ +// RUN: -EL -mips32r6 -msoft-float -mmicromips \ +// RUN: | FileCheck --check-prefix=EL-SOFT-MICRO %s +// EL-SOFT-MICRO: "-internal-isystem" +// EL-SOFT-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2" +// EL-SOFT-MICRO: "-internal-isystem" +// EL-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib" +// EL-SOFT-MICRO: "-internal-isystem" +// EL-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward" +// EL-SOFT-MICRO: "-internal-externc-isystem" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/lib/../usr/include" +// EL-SOFT-MICRO: "{{.*}}ld{{(.exe)?}}" +// EL-SOFT-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r6-soft" +// EL-SOFT-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-SOFT-MICRO: "[[TC]]/micromipsel-r6-soft/lib{{/|\\\\}}crtbegin.o" +// EL-SOFT-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromipsel-r6-soft/lib" +// EL-SOFT-MICRO: "-L[[TC]]/micromipsel-r6-soft/lib" +// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-soft/lib/../lib" +// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib" +// EL-SOFT-MICRO: "[[TC]]/micromipsel-r6-soft/lib{{/|\\\\}}crtend.o" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o" diff --git a/test/Driver/mips-mti.cpp b/test/Driver/mips-mti.cpp new file mode 100644 index 0000000000..6c03d00e49 --- /dev/null +++ b/test/Driver/mips-mti.cpp @@ -0,0 +1,433 @@ +// Check frontend and linker invocations on the MTI MIPS toolchain. + +// -EB -mhard-float -mabi=32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -mhard-float -mabi=32 \ +// RUN: | FileCheck --check-prefix=EB-HARD-O32 %s +// EB-HARD-O32: "-internal-isystem" +// EB-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-HARD-O32: "-internal-isystem" +// EB-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard/lib" +// EB-HARD-O32: "-internal-isystem" +// EB-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-O32: "-internal-externc-isystem" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/lib/../usr/include" +// EB-HARD-O32: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard" +// EB-HARD-O32: "-dynamic-linker" "/lib/ld.so.1" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-HARD-O32: "[[TC]]/mips-r2-hard/lib{{/|\\\\}}crtbegin.o" +// EB-HARD-O32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard/lib" +// EB-HARD-O32: "-L[[TC]]/mips-r2-hard/lib" +// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/lib/../lib" +// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib" +// EB-HARD-O32: "[[TC]]/mips-r2-hard/lib{{/|\\\\}}crtend.o" +// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mhard-float -mabi=n32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -mhard-float -mabi=n32 \ +// RUN: | FileCheck --check-prefix=EB-HARD-N32 %s +// EB-HARD-N32: "-internal-isystem" +// EB-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-HARD-N32: "-internal-isystem" +// EB-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard/lib32" +// EB-HARD-N32: "-internal-isystem" +// EB-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-N32: "-internal-externc-isystem" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/lib32/../usr/include" +// EB-HARD-N32: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard" +// EB-HARD-N32: "-dynamic-linker" "/lib32/ld.so.1" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32{{/|\\\\}}crt1.o" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32{{/|\\\\}}crti.o" +// EB-HARD-N32: "[[TC]]/mips-r2-hard/lib32{{/|\\\\}}crtbegin.o" +// EB-HARD-N32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard/lib32" +// EB-HARD-N32: "-L[[TC]]/mips-r2-hard/lib32" +// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/lib/../lib32" +// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32" +// EB-HARD-N32: "[[TC]]/mips-r2-hard/lib32{{/|\\\\}}crtend.o" +// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32{{/|\\\\}}crtn.o" + +// -EB -mhard-float -mabi=64 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips64-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -mhard-float -mabi=64 \ +// RUN: | FileCheck --check-prefix=EB-HARD-N64 %s +// EB-HARD-N64: "-internal-isystem" +// EB-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-HARD-N64: "-internal-isystem" +// EB-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard/lib64" +// EB-HARD-N64: "-internal-isystem" +// EB-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-N64: "-internal-externc-isystem" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/lib64/../usr/include" +// EB-HARD-N64: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard" +// EB-HARD-N64: "-dynamic-linker" "/lib64/ld.so.1" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64{{/|\\\\}}crt1.o" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64{{/|\\\\}}crti.o" +// EB-HARD-N64: "[[TC]]/mips-r2-hard/lib64{{/|\\\\}}crtbegin.o" +// EB-HARD-N64: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard/lib64" +// EB-HARD-N64: "-L[[TC]]/mips-r2-hard/lib64" +// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r2-hard/lib/../lib64" +// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64" +// EB-HARD-N64: "[[TC]]/mips-r2-hard/lib64{{/|\\\\}}crtend.o" +// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64{{/|\\\\}}crtn.o" + +// -EL -mhard-float -mabi=32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -mabi=32 \ +// RUN: | FileCheck --check-prefix=EL-HARD-O32 %s +// EL-HARD-O32: "-internal-isystem" +// EL-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-HARD-O32: "-internal-isystem" +// EL-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard/lib" +// EL-HARD-O32: "-internal-isystem" +// EL-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-O32: "-internal-externc-isystem" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../usr/include" +// EL-HARD-O32: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard" +// EL-HARD-O32: "-dynamic-linker" "/lib/ld.so.1" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-HARD-O32: "[[TC]]/mipsel-r2-hard/lib{{/|\\\\}}crtbegin.o" +// EL-HARD-O32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard/lib" +// EL-HARD-O32: "-L[[TC]]/mipsel-r2-hard/lib" +// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../lib" +// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib" +// EL-HARD-O32: "[[TC]]/mipsel-r2-hard/lib{{/|\\\\}}crtend.o" +// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mhard-float -mabi=n32 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -mabi=n32 \ +// RUN: | FileCheck --check-prefix=EL-HARD-N32 %s +// EL-HARD-N32: "-internal-isystem" +// EL-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-HARD-N32: "-internal-isystem" +// EL-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard/lib32" +// EL-HARD-N32: "-internal-isystem" +// EL-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-N32: "-internal-externc-isystem" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/lib32/../usr/include" +// EL-HARD-N32: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard" +// EL-HARD-N32: "-dynamic-linker" "/lib32/ld.so.1" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32{{/|\\\\}}crt1.o" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32{{/|\\\\}}crti.o" +// EL-HARD-N32: "[[TC]]/mipsel-r2-hard/lib32{{/|\\\\}}crtbegin.o" +// EL-HARD-N32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32" +// EL-HARD-N32: "-L[[TC]]/mipsel-r2-hard/lib32" +// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../lib32" +// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32" +// EL-HARD-N32: "[[TC]]/mipsel-r2-hard/lib32{{/|\\\\}}crtend.o" +// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32{{/|\\\\}}crtn.o" + +// -EL -mhard-float -mabi=64 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips64-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -mabi=64 \ +// RUN: | FileCheck --check-prefix=EL-HARD-N64 %s +// EL-HARD-N64: "-internal-isystem" +// EL-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-HARD-N64: "-internal-isystem" +// EL-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard/lib64" +// EL-HARD-N64: "-internal-isystem" +// EL-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-N64: "-internal-externc-isystem" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/lib64/../usr/include" +// EL-HARD-N64: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard" +// EL-HARD-N64: "-dynamic-linker" "/lib64/ld.so.1" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64{{/|\\\\}}crt1.o" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64{{/|\\\\}}crti.o" +// EL-HARD-N64: "[[TC]]/mipsel-r2-hard/lib64{{/|\\\\}}crtbegin.o" +// EL-HARD-N64: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64" +// EL-HARD-N64: "-L[[TC]]/mipsel-r2-hard/lib64" +// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../lib64" +// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64" +// EL-HARD-N64: "[[TC]]/mipsel-r2-hard/lib64{{/|\\\\}}crtend.o" +// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64{{/|\\\\}}crtn.o" + +// -EB -msoft-float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -msoft-float \ +// RUN: | FileCheck --check-prefix=EB-SOFT %s +// EB-SOFT: "-internal-isystem" +// EB-SOFT: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-SOFT: "-internal-isystem" +// EB-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-soft/lib" +// EB-SOFT: "-internal-isystem" +// EB-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-SOFT: "-internal-externc-isystem" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/lib/../usr/include" +// EB-SOFT: "{{.*}}ld{{(.exe)?}}" +// EB-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-soft" +// EB-SOFT: "-dynamic-linker" "/lib/ld.so.1" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-SOFT: "[[TC]]/mips-r2-soft/lib{{/|\\\\}}crtbegin.o" +// EB-SOFT: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-soft/lib" +// EB-SOFT: "-L[[TC]]/mips-r2-soft/lib" +// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r2-soft/lib/../lib" +// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib" +// EB-SOFT: "[[TC]]/mips-r2-soft/lib{{/|\\\\}}crtend.o" +// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -msoft-float +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -msoft-float \ +// RUN: | FileCheck --check-prefix=EL-SOFT %s +// EL-SOFT: "-internal-isystem" +// EL-SOFT: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-SOFT: "-internal-isystem" +// EL-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-soft/lib" +// EL-SOFT: "-internal-isystem" +// EL-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-SOFT: "-internal-externc-isystem" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/lib/../usr/include" +// EL-SOFT: "{{.*}}ld{{(.exe)?}}" +// EL-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-soft" +// EL-SOFT: "-dynamic-linker" "/lib/ld.so.1" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-SOFT: "[[TC]]/mipsel-r2-soft/lib{{/|\\\\}}crtbegin.o" +// EL-SOFT: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-soft/lib" +// EL-SOFT: "-L[[TC]]/mipsel-r2-soft/lib" +// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r2-soft/lib/../lib" +// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib" +// EL-SOFT: "[[TC]]/mipsel-r2-soft/lib{{/|\\\\}}crtend.o" +// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mhard-float -muclibc +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -mhard-float -muclibc \ +// RUN: | FileCheck --check-prefix=EB-HARD-UCLIBC %s +// EB-HARD-UCLIBC: "-internal-isystem" +// EB-HARD-UCLIBC: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-HARD-UCLIBC: "-internal-isystem" +// EB-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard-uclibc/lib" +// EB-HARD-UCLIBC: "-internal-isystem" +// EB-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-UCLIBC: "-internal-externc-isystem" +// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/lib/../usr/include" +// EB-HARD-UCLIBC: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-UCLIBC: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard-uclibc" +// EB-HARD-UCLIBC: "-dynamic-linker" "/lib/ld-uClibc.so.0" +// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-HARD-UCLIBC: "[[TC]]/mips-r2-hard-uclibc/lib{{/|\\\\}}crtbegin.o" +// EB-HARD-UCLIBC: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib" +// EB-HARD-UCLIBC: "-L[[TC]]/mips-r2-hard-uclibc/lib" +// EB-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/lib/../lib" +// EB-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib" +// EB-HARD-UCLIBC: "[[TC]]/mips-r2-hard-uclibc/lib{{/|\\\\}}crtend.o" +// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mhard-float -muclibc +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -muclibc \ +// RUN: | FileCheck --check-prefix=EL-HARD-UCLIBC %s +// EL-HARD-UCLIBC: "-internal-isystem" +// EL-HARD-UCLIBC: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-HARD-UCLIBC: "-internal-isystem" +// EL-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard-uclibc/lib" +// EL-HARD-UCLIBC: "-internal-isystem" +// EL-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-UCLIBC: "-internal-externc-isystem" +// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/lib/../usr/include" +// EL-HARD-UCLIBC: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-UCLIBC: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc" +// EL-HARD-UCLIBC: "-dynamic-linker" "/lib/ld-uClibc.so.0" +// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-HARD-UCLIBC: "[[TC]]/mipsel-r2-hard-uclibc/lib{{/|\\\\}}crtbegin.o" +// EL-HARD-UCLIBC: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib" +// EL-HARD-UCLIBC: "-L[[TC]]/mipsel-r2-hard-uclibc/lib" +// EL-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/lib/../lib" +// EL-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib" +// EL-HARD-UCLIBC: "[[TC]]/mipsel-r2-hard-uclibc/lib{{/|\\\\}}crtend.o" +// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mhard-float -mnan=2008 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -mhard-float -mnan=2008 \ +// RUN: | FileCheck --check-prefix=EB-HARD-NAN2008 %s +// EB-HARD-NAN2008: "-internal-isystem" +// EB-HARD-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-HARD-NAN2008: "-internal-isystem" +// EB-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard-nan2008/lib" +// EB-HARD-NAN2008: "-internal-isystem" +// EB-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-NAN2008: "-internal-externc-isystem" +// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/lib/../usr/include" +// EB-HARD-NAN2008: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard-nan2008" +// EB-HARD-NAN2008: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-HARD-NAN2008: "[[TC]]/mips-r2-hard-nan2008/lib{{/|\\\\}}crtbegin.o" +// EB-HARD-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib" +// EB-HARD-NAN2008: "-L[[TC]]/mips-r2-hard-nan2008/lib" +// EB-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/lib/../lib" +// EB-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib" +// EB-HARD-NAN2008: "[[TC]]/mips-r2-hard-nan2008/lib{{/|\\\\}}crtend.o" +// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mhard-float -mnan=2008 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -mnan=2008 \ +// RUN: | FileCheck --check-prefix=EL-HARD-NAN2008 %s +// EL-HARD-NAN2008: "-internal-isystem" +// EL-HARD-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-HARD-NAN2008: "-internal-isystem" +// EL-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard-nan2008/lib" +// EL-HARD-NAN2008: "-internal-isystem" +// EL-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-NAN2008: "-internal-externc-isystem" +// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/lib/../usr/include" +// EL-HARD-NAN2008: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008" +// EL-HARD-NAN2008: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-HARD-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008/lib{{/|\\\\}}crtbegin.o" +// EL-HARD-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib" +// EL-HARD-NAN2008: "-L[[TC]]/mipsel-r2-hard-nan2008/lib" +// EL-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/lib/../lib" +// EL-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib" +// EL-HARD-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008/lib{{/|\\\\}}crtend.o" +// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EB -mhard-float -muclibc -mnan=2008 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EB -mhard-float -muclibc -mnan=2008 \ +// RUN: | FileCheck --check-prefix=EB-HARD-UCLIBC-NAN2008 %s +// EB-HARD-UCLIBC-NAN2008: "-internal-isystem" +// EB-HARD-UCLIBC-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EB-HARD-UCLIBC-NAN2008: "-internal-isystem" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard-nan2008-uclibc/lib" +// EB-HARD-UCLIBC-NAN2008: "-internal-isystem" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EB-HARD-UCLIBC-NAN2008: "-internal-externc-isystem" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/lib/../usr/include" +// EB-HARD-UCLIBC-NAN2008: "{{.*}}ld{{(.exe)?}}" +// EB-HARD-UCLIBC-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc" +// EB-HARD-UCLIBC-NAN2008: "-dynamic-linker" "/lib/ld-uClibc-mipsn8.so.0" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crti.o" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/mips-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtbegin.o" +// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib" +// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/mips-r2-hard-nan2008-uclibc/lib" +// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/lib/../lib" +// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/mips-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtend.o" +// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mhard-float -muclibc -mnan=2008 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -muclibc -mnan=2008 \ +// RUN: | FileCheck --check-prefix=EL-HARD-UCLIBC-NAN2008 %s +// EL-HARD-UCLIBC-NAN2008: "-internal-isystem" +// EL-HARD-UCLIBC-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-HARD-UCLIBC-NAN2008: "-internal-isystem" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard-nan2008-uclibc/lib" +// EL-HARD-UCLIBC-NAN2008: "-internal-isystem" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-HARD-UCLIBC-NAN2008: "-internal-externc-isystem" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/lib/../usr/include" +// EL-HARD-UCLIBC-NAN2008: "{{.*}}ld{{(.exe)?}}" +// EL-HARD-UCLIBC-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc" +// EL-HARD-UCLIBC-NAN2008: "-dynamic-linker" "/lib/ld-uClibc-mipsn8.so.0" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtbegin.o" +// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib" +// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/mipsel-r2-hard-nan2008-uclibc/lib" +// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/lib/../lib" +// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtend.o" +// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -msoft-float -mmicromips +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -msoft-float -mmicromips \ +// RUN: | FileCheck --check-prefix=EL-SOFT-MICRO %s +// EL-SOFT-MICRO: "-internal-isystem" +// EL-SOFT-MICRO: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-SOFT-MICRO: "-internal-isystem" +// EL-SOFT-MICRO: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/micromipsel-r2-soft/lib" +// EL-SOFT-MICRO: "-internal-isystem" +// EL-SOFT-MICRO: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-SOFT-MICRO: "-internal-externc-isystem" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/lib/../usr/include" +// EL-SOFT-MICRO: "{{.*}}ld{{(.exe)?}}" +// EL-SOFT-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r2-soft" +// EL-SOFT-MICRO: "-dynamic-linker" "/lib/ld.so.1" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-SOFT-MICRO: "[[TC]]/micromipsel-r2-soft/lib{{/|\\\\}}crtbegin.o" +// EL-SOFT-MICRO: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib" +// EL-SOFT-MICRO: "-L[[TC]]/micromipsel-r2-soft/lib" +// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r2-soft/lib/../lib" +// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib" +// EL-SOFT-MICRO: "[[TC]]/micromipsel-r2-soft/lib{{/|\\\\}}crtend.o" +// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crtn.o" + +// -EL -mhard-float -mmicromips -mnan=2008 +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=mips-mti-linux-gnu \ +// RUN: --gcc-toolchain=%S/Inputs/mips_mti_tree \ +// RUN: -EL -mhard-float -mmicromips -mnan=2008 \ +// RUN: | FileCheck --check-prefix=EL-SOFT-MICRO-NAN2008 %s +// EL-SOFT-MICRO-NAN2008: "-internal-isystem" +// EL-SOFT-MICRO-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2" +// EL-SOFT-MICRO-NAN2008: "-internal-isystem" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/micromipsel-r2-hard-nan2008/lib" +// EL-SOFT-MICRO-NAN2008: "-internal-isystem" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward" +// EL-SOFT-MICRO-NAN2008: "-internal-externc-isystem" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/lib/../usr/include" +// EL-SOFT-MICRO-NAN2008: "{{.*}}ld{{(.exe)?}}" +// EL-SOFT-MICRO-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008" +// EL-SOFT-MICRO-NAN2008: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crt1.o" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crti.o" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/micromipsel-r2-hard-nan2008/lib{{/|\\\\}}crtbegin.o" +// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib" +// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/micromipsel-r2-hard-nan2008/lib" +// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/lib/../lib" +// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/micromipsel-r2-hard-nan2008/lib{{/|\\\\}}crtend.o" +// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crtn.o" -- 2.40.0