Skip to content

Commit

Permalink
[cmake] Strip quotes in try_compile_only
Browse files Browse the repository at this point in the history
After r372209, the compile command can end up including an argument with
quotes in it, e.g.

  -fprofile-instr-use="/foo/bar.profdata"

when invoking the compiler with execute_process, the compiler ends up
getting that argument with quotes and all, and fails to open the file.

This all seems horribly broken, but one way of working around it is to
simply strip the quotes from the string here. If they were there to
protect a path that's got spaces in it, that wasn't going to work
anyway because the string is later split by spaces.

llvm-svn: 372312
  • Loading branch information
zmodem committed Sep 19, 2019
1 parent aa03c14 commit ec841cf
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions compiler-rt/cmake/Modules/BuiltinTests.cmake
Expand Up @@ -72,6 +72,12 @@ function(try_compile_only output)
endif()
endforeach()

# Strip quotes from the compile command, as the compiler is not expecting
# quoted arguments (see discussion on D62063 for when this can come up). If
# the quotes were there for arugments with spaces in them, the quotes were
# not going to help since the string gets split on spaces below.
string(REPLACE "\"" "" test_compile_command "${test_compile_command}")

string(REPLACE " " ";" test_compile_command "${test_compile_command}")

execute_process(
Expand Down

0 comments on commit ec841cf

Please sign in to comment.