[debuginfo-tests][dexter] Add --builder gcc support for POSIX
Differential Revision: https://reviews.llvm.org/D75339
GitOrigin-RevId: b4b9fa5e11abab38e4f5dcd65b57c0226a0aee15
diff --git a/dexter/dex/builder/scripts/posix/gcc.sh b/dexter/dex/builder/scripts/posix/gcc.sh
new file mode 100755
index 0000000..c18e333
--- /dev/null
+++ b/dexter/dex/builder/scripts/posix/gcc.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+set -e
+
+if test -z "$PATHTOGCC"; then
+ PATHTOGCC=gcc
+fi
+
+for INDEX in $SOURCE_INDEXES
+do
+ CFLAGS=$(eval echo "\$COMPILER_OPTIONS_$INDEX")
+ SRCFILE=$(eval echo "\$SOURCE_FILE_$INDEX")
+ OBJFILE=$(eval echo "\$OBJECT_FILE_$INDEX")
+ $PATHTOGCC -std=gnu++11 -c $CFLAGS $SRCFILE -o $OBJFILE
+done
+
+$PATHTOGCC $LINKER_OPTIONS $OBJECT_FILES -o $EXECUTABLE_FILE
diff --git a/dexter/dex/tools/clang_opt_bisect/Tool.py b/dexter/dex/tools/clang_opt_bisect/Tool.py
index a2fc296..a8bdd02 100644
--- a/dexter/dex/tools/clang_opt_bisect/Tool.py
+++ b/dexter/dex/tools/clang_opt_bisect/Tool.py
@@ -77,6 +77,13 @@
return limits
+ def handle_options(self, defaults):
+ options = self.context.options
+ if "clang" not in options.builder.lower():
+ raise Error("--builder %s is not supported by the clang-opt-bisect tool - only 'clang' is "
+ "supported " % options.builder)
+ super(Tool, self).handle_options(defaults)
+
def _run_test(self, test_name): # noqa
options = self.context.options
@@ -177,7 +184,7 @@
file_name = ''.join(
c for c in file_name
if c.isalnum() or c in '()-_./ ').strip().replace(
- ' ', '_').replace('/', '_')
+ ' ', '_').replace('/', '_')
output_text_path = os.path.join(options.results_directory,
'{}.txt'.format(file_name))
@@ -188,7 +195,7 @@
heuristic_verbose_output + '\n', stream=Stream(fp))
output_dextIR_path = os.path.join(options.results_directory,
- '{}.dextIR'.format(file_name))
+ '{}.dextIR'.format(file_name))
with open(output_dextIR_path, 'wb') as fp:
pickle.dump(steps, fp, protocol=pickle.HIGHEST_PROTOCOL)
@@ -229,7 +236,6 @@
self._all_bisect_pass_summary)
return ReturnCode.OK
-
def _clang_opt_bisect_build(self, opt_bisect_limits):
options = self.context.options
compiler_options = [