Skip to content

Commit 585dbf6

Browse files
authored
added fork+exec support and updated Indexing.md (#578)
1 parent e137812 commit 585dbf6

5 files changed

Lines changed: 383 additions & 12 deletions

File tree

bin/Index/Importer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,8 @@ static const std::string_view kMLLVM("-mllvm");
577577
static bool IsOptNeedingFixing(std::string_view arg) {
578578
return arg == kOptNoStdInc || arg == kOptNoStdIncxx ||
579579
arg == kOptNoBuiltinInc || arg == kOptNoStdSystemInc ||
580-
arg.starts_with("-fsanitize=");
580+
arg.starts_with("-fsanitize=") ||
581+
arg.starts_with("-mrelocation-model");
581582
}
582583

583584
static bool IsOpt1NeedingFixing(std::string_view arg) {

bin/Index/Main.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ DEFINE_string(workspace, "mx-workspace",
7171

7272
DEFINE_bool(generate_sourceir, false, "Generate SourceIR from the top-level declarations");
7373

74+
DEFINE_bool(fork_mode, false, "Use --fork_mode if running inside docker");
75+
DEFINE_bool(reproc_mode, false, "Use --reproc_mode to use reproc library");
76+
7477
namespace {
7578

7679
std::unique_ptr<llvm::MemoryBuffer>
@@ -165,6 +168,8 @@ int main(int argc, char *argv[], char *envp[]) {
165168
<< " [--env PATH_TO_COPIED_ENV_VARS]\n"
166169
<< " [--show_progress]\n"
167170
<< " [--generate_sourceir]\n"
171+
<< " --fork_mode\n"
172+
<< " --reproc_mode\n"
168173
<< " --db DATABASE\n"
169174
<< " --workspace INDEXER_WORKSPACE_DIR\n"
170175
<< " --target COMPILE_COMMANDS\n";
@@ -187,7 +192,13 @@ int main(int argc, char *argv[], char *envp[]) {
187192
if (FLAGS_target.empty()) {
188193
std::cerr
189194
<< "Must specify a path to a target file to import with --target. "
190-
"Use - or /dev/stdin to read from stdin.";
195+
"Use - or /dev/stdin to read from stdin.\n";
196+
return EXIT_FAILURE;
197+
}
198+
199+
if (!FLAGS_reproc_mode && !FLAGS_fork_mode) {
200+
std::cerr
201+
<< "Must specify --reproc_mode or --fork_mode\n";
191202
return EXIT_FAILURE;
192203
}
193204

0 commit comments

Comments
 (0)