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

Resolve path before initializing objwriter #87962

Closed
wants to merge 1 commit into from

Conversation

am11
Copy link
Member

@am11 am11 commented Jun 23, 2023

Fix #87961

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Jun 23, 2023
@ghost
Copy link

ghost commented Jun 23, 2023

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

Issue Details

Fix #87961

Author: am11
Assignees: -
Labels:

community-contribution, area-NativeAOT-coreclr

Milestone: -

@@ -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);
Copy link
Member

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 ..?

Copy link
Member Author

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.

Copy link
Member

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.

Copy link
Member

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?

Copy link
Member

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.

Copy link
Member

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.

Copy link
Member

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.

Copy link
Member

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!

@am11 am11 closed this Jul 11, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Aug 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-NativeAOT-coreclr community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ILC fails to initialize native object writer with path containing '../'
4 participants