Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Consolidate LocateNativeCompiler target - #103375

Merged
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets
Oct 16, 2024
Merged

Consolidate LocateNativeCompiler target#103375
jkotas merged 4 commits into
dotnet:mainfrom
am11:feature/eng/internal-nativeaot-build.targets

Conversation

@am11

@am11am11 commented Jun 12, 2024

Copy link
Copy Markdown
Member

No description provided.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 12, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jun 12, 2024
@am11am11 added area-NativeAOT-coreclr and removed community-contribution Indicates that the PR has been added by a community member needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from 908e80a to be8d681CompareJune 13, 2024 07:26
@am11
am11 marked this pull request as ready for review June 13, 2024 07:26
Comment threadeng/internal-nativeaot-build.targets Outdated
@am11

am11 commented Jun 13, 2024

Copy link
Copy Markdown
MemberAuthor

Opened #103409, as it's failing on other PRs as well. Rest of the failures are unrelated to PR changes.

@MichalStrehovsky

Copy link
Copy Markdown
Member

Thanks, this is an awesome improvement, but we need to get official builds stabilized first since we didn't have any for a week. Build work has a high chance of breaking stuff. I'll mark no-merge for now.

@MichalStrehovskyMichalStrehovsky added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 14, 2024

@sbomersbomer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM once our official builds are unblocked. Thanks a lot!

</ItemGroup>

<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
<Target Name="_FixIlcTargetTriple"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you know why this is no longer needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This should be handled by

<CrossCompileAbiCondition="$(CrossCompileRid.StartsWith('linux-musl-')) or $(CrossCompileRid.StartsWith('alpine-'))">musl</CrossCompileAbi>
(since it's required by public consumption as well)

@am11

am11 commented Jun 25, 2024

Copy link
Copy Markdown
MemberAuthor

Failures are unrelated according to Build Analysis. I think it would be good to run outerloop nativeaot leg against this PR to rule out any latent surprises.

@agockeagocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. This is great, thanks!

@am11am11 added community-contribution Indicates that the PR has been added by a community member and removed blocked Issue/PR is blocked on something - see comments labels Oct 12, 2024
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from be64d07 to cb3e150CompareOctober 12, 2024 21:19
@jkotas

Copy link
Copy Markdown
Member

/azp run runtime-coreclr crossgen2 outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/native/managed/native-library.props

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@sbomer Could you please review this as well? Most of the changes are in the trimming tests.

@jkotas
jkotas requested a review from sbomerOctober 13, 2024 06:50
Comment threadsrc/native/managed/compile-native.proj Outdated
@am11
am11force-pushed the feature/eng/internal-nativeaot-build.targets branch from d50b9b6 to 04f086aCompareOctober 13, 2024 16:40
Comment on lines -14 to -20
<PropertyGroup>
<!-- in net9.0 we can do this, but only on mobile apple platforms, not OSX -->
<SharedLibraryInstallName>@rpath/$(MSBuildProjectName).dylib</SharedLibraryInstallName>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsOSX)' == 'true'">
<LinkerArg Include="-Wl,-install_name,@rpath/$(MSBuildProjectName).dylib" />
</ItemGroup>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We generally need to specify the @rpath/-prefixed name on macOS for libraries. Is that done somewhere else now? What is the output for otool -l before and after?

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Is that done somewhere else now?

Seems to me like an avoidable duplicate:

<LinkerArgInclude="-Wl,-install_name,&quot;$(SharedLibraryInstallName)&quot;"Condition="'$(_IsiOSLikePlatform)' == 'true' and '$(NativeLib)' == 'Shared'" />

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

@filipnavarafilipnavaraOct 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use it for all apple platforms? Or are there use-cases when we explicitly don't need it?

I'd say we can. We would need to check with Xamarin workloads to ensure that it doesn't break anything.

Note that generally Xamarin workloads have an SDK code on the consumption side where it fixes up the paths with install_name_tool if they are wrong, so I don't expect it to break anything there. I am more concerned that the workload may also specify -install_name on the library compilation side and it would collide if we add it in the NativeAOT linker args.

@am11am11Oct 13, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

With 9a97e5e the behavior is:

- cmdsize 72- name bin/Release/net9.0/osx-arm64/native/helloworld.dylib (offset 24)+ cmdsize 48+ name @rpath/helloworld.dylib (offset 24)
  • User can skip setting install_name with SkipInstallName
  • If user has <LinkerArg Include="-Wl,-install_name,@rpath/TheirName" /> type of thing specified in their project, TheirName takes precedence with SkipInstallName=true

What do you think?

cDAC (the project being modified) is currently only used for testing in the repo, which is working, so I think we can live with it without waiting for next SDK update which won't be long (10.0 alpha1).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@jkotas
jkotas merged commit c627f38 into dotnet:mainOct 16, 2024
@am11
am11 deleted the feature/eng/internal-nativeaot-build.targets branch October 16, 2024 09:30
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 16, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-NativeAOT-coreclrcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@am11@MichalStrehovsky@jkotas@agocke@sbomer@filipnavara