-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Remove bash dependency from init-compiler #77304
Conversation
Also fixes shell check warnings in `System.Globalization.Native/local_build.sh`.
Tagging subscribers to this area: @dotnet/area-system-globalization Issue DetailsAlso fixes shell check warnings in Upstream PR: dotnet/arcade#11359
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure Issue DetailsAlso fixes shell check warnings in Upstream PR: dotnet/arcade#11359
|
3ed05b6
to
16cc538
Compare
16cc538
to
0d8d146
Compare
cc @jkotas, @akoeplinger |
I am not sure whether it is a good idea to include The current native AOT plan is: You have to have version-less tools installed. If you do not have version-less tools installed, you have to set |
We moved this script to arcade to avoid duplicating the code: #59018 (it is already included in This is a freestanding script to locate compiler on the system. It works for all supported build environments (it does not look for prerequisite beyond a few compiler toolchain components, mainly the driver; clang or gcc).
I was experimenting (for a follow up PR) with keeping that experience. If user specified e.g. |
This nuget package is not a shipping nuget package. It is not on nuget.org. It is for internal .NET build infrastructure use only. |
Right, my point was the only reason it's moved to arcade was to avoid maintaining two copies of same script, that locates versioned compiler in PATH. |
It would still mean we're essentially signing up for shipping init-compiler.sh officially (even if it's just for this opt-in static ICU linking feature from local_build.sh). That said, maybe that's the right choice given we need to hardcode clang version numbers which are specific to our build environment e.g. like this today: runtime/src/coreclr/tools/aot/crossgen2/crossgen2.csproj Lines 34 to 35 in f4b715f
|
We can call |
0d1d568
to
78769a8
Compare
Removed hard-coded versions in favor of similar target used in mono and DNNE test projs. |
Condition="'$(TestNativeAot)' == 'true' and '$(HostOS)' != 'windows'" | ||
BeforeTargets="SetupOSSpecificProps"> | ||
<PropertyGroup> | ||
<CppCompilerAndLinker Condition="'$(CppCompilerAndLinker)' == ''">clang</CppCompilerAndLinker> |
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.
looking at the whole PR again, maybe it'd be better to not use this property name at all and go with what we use in the NativeExports.csproj:
<PropertyGroup>
<NativeCompiler>$(Compiler)</NativeCompiler>
<NativeCompiler Condition="'$(NativeCompiler)' == ''">clang</NativeCompiler>
</PropertyGroup>
that'd also support overriding via the $(Compiler)
property.
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.
Compiler == CppCompilerAndLinker here, see eng/build.sh
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.
omg, so many abstractions 😄
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 am all for replacing CppCompilerAndLinker
and CppLinker
in favor of NativeCompiler
as property name, but I think some consumers are relying on CppCompilerAndLinker
.
Also fixes shell check warnings in
System.Globalization.Native/local_build.sh
.Upstream PR: dotnet/arcade#11359