brad created this revision. brad added a reviewer: MaskRay. brad added a project: clang. Herald added a subscriber: StephenFan. Herald added a project: All. brad requested review of this revision.
Similar to D116843 <https://reviews.llvm.org/D116843>. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D128554 Files: clang/lib/Driver/ToolChains/Minix.cpp clang/test/Driver/minix.c Index: clang/test/Driver/minix.c =================================================================== --- /dev/null +++ clang/test/Driver/minix.c @@ -0,0 +1,6 @@ +// -r suppresses default -l and crt*.o like -nostdlib. +// RUN: %clang -### %s --target=i386-unknown-minix -r 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-RELOCATABLE +// CHECK-RELOCATABLE: "-r" +// CHECK-RELOCATABLE-NOT: "-l +// CHECK-RELOCATABLE-NOT: /crt{{[^.]+}}.o Index: clang/lib/Driver/ToolChains/Minix.cpp =================================================================== --- clang/lib/Driver/ToolChains/Minix.cpp +++ clang/lib/Driver/ToolChains/Minix.cpp @@ -56,7 +56,8 @@ assert(Output.isNothing() && "Invalid output."); } - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { + if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, + options::OPT_r)) { CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crt1.o"))); CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); CmdArgs.push_back( @@ -71,7 +72,8 @@ getToolChain().addProfileRTLibs(Args, CmdArgs); - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { + if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs, + options::OPT_r)) { if (D.CCCIsCXX()) { if (getToolChain().ShouldLinkCXXStdlib(Args)) getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); @@ -79,7 +81,8 @@ } } - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { + if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, + options::OPT_r)) { if (Args.hasArg(options::OPT_pthread)) CmdArgs.push_back("-lpthread"); CmdArgs.push_back("-lc");
Index: clang/test/Driver/minix.c =================================================================== --- /dev/null +++ clang/test/Driver/minix.c @@ -0,0 +1,6 @@ +// -r suppresses default -l and crt*.o like -nostdlib. +// RUN: %clang -### %s --target=i386-unknown-minix -r 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-RELOCATABLE +// CHECK-RELOCATABLE: "-r" +// CHECK-RELOCATABLE-NOT: "-l +// CHECK-RELOCATABLE-NOT: /crt{{[^.]+}}.o Index: clang/lib/Driver/ToolChains/Minix.cpp =================================================================== --- clang/lib/Driver/ToolChains/Minix.cpp +++ clang/lib/Driver/ToolChains/Minix.cpp @@ -56,7 +56,8 @@ assert(Output.isNothing() && "Invalid output."); } - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { + if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, + options::OPT_r)) { CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crt1.o"))); CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); CmdArgs.push_back( @@ -71,7 +72,8 @@ getToolChain().addProfileRTLibs(Args, CmdArgs); - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { + if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs, + options::OPT_r)) { if (D.CCCIsCXX()) { if (getToolChain().ShouldLinkCXXStdlib(Args)) getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); @@ -79,7 +81,8 @@ } } - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { + if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, + options::OPT_r)) { if (Args.hasArg(options::OPT_pthread)) CmdArgs.push_back("-lpthread"); CmdArgs.push_back("-lc");
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits