Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Add CoreDisTools header #3874

Merged
merged 1 commit into from
Apr 7, 2016
Merged

Conversation

swaroop-sridhar
Copy link

CoreCLR uses the CoreDisTools library for utilities like GCStress
and SuperPMI. To aid these utilities, this change adds the
CoreDisTools header to CoreCLR repository.

This cleans up duplication of type/enum definitions in CoreDisTools
and CoreCLR sources, and provides for a cleaner way to use the
interface.

The understanding here is that CoreCLR defines the required
CoreDisTools interface, and will publish the header into the
cmake-install directory.

Any repository can pick up this header and supply implementations
for the imported functions. [Currently the only implementation
is the one that uses LLVM disassembler in the LLILC tree].

Two other changes:

  1. Define TypeDefs for exported function types in cordistools.h
    to avoid duplicating the signature in importing code.
  2. Move to the libcoredistools version 1.0.1, and use the new
    interface in disassembler.cpp

@swaroop-sridhar
Copy link
Author

@RussKeldorph please review

@swaroop-sridhar
Copy link
Author

CC @BruceForstall

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Ubuntu gcstress0xc

@swaroop-sridhar
Copy link
Author

@RussKeldorph Microsoft.NETCore.CoreDisTools v1.0.1-prerelease-00001 is already pushed to https://dotnet.myget.org/gallery/dotnet-core

const uint8_t *Bytes1, size_t Size1,
const uint8_t *Address2, const uint8_t *Bytes2,
size_t Size2);
typedef bool NearDiffCodeBlocks_Sig(const CorAsmDiff *AsmDiff,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I realize I missed this before, but I prefer a _t suffix over _Sig, but it's not a big deal. Also, you can use the signature type to declare the function like "DllIFace NearDifferCodeBlocks_Sig NearDifferCodeBlocks;" to save duplication. You don't have to change either of these, though.

@RussKeldorph
Copy link

LGTM aside from minor comments and assuming the tests should be passing.

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc
@dotnet-bot test Ubuntu gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Ubuntu gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test this please

@swaroop-sridhar
Copy link
Author

Failure in Windows GCStress is because of https://github.com/dotnet/coreclr/issues/3925

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Ubuntu gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test this please

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Ubuntu gcstress0xc

1 similar comment
@sejongoh
Copy link

sejongoh commented Apr 3, 2016

@dotnet-bot test Ubuntu gcstress0xc

@sejongoh
Copy link

sejongoh commented Apr 3, 2016

@dotnet-bot test Windows_NT gcstress0xc

1 similar comment
@sejongoh
Copy link

sejongoh commented Apr 3, 2016

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test this please

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Ubuntu gcstress0xc

CoreCLR uses the CoreDisTools library for utilities like GCStress
and SuperPMI. To aid these utilities, this change adds the
CoreDisTools header to CoreCLR repository.

This cleans up duplication of type/enum definitions in CoreDisTools
and CoreCLR sources, and provides for a cleaner way to use the
interface.

The understanding here is that CoreCLR defines the required
CoreDisTools interface, and will publish the header into the
cmake-install directory.

Any repository can pick up this header and supply implementations
for the imported functions. [Currently the only implementation
is the one that uses LLVM disassembler in the LLILC tree].

Two other changes:
1) Define TypeDefs for exported function types in cordistools.h
   to avoid duplicating the signature in importing code.
2) Move to the libcoredistools version 1.0.1, and use the new
   interface in disassembler.cpp
@swaroop-sridhar
Copy link
Author

@dotnet-bot test Windows_NT gcstress0xc

@swaroop-sridhar
Copy link
Author

@dotnet-bot test Ubuntu gcstress0xc

@swaroop-sridhar
Copy link
Author

The Windows_NT x64 Checked Build and Test (Jit - GCStress=0xC) failure is not related to the disassembler. CoreDisTools is unpacked and loaded OK.

@swaroop-sridhar
Copy link
Author

OSX x64 Checked Build and Test failure is also a test failure — unrelated to CoreDisTOols

@swaroop-sridhar swaroop-sridhar merged commit 4472a22 into dotnet:master Apr 7, 2016
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants