Comments (5)
Ah... forgot about this. The Debian package has it stripped while the tarball and the symbol package have it unstripped. (Edit: Rather, "not all the way stripped". file
reports unstripped but some stripping has been done.)
Since stripping happens after the build, this doesn't affect build ID:
#> for x in *; do du $x ; sha256sum $x | cut '-d ' -f1 ; file $x | cut -d, -f5-6; echo; done
7332 libcoreclr_debpkg.so
43a52aed991d928db33d3c2a22ba9d8b10d154cac07a1ee88c8c55864c54cf58
BuildID[sha1]=b4c030672d8bb8cffdae6ebfac0717763f6677f8, stripped
8960 libcoreclr_sympkg.so
00dc11b4ab45831ef1648e3d183918df77ef28b234e907c921d5dbb0a821e8ca
BuildID[sha1]=b4c030672d8bb8cffdae6ebfac0717763f6677f8, not stripped
8960 libcoreclr_zip.so
00dc11b4ab45831ef1648e3d183918df77ef28b234e907c921d5dbb0a821e8ca
BuildID[sha1]=b4c030672d8bb8cffdae6ebfac0717763f6677f8, not stripped
CoreCLR isn't stripping it "all the way", and the Deb package tool is doing the rest at packaging time. Stripping is entirely handled by the Deb/RPM packaging process for traditional Linux builds, which would explain why it does this by default.
https://github.com/dotnet/core-setup/issues/1607 tracks normalizing this.
(https://github.com/dotnet/core-setup/issues/8356 tracks embracing debuginfo/dbgpkg to fit in with the normal Linux ecosystem.)
This means I don't think we'll have any issues with mismatching bits here, since they're the same build for sure and all that's different is how far they're stripped.
from symstore.
@dagood @JohnTortugo do either of you understand why the libcoreclr.so included in the runtime install is slightly different from the libcoreclr.so we publish (and then download)? Does our release pipeline do something differently between how the symbol packages are created and the actual product ones?
In the end, the downloaded libcoreclr.so (and libcoreclr.so.dbg) work just fine in lldb (at least for me) so I'm not sure if there is anything broken by this. @sdmaclea is that true?
from symstore.
I'm not sure if there is anything broken by this. @sdmaclea is that true?
It was confusing, but I don't know that anything is impacted.
from symstore.
Can you attach the files to make sure I look at the same stuff?
I'm confused this is possible, because ELF files should be identified by their build ID, which I expect to be different for every single build because it's based on hashing parts of the file (so I read). If the symbol downloader is able to find symbols for a libcoreclr.so
, I'd expect the build id to match, and for that to mean it's definitely the same exact build.
I think the linker option we're using is this: http://sourceware.org/binutils/docs-2.23.1/ld/Options.html#Options --build-id
(--build-id=sha
for Core-Setup and CoreCLR).
from symstore.
It would also be good to know how you acquired .NET Core for that machine in case there's something weird going on for a specific channel.
from symstore.
Related Issues (20)
- Improve Symbol Uploader error reporting HOT 1
- dotnet-symbol ReadMe clarification HOT 7
- Support .debug extension in ELFFileKeyGenerator HOT 2
- Fix --host-only dotnet-symbol option for 5.x ELF binaries
- Add a --native-only dotnet-symbol that only downloads native binaries
- Add the cross OS DAC name "mscordaccore.dll" to the ELF key generator HOT 1
- Change the missing "special" coreclr indexed binaries to warnings
- ELF Key Conventions assume a 20-byte Build-ID
- Build-ID is forced to be in section named .gnu.debug.build-id
- ELF file extension does not always indicate debug info existance
- PE-timestamp-filesize format HOT 6
- Download is slow; diagnostic tools are unusable HOT 5
- Dotnet-Symbols Failures Should Display Which Files Failed HOT 2
- dotnet-symbol doesn't work with dumps created with 6.0 createdump
- `dotnet-symbol` always exits with success code
- Fix dotnet-symbol for newer MacOS dumps HOT 1
- Unable to download dotnet error HOT 1
- Microsoft.SymbolStore NuGet Package HOT 4
- SHould https be used for servers? HOT 1
- Permanent exception in `Microsoft.FileFormats.PDB.PDBFile.ReadDirectory()` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from symstore.