-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Resolve path before initializing objwriter #87962
Conversation
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas Issue DetailsFix #87961
|
@@ -850,10 +850,10 @@ public ObjectWriter(string objectFilePath, NodeFactory factory, ObjectWritingOpt | |||
{ | |||
var triple = GetLLVMTripleFromTarget(factory.Target); | |||
|
|||
_nativeObjectWriter = InitObjWriter(objectFilePath, triple); | |||
_nativeObjectWriter = InitObjWriter(Path.GetFullPath(objectFilePath), triple); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the API that the object writer uses to open the file that makes it choke on ..
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like it ends up calling open(2)
from https://github.com/dotnet/llvm-project/blob/8dad63a6a1ba42171420f2f6e24f2b5d0a5179ab/llvm/lib/Support/Unix/Path.inc#L1012, which should be able to handle the relative paths, so not 100% sure why it is failing for @kotlarmilos?
Locally on osx-arm64, it is working fine with main branch when I changed -o:..
line in artifacts/obj/coreclr/crossgen2/arm64/Debug/native/crossgen2.ilc.rsp
to a relative path /Users/am11/projects/runtime/src/../artifacts/obj/coreclr/crossgen2/arm64/Debug/native/crossgen2.o
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've encountered the failure on the CI when targeting iOS platforms in #87773. The host platform is osx-arm64
. I will try to reproduce it locally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will try to reproduce it locally
@kotlarmilos were you able to reproduce this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delayed reply. Yes, I can reproduce the issue locally on osx-arm64
.
For example, in the sample app, the NativeIntermediateOutputPath
is
/Users/miloskotlar/dotnet/runtime/src/mono/sample/iOS-NativeAOT/obj/native/
If I override NativeIntermediateOutputPath
with
/Users/miloskotlar/dotnet/runtime/src/mono/sample/iOS-NativeAOT/obj/native/dummydir/../
the ILCompiler fails to initialize the Native Object Writer.
I made a mistake regarding the Helix host platform, it should be osx-x64
. It appears that the issue is not specific to the architecture.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does dummydir exist? If it does not exist, it is expected for this to fail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's right, it doesn't exist. Probably that is the case with the Helix as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@am11 If no further actions are expected, I suggest we close the issue and PR.
Thank you all for the assistance!
Fix #87961