Fix offsets tool for Android NDK r20 #15648
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE: please backport to 2019-06, it is required to allow Xamarin.Android to switch to that branc
Context: dotnet/android#3155
Android NDK r20 contains a header file (
ioctl.h
) with this code:The
_RENAME
macro is defined as__asm__(x)
and serves the purpose ofreplacing an existing symbol with the new one, decorated with the keyword.
Unfortunately, Mono's
offsets-tool
doesn't parse the header properly asCppSharp
doesn't understand__asm__
:The workaround, implemented in this commit, is to define the
BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD
macro thus removing the "conflicting"declaration from the picture, which changes nothing from the offset tool's point
of view and lets us process the headers in NDK r20 properly.