Browse Source

Workaround parsing GNU system headers with GCC 11.0 version. (#1737)

Closes https://github.com/mono/CppSharp/issues/1703.

Upstream bugs:

  https://github.com/llvm/llvm-project/issues/51607
  https://github.com/llvm/llvm-project/issues/53152
pull/1740/head v1.0.50
João Matos 2 years ago committed by GitHub
parent
commit
02725320fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Parser/ParserOptions.cs

4
src/Parser/ParserOptions.cs

@ -240,9 +240,11 @@ namespace CppSharp.Parser @@ -240,9 +240,11 @@ namespace CppSharp.Parser
GetUnixCompilerInfo(headersPath, out var compiler, out var longVersion, out var shortVersion);
AddSystemIncludeDirs(BuiltinsDir);
AddArguments($"-fgnuc-version={longVersion}");
var majorVersion = shortVersion.Split('.')[0];
// Workaround https://github.com/llvm/llvm-project/issues/53152, remove once bug is fixed.
AddArguments(int.Parse(majorVersion) >= 11 ? $"-fgnuc-version=10.1" : $"-fgnuc-version={longVersion}");
string[] versions = { longVersion, shortVersion, majorVersion };
string[] triples = { "x86_64-linux-gnu", "x86_64-pc-linux-gnu" };
if (compiler == "gcc")

Loading…
Cancel
Save