-
Notifications
You must be signed in to change notification settings - Fork 41
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
Changes to support TLS access emitted in ILC #425
Conversation
I have troubles with building/testing this on osx-arm64 Building succeeds, but there are many warnings about unused assignment to if I try build/test NativeAOT after that the machine runs out of memory. All this happens if my changes are reverted as well. It looks like I have a newer Xcode/clang on my machine compared to the lab (I have 14.3.1). Not sure if that could be the reason for warnings and misbehaving .dylib @filipnavara - any ideas what could be wrong? |
I'll give it a try tomorrow in the morning. My last local build was apparently done with Xcode 14.2. I have since updated my machine to 14.3 and 15 Beta, and it definitely runs into some build issues. |
the offending process appears to be dsymutil when building tests. The test build spawns 3 of them and each takes 30+ Gb
I will try installing/switching to 14.2 cmd tools. Perhaps that would not have the issue. |
I built the whole LLVM repo with
Also getting those.
That's suspicious for sure. Maybe you can spindump it (from Activity Monitor) to see what is it doing? (There's a global symbol map cache somewhere and it can be corrupted; although I never hit that myself) |
I've used Perhaps it is not having |
I am building the commit 43fe12a - that was before my changes in the PR. |
Installed older command line utils. The build no longer warns about I suspect something is corrupted on my machine, but no idea what. Some observations (maybe that is ok, but seems strange): |
Apple has unusual way to index debug symbols. In order to save linking time and space they don't copy the DWARF info from .o files into linked binaries. They just assign an UUID to the final binary and maintain a map from the UUID back to the .o files where the debugger find and loads it (and only performs the relocations when actually necessary during debugging). The consequence of this approach is that there are several caches which maintain the maps, and it's not all necessarily obvious or well documented. Long story short... if you can figure out which |
I also see 3 warnings in the build output like:
That matches the 3 runaway dsymutil processes, so it could be related. The warnings are not there when reverting to the original libobjwriter.dylib from February 6. |
if I build If I use the binary built from I think I will limit the initial threadstatic changes to Windows and Linux. Probably just x64 as that is enough to discuss and settle on the runtime changes and these combinations are the easiest to test. Arm64 and macos combinations can come later as separate changes. |
Submitted #433 to fix the DWARF issue that was causing the hang.
Pro-tip: If you are interested only in ObjWriter you can build with |
caab679
to
7ef2397
Compare
I will make a separate PR for this. |
In progress.
These are companion changes for dotnet/runtime#87148 , which is also in progress.