Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions eng/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,12 @@ while [[ $# > 0 ]]; do
shift 1
;;

*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1
Copy link
Member Author

Choose a reason for hiding this comment

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

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

;;

-clang*)
compiler="${opt/#-/}" # -clang-9 => clang-9 or clang-9 => (unchanged)
arguments="$arguments /p:Compiler=$compiler /p:CppCompilerAndLinker=$compiler"
Expand Down
11 changes: 6 additions & 5 deletions eng/pipelines/common/global-build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,18 +75,19 @@ jobs:
- name: _osParameter
value: -os ${{ parameters.osGroup }}

- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_musl')) }}:
- name: _osParameter
value: /p:RuntimeOS=linux-musl /p:OutputRid=linux-musl-${{ parameters.archType }}

- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_bionic')) }}:
- name: _osParameter
value: /p:RuntimeOS=linux-bionic /p:OutputRid=linux-bionic-${{ parameters.archType }}
value: /p:RuntimeOS=linux-bionic

# Do not rename as it clashes with MSBuild property in libraries/build-native.proj
- name: _crossBuildPropertyArg
value: /p:CrossBuild=${{ parameters.crossBuild }}

- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
value: ${{ parameters.jobParameters.crossrootfsDir }}

- name: _cxx11Parameter
${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.archType, 'arm64')) }}:
value: /p:MonoLLVMUseCxx11Abi=true
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/common/platform-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ jobs:
platform: Linux_musl_arm
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
container:
image: ubuntu-16.04-cross-arm-alpine-20210923140502-78f7860
image: ubuntu-18.04-cross-arm-alpine-20220915134743-78f7860
registry: mcr
jobParameters:
runtimeFlavor: ${{ parameters.runtimeFlavor }}
Expand All @@ -165,7 +165,7 @@ jobs:
platform: Linux_musl_arm64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
container:
image: ubuntu-16.04-cross-arm64-alpine-20210923140502-78f7860
image: ubuntu-22.04-cross-arm64-alpine-20220915142421-44c622d
registry: mcr
jobParameters:
runtimeFlavor: ${{ parameters.runtimeFlavor }}
Expand Down
8 changes: 4 additions & 4 deletions eng/pipelines/common/templates/runtimes/build-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ jobs:
pool: ${{ parameters.pool }}
dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}

${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.compilerName, 'gcc'), not(and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'), eq(parameters.archType, 'x64'))), not(eq(parameters.osGroup, 'OSX'))) }}:
${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.compilerName, 'gcc'), not(and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'))), not(eq(parameters.osGroup, 'OSX'))) }}:
compilerArg: '-clang9'
${{ if not(and(ne(parameters.osGroup, 'windows'), ne(parameters.compilerName, 'gcc'), not(and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'), eq(parameters.archType, 'x64'))), not(eq(parameters.osGroup, 'OSX')))) }}:
${{ if not(and(ne(parameters.osGroup, 'windows'), ne(parameters.compilerName, 'gcc'), not(and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'))), not(eq(parameters.osGroup, 'OSX')))) }}:
compilerArg: ''

# Test jobs should continue on error for internal builds
Expand Down Expand Up @@ -79,8 +79,8 @@ jobs:
- ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.compilerName, 'gcc')) }}:
- name: compilerArg
value: '-clang9'
# Building for x64 MUSL happens on Alpine Linux and we need to use the stable version available there
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'), eq(parameters.archType, 'x64')) }}:
# We need to use the stable version available on Alpine Linux
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl')) }}:
- name: compilerArg
value: ''
# AppleClang has different version scheme, so we let compiler introspection pick up the available clang from PATH
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/coreclr/templates/build-jit-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ jobs:
- ${{ if ne(parameters.osGroup, 'windows') }}:
- name: compilerArg
value: '-clang9'
# Building for x64 MUSL happens on Alpine Linux and we need to use the stable version available there
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'), eq(parameters.archType, 'x64')) }}:
# We need to use the stable version available on Alpine Linux
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl')) }}:
- name: compilerArg
value: ''
# AppleClang has different version scheme, so we let compiler introspection pick up the available clang from PATH
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/coreclr/templates/build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ jobs:
- ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.compilerName, 'gcc')) }}:
- name: compilerArg
value: '-clang9'
# Building for x64 MUSL happens on Alpine Linux and we need to use the stable version available there
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl'), eq(parameters.archType, 'x64')) }}:
# We need to use the stable version available on Alpine Linux
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubgroup, '_musl')) }}:
- name: compilerArg
value: ''
# AppleClang has different version scheme, so we let compiler introspection pick up the available clang from PATH
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/coreclr/templates/helix-queues-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- (Alpine.314.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:alpine-3.14-helix-amd64-20210910135833-1848e19
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- (Alpine.314.Amd64)ubuntu.1604[email protected]/dotnet-buildtools/prereqs:alpine-3.14-helix-amd64-20210910135833-1848e19
- (Alpine.314.Amd64)ubuntu.1804[email protected]/dotnet-buildtools/prereqs:alpine-3.14-helix-amd64-20210910135833-1848e19

# Linux musl arm32
- ${{ if eq(parameters.platform, 'Linux_musl_arm') }}:
Expand Down Expand Up @@ -110,7 +110,7 @@ jobs:
- (Debian.10.Amd64)[email protected]/dotnet-buildtools/prereqs:debian-10-helix-amd64-20220810215022-f344011
- (Debian.11.Amd64)[email protected]/dotnet-buildtools/prereqs:debian-11-helix-amd64-20220810215032-f344011
- Ubuntu.1804.Amd64
- (Centos.8.Amd64)Ubuntu.1604[email protected]/dotnet-buildtools/prereqs:centos-8-helix-20201229003624-c1bf759
- (Centos.8.Amd64)Ubuntu.1804[email protected]/dotnet-buildtools/prereqs:centos-8-helix-20201229003624-c1bf759
- (Fedora.34.Amd64)[email protected]/dotnet-buildtools/prereqs:fedora-34-helix-20220809205730-e7e8d1c
- RedHat.7.Amd64

Expand Down
20 changes: 5 additions & 15 deletions eng/pipelines/installer/jobs/build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,34 +200,24 @@ jobs:
value: ${{ eq(parameters.osSubgroup, '') }}

- ${{ if and(eq(parameters.osSubgroup, '_musl'), eq(parameters.osGroup, 'Linux')) }}:
# Set output RID manually: musl isn't properly detected. Make sure to also convert linux to
# lowercase for RID format. (Detection normally converts, but we're preventing it.)
- name: OutputRidArg
value: /p:OutputRid=linux-musl-${{ parameters.archType }}
- name: RuntimeOSArg
value: /p:RuntimeOS=linux-musl
- name: _PortableBuild
value: true

- ${{ if eq(parameters.crossBuild, true) }}:
- name: ArchArg
value: -arch ${{ parameters.archType }}

- name: BaseJobBuildCommand
value: >-
$(Build.SourcesDirectory)/build.sh -subset host+packs -ci
$(BuildAction)
$(ArchArg)
/p:CrossBuild=${{ parameters.crossBuild }}
/p:PortableBuild=$(_PortableBuild)
/p:SkipTests=$(SkipTests)
$(pgoInstrumentArg)
$(LiveOverridePathArgs)
$(CommonMSBuildArgs)
$(OutputRidArg)
$(RuntimeOSArg)

- name: PublishArguments
value: >-
/p:PortableBuild=$(_PortableBuild)
$(CommonMSBuildArgs)
$(OutputRidArg)
/bl:msbuild.publish.binlog

- name: installersSubsetArg
value: --subset packs.installers
Expand Down
14 changes: 1 addition & 13 deletions eng/pipelines/libraries/base-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ jobs:

- _msbuildCommonParameters: ''
# rename this variable, due to collision with build-native.proj
- _runtimeOSArg: ''
- _osArg: ''
- _finalFrameworkArg: ''
- _testModeArg: ''
Expand All @@ -71,12 +70,6 @@ jobs:
- ${{ if eq(parameters.crossBuild, true) }}:
- _crossBuildPropertyArg: /p:CrossBuild=true

- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_musl')) }}:
- _runtimeOSArg: /p:RuntimeOS=linux-musl

- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, ''), eq(parameters.archType, 'arm')) }}:
- _runtimeOSArg: /p:RuntimeOS=ubuntu.16.04

# force a value for OS when cross-building
- ${{ if in(parameters.osGroup, 'Browser', 'iOS', 'tvOS', 'Android', 'FreeBSD') }}:
- _osArg: -os ${{ parameters.osGroup }}
Expand Down Expand Up @@ -111,15 +104,10 @@ jobs:
- ${{ if ne(parameters.testDisplayName, '') }}:
- _testRunNamePrefixSuffix: ${{ parameters.testDisplayName }}

# Windows variables
- ${{ if eq(parameters.osGroup, 'windows') }}:
- _runtimeOSArg: /p:RuntimeOS=win10

# Non-Windows variables
- ${{ if ne(parameters.osGroup, 'windows') }}:
- _buildScript: ./$(_buildScriptFileName)$(scriptExt)

- _buildArguments: $(_runtimeConfigurationArg) -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_testModeArg) $(_testScopeArg) $(_osArg) $(_runtimeOSArg) $(_msbuildCommonParameters) $(_runtimeArtifactsPathArg) $(_crossBuildPropertyArg)
- _buildArguments: $(_runtimeConfigurationArg) -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_testModeArg) $(_testScopeArg) $(_osArg) $(_msbuildCommonParameters) $(_runtimeArtifactsPathArg) $(_crossBuildPropertyArg)
- ${{ parameters.variables }}

# we need to override this value to support build-coreclr-and-libraries-job.yml
Expand Down
6 changes: 3 additions & 3 deletions eng/pipelines/libraries/helix-queues-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ jobs:
- (Fedora.34.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:fedora-34-helix-20220908220224-98605e8
- Ubuntu.2204.Amd64.Open
- (Debian.11.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:debian-11-helix-amd64-20220908132354-59ee6b3
- (Mariner.1.0.Amd64.Open)ubuntu.1604[email protected]/dotnet-buildtools/prereqs:cbl-mariner-1.0-helix-20210528192219-92bf620
- (openSUSE.15.2.Amd64.Open)ubuntu.1604[email protected]/dotnet-buildtools/prereqs:opensuse-15.2-helix-amd64-20220912173041-1d2766c
- (Mariner.1.0.Amd64.Open)ubuntu.1804[email protected]/dotnet-buildtools/prereqs:cbl-mariner-1.0-helix-20210528192219-92bf620
- (openSUSE.15.2.Amd64.Open)ubuntu.1804[email protected]/dotnet-buildtools/prereqs:opensuse-15.2-helix-amd64-20220912173041-1d2766c
- ${{ if or(ne(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- (Centos.7.Amd64.Open)Ubuntu.1604[email protected]/dotnet-buildtools/prereqs:centos-7-mlnet-helix-20220601183719-dde38af
- (Centos.7.Amd64.Open)Ubuntu.1804[email protected]/dotnet-buildtools/prereqs:centos-7-mlnet-helix-20220601183719-dde38af
- RedHat.7.Amd64.Open
- (Debian.10.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:debian-10-helix-amd64-20220908132009-59ee6b3
- Ubuntu.1804.Amd64.Open
Expand Down
3 changes: 2 additions & 1 deletion eng/testing/tests.singlefile.targets
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
<PropertyGroup Condition="'$(TestNativeAot)' == 'true'">
<IlcToolsPath>$(CoreCLRILCompilerDir)</IlcToolsPath>
<IlcToolsPath Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)'">$(CoreCLRCrossILCompilerDir)</IlcToolsPath>
<CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows'">clang-9</CppCompilerAndLinker>
<CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows' and '$(RuntimeIdentifier)' == 'linux-musl-arm64'">clang-15</CppCompilerAndLinker>
<CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows' and '$(RuntimeIdentifier)' != 'linux-musl-arm64'">clang-9</CppCompilerAndLinker>
<SysRoot Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows'">$(ROOTFS_DIR)</SysRoot>
<IlcBuildTasksPath>$(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll</IlcBuildTasksPath>
<IlcSdkPath>$(CoreCLRAotSdkDir)</IlcSdkPath>
Expand Down
3 changes: 2 additions & 1 deletion src/coreclr/tools/aot/crossgen2/crossgen2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
<PropertyGroup Condition="'$(NativeAotSupported)' == 'true'">
<IlcToolsPath>$(CoreCLRILCompilerDir)</IlcToolsPath>
<IlcToolsPath Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)'">$(CoreCLRCrossILCompilerDir)</IlcToolsPath>
<CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows'">clang-9</CppCompilerAndLinker>
<CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows' and '$(RuntimeIdentifier)' == 'linux-musl-arm64'">clang-15</CppCompilerAndLinker>
<CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows' and '$(RuntimeIdentifier)' != 'linux-musl-arm64'">clang-9</CppCompilerAndLinker>
<SysRoot Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows'">$(ROOTFS_DIR)</SysRoot>
<IlcBuildTasksPath>$(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll</IlcBuildTasksPath>
<IlcSdkPath>$(CoreCLRAotSdkDir)</IlcSdkPath>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@
StandardOutputImportance="Low">
<Output TaskParameter="ConsoleOutput" PropertyName="DnneCompilerCommand" />
</Exec>

<Exec Command="bash -c 'source &quot;$(RepositoryEngineeringDir)/common/native/init-compiler.sh&quot; &quot;$(RepositoryEngineeringDir)/common/native&quot; $(TargetArchitecture) $(NativeCompiler) &amp;&amp; echo $LDFLAGS' 2>/dev/null"
EchoOff="true"
ConsoleToMsBuild="true"
StandardOutputImportance="Low">
<Output TaskParameter="ConsoleOutput" PropertyName="DnneLinkerCommand" />
</Exec>
</Target>

<Target Name="GetUnixCrossBuildArgumentsForDNNE"
Expand All @@ -61,7 +68,7 @@

<PropertyGroup>
<CommonToolchainArgs>--target=$(TargetTriple) --gcc-toolchain=$(ROOTFS_DIR)/usr --sysroot=$(ROOTFS_DIR)</CommonToolchainArgs>
<DnneLinkerUserFlags>$(CommonToolchainArgs) $(DnneLinkerUserFlags.Replace(';',' '))</DnneLinkerUserFlags>
<DnneLinkerUserFlags>$(CommonToolchainArgs) $(DnneLinkerCommand) $(DnneLinkerUserFlags.Replace(';',' '))</DnneLinkerUserFlags>
<DnneCompilerUserFlags>$(CommonToolchainArgs) $(DnneCompilerUserFlags.Replace(';',' '))</DnneCompilerUserFlags>
</PropertyGroup>
</Target>
Expand Down
Loading