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

[mono] Add support for UnmanagedCallersOnlyAttribute #38728

Merged
merged 27 commits into from
Jul 10, 2020

Commits on Jul 8, 2020

  1. Configuration menu
    Copy the full SHA
    e6009c9 View commit details
    Browse the repository at this point in the history
  2. [marshal] Allow calls to mono_marshal_get_managed_wrapped without a d…

    …elegate
    
    class
    
    In that case, create a wrapper based on the signature of the method itself.
    
    TODO:
     - check that the method is static
     - check that the method does not have any marshal info
       (currently it's assumed to not be present and ignored)
    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    4156eff View commit details
    Browse the repository at this point in the history
  3. [aot] Allow decode_method_ref to decode NATIVE_TO_MANAGED wrappers wi…

    …thout a
    
    delegate class
    
    Bump the AOT file format
    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    a8d4d57 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    40662c4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    92ef04c View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    36ebfaa View commit details
    Browse the repository at this point in the history
  7. fixup build

    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    376db97 View commit details
    Browse the repository at this point in the history
  8. fixup null

    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    ff12195 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    04b6da5 View commit details
    Browse the repository at this point in the history
  10. jit: move wrapper creation to method-to-ir, not mono_ldftn

    Do it at IR generation of the caller, not every time the ldftn is executed
    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    3ef4363 View commit details
    Browse the repository at this point in the history
  11. fix typo

    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    1f6d260 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    2579230 View commit details
    Browse the repository at this point in the history
  13. jit: don't create a jump trampoline for ldftn of a native-to-managed …

    …wrapper
    
    The wrapper might be called from a thread that's not attached to the runtime,
    and the jump trampoline will look at TLS vars that are not initialized
    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    00ed38d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    b100d40 View commit details
    Browse the repository at this point in the history
  15. remove obsolete comment

    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    7b00b07 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    6340c36 View commit details
    Browse the repository at this point in the history
  17. Emit IPE throw instead of aborting JIT or interp compilation for bad …

    …UnmanagedCallersOnly methods
    
    Instead of throwing while JITing (or transforming), throw when the LDFTN is
    executed.
    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    a7199ad View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    d6b9c56 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    1b5422f View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    6e85742 View commit details
    Browse the repository at this point in the history
  21. disallow DllImport and UnmanagedCallersOnly together

    throw NotSupportedException
    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    9d502c5 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    70075a9 View commit details
    Browse the repository at this point in the history
  23. Apply suggestions from code review

    Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
    lambdageek and CoffeeFlux committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    025dd73 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    0e6f067 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    a2f0d94 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    89c8c28 View commit details
    Browse the repository at this point in the history
  27. remove dead code

    lambdageek committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    ee50f3e View commit details
    Browse the repository at this point in the history