[llvm-bugs] [Bug 39548] New: PGO bootstrap fails with python3: errors in perf-helper.py

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Nov 3 05:09:07 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=39548

            Bug ID: 39548
           Summary: PGO bootstrap fails with python3: errors in
                    perf-helper.py
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Tooling
          Assignee: unassignedclangbugs at nondot.org
          Reporter: romain.geissler at amadeus.com
                CC: llvm-bugs at lists.llvm.org

Hi,

Current clang fail to bootstrap in PGO mode when only python3 is available,
because perf-helper.py is not compatible with python 3. We can see two errors:

  File
"/workdir/src/llvm-7.0.0.src/tools/clang/utils/perf-training/perf-helper.py",
line 299
    by_count.sort(key = lambda (_,n): -n)
                               ^
SyntaxError: invalid syntax

which can be fixed by removing the parameter parenthesis.

And

$ "/usr/bin/python3.6"
"/workdir/src/llvm-7.0.0.src/tools/clang/utils/perf-training/perf-helper.py"
"cc1"
"/workdir/build/final-system/llvm-build/tools/clang/stage2-instrumented-bins/bin/clang"
"-Wall" "-pedantic" "-c"
"/home/jenkins/workspace/OTF_Toolchain_release_2.0-HLXHYRKCVDYQJLF23VGZ3MVAU6VGURX537LUE3KFVM2SSPMZ6IOA/output/src/llvm-7.0.0.src/tools/clang/utils/perf-training/cxx/hello_world.cpp"
# command stderr:
Traceback (most recent call last):
  File
"/workdir/src/llvm-7.0.0.src/tools/clang/utils/perf-training/perf-helper.py",
line 408, in <module>
    main()
  File
"/workdir/src/llvm-7.0.0.src/tools/clang/utils/perf-training/perf-helper.py",
line 405, in main
    sys.exit(f(sys.argv[2:]))
  File
"/workdir/src/llvm-7.0.0.src/tools/clang/utils/perf-training/perf-helper.py",
line 159, in cc1
    cc1_cmd = get_cc1_command_for_args(cmd, cc1_env)
  File
"/workdir/src/llvm-7.0.0.src/tools/clang/utils/perf-training/perf-helper.py",
line 119, in get_cc1_command_for_args
    for ln in cc_output.split('\n'):
TypeError: a bytes-like object is required, not 'str'

error: command failed with exit status: 1

which can be made both 2 and 3 compatible by using the attribute
universal_newlines=True

Will submit a patch for review.

Cheers,
Romain

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20181103/af94f6c7/attachment-0001.html>


More information about the llvm-bugs mailing list