Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android][arm64] Use of undeclared identifier 'ICALL_SIG_TYPE__Bool' #91779

Closed
simonrozsival opened this issue Sep 8, 2023 · 4 comments · Fixed by #91808
Closed

[Android][arm64] Use of undeclared identifier 'ICALL_SIG_TYPE__Bool' #91779

simonrozsival opened this issue Sep 8, 2023 · 4 comments · Fixed by #91808
Assignees
Labels
arch-arm64 area-Build-mono blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' blocking-official-build Known Build Error Use this to report build issues in the .NET Helix tab os-android
Milestone

Comments

@simonrozsival
Copy link
Member

simonrozsival commented Sep 8, 2023

Build Information

Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=399447
Build error leg or test failing: Build / android-arm64 Release AllSubsets_Mono / Build product
Pull request: #91520

Android arm64 builds are failing (x64 and arm builds don't seem to be affected) with the following error:

 /__w/1/s/src/mono/mono/metadata/icall.c:7252:1: error: use of undeclared identifier 'ICALL_SIG_TYPE__Bool'; did you mean 'ICALL_SIG_TYPE_bool'?

Known Issue Error Message

Fill the error message using step by step known issues guidance.

{
  "ErrorMessage": "(NETCORE_ENGINEERING_TELEMETRY=Build) The command \" cmake --build . --target install --config Release --parallel 4\" exited with code 2.",
  "ErrorPattern": "",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Known issue validation

Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=399447
Error message validated: (NETCORE_ENGINEERING_TELEMETRY=Build) The command " cmake --build . --target install --config Release --parallel 4" exited with code 2.
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 9/8/2023 8:20:10 AM UTC

Report

Build Definition Step Name Console log Pull Request
2263085 dotnet-runtime Build product Log
2262965 dotnet-runtime Build product Log
2262899 dotnet-runtime Build product Log
399826 dotnet/runtime Build product Log #91800
2262858 dotnet-runtime Build product Log
2262801 dotnet-runtime Build product Log
2262800 dotnet-runtime Build product Log
2262760 dotnet-runtime Build product Log
399499 dotnet/runtime Build product Log
2262713 dotnet-runtime Build product Log
399447 dotnet/runtime Build product Log #91520
399419 dotnet/runtime Build product Log #91774
2262662 dotnet-runtime Build product Log
399203 dotnet/runtime Build product Log #91713
398919 dotnet/runtime Build product Log

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
15 15 15
@simonrozsival simonrozsival added arch-arm64 blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' os-android area-Build-mono Known Build Error Use this to report build issues in the .NET Helix tab labels Sep 8, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Sep 8, 2023
@ghost
Copy link

ghost commented Sep 8, 2023

Tagging subscribers to 'arch-android': @steveisok, @akoeplinger
See info in area-owners.md if you want to be subscribed.

Issue Details

Build Information

Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=399447
Build error leg or test failing: Build / android-arm64 Release AllSubsets_Mono / Build product
Pull request: #91520

Android arm64 builds are failing (x64 and arm builds don't seem to be affected) with the following error:

 /__w/1/s/src/mono/mono/metadata/icall.c:7252:1: error: use of undeclared identifier 'ICALL_SIG_TYPE__Bool'; did you mean 'ICALL_SIG_TYPE_bool'?

Error Message

{
  "ErrorMessage": "(NETCORE_ENGINEERING_TELEMETRY=Build) The command " cmake --build . --target install --config Release --parallel 4" exited with code 2.",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}
Author: simonrozsival
Assignees: -
Labels:

arch-arm64, blocking-clean-ci, os-android, area-Build-mono, Known Build Error

Milestone: -

@lambdageek
Copy link
Member

Related to the C11 changes recently probably

@lambdageek lambdageek self-assigned this Sep 8, 2023
@lambdageek
Copy link
Member

We shouldn't use the bareword bool in macro magic

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Sep 8, 2023
@lewing lewing added this to the 9.0.0 milestone Sep 8, 2023
@lewing lewing removed the untriaged New issue has not been triaged by the area owner label Sep 8, 2023
@lewing
Copy link
Member

lewing commented Sep 8, 2023

This should be resolved, waiting for a green build to close it. There will be a follow-up to reintroduce the changes that were reverted.

@lewing lewing closed this as completed Sep 8, 2023
lambdageek added a commit to lambdageek/runtime that referenced this issue Oct 6, 2023
It will expand to `_Bool` in C11 and mess things up.

Use `boolean` instead

Fixes dotnet#91779
@ghost ghost locked as resolved and limited conversation to collaborators Oct 9, 2023
lambdageek added a commit that referenced this issue Oct 10, 2023
* For each platform decide if we will use C11 standard atomics, Win32 API atomics, GCC atomic intrinsics or emulated atomics.

   To use C11 atomics we generally want them to be lock-free for the primitive types we care about (that is, `ATOMIC_LONG_LONG_LOCK_FREE == 2` not `1` and similarly for other macros) because otherwise we cannot be sure if the atomic might use a global lock in which case we could have thread suspend problems if both the GC and the rest of the runtime use an atomic at the same time.

* On win32, use the win32 atomics until MSVC atomics support is not experimental, or we update our build to pass `/experimental:c11atomics`; and also until we build our C++ code with C++23 or later (otherwise MSVC will complain about including stdatomic.h)

* If the header gets included while we're generating offsets using `offsets-tool.py`, pretend we're using emulated atomics.  On some Linux configurations, the libclang that we use ends up picking up the platform `atomic.h` header, not the clang one, and then errors out on their underlying implementation.

* Replace the use of `bool` in some macros in Mono - it will expand to `_Bool` in C11 and mess things up.

   Use `boolean` instead

   Fixes #91779
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Oct 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 area-Build-mono blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' blocking-official-build Known Build Error Use this to report build issues in the .NET Helix tab os-android
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants