Beispiel #1
0
def get_compile_argv(filename):
    target = replace_ext(filename, "elf")

    if filename.endswith(".c"):
        return ['gcc', '-o', target, filename], target

    argv, externs = get_rustc_argv()
    if argv is None:
        raise Exception("failed to build library")

    return argv + extern(externs) + ['-o', target, filename], target
Beispiel #2
0
def generate_submission(source, llvm_target):
    argv, externs = get_rustc_argv('release', llvm_target)
    target = replace_ext(source, "s")

    argv = argv + extern(externs) + [
        "--crate-type", "cdylib", "--emit", "asm", "-C",
        "llvm-args=-disable-debug-info-print", "-C", "lto=fat", "-C",
        "opt-level=2", "-C", "panic=abort", "-o", target, "-"
    ]

    if has_to_recompile(source, target, externs):
        if compile_file(ROOTDIR, argv, target, read_source(source)) is None:
            return None

    return target
Beispiel #3
0
def list_generated_files(filename):
    return [
        replace_ext(filename, ext)
        for ext in ["elf", "bc", "ll", "s", "rs.c", "rs.elf", "gcno", "gcda"]
    ]
Beispiel #4
0
def get_compile_argv(filename):
    target = replace_ext(filename, "elf")
    return ['gcc', '-Wall', '-Wextra', '-Werror', '-o', target,
            filename], target
Beispiel #5
0
def list_generated_files(filename):
    return [replace_ext(filename, ext) for ext in ["elf"]]
Beispiel #6
0
def get_compile_argv(filename):
    target = replace_ext(filename, "elf")
    return [
        which('clang') or which('gcc'), '-Wall', '-Wextra', '-Werror', '-o',
        target, filename
    ], target
Beispiel #7
0
def list_generated_files(filename):
    return [replace_ext(filename, ext) for ext in ["elf"]]
Beispiel #8
0
def get_compile_argv(filename):
    target = replace_ext(filename, "elf")
    return [which('clang') or which('gcc'), '-Wall','-Wextra','-Werror','-o', target, filename], target