From 75e182c26dbf5d9f8ccca0ac68ee63b0bebb17b8 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 18 Jul 2022 13:06:43 +0000
Subject: [PATCH 01/22] Update dependencies from
https://github.com/dotnet/arcade build 20220717.1 (#227)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 2 +-
eng/common/cross/build-rootfs.sh | 33 ++++++++++++++++++--------------
eng/common/cross/toolchain.cmake | 30 ++++++++++++++++++-----------
global.json | 4 ++--
5 files changed, 47 insertions(+), 34 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 36a132824a3f0..5114ec59c419d 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- 54a00a84b53b63a74d232498a9d1476ff2000b7f
+ f7951a64db920ea599bd6819065b661d88d26b23
-
+
https://github.com/dotnet/arcade
- 54a00a84b53b63a74d232498a9d1476ff2000b7f
+ f7951a64db920ea599bd6819065b661d88d26b23
-
+
https://github.com/dotnet/arcade
- 54a00a84b53b63a74d232498a9d1476ff2000b7f
+ f7951a64db920ea599bd6819065b661d88d26b23
diff --git a/eng/Versions.props b/eng/Versions.props
index 49709a55d8cdd..2eb4ffbe48887 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22358.3
+ 7.0.0-beta.22367.1
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index 5a59dcff28fb3..c8540474aa13f 100755
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -5,7 +5,7 @@ set -e
usage()
{
echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]"
- echo "BuildArch can be: arm(default), armel, arm64, x86"
+ echo "BuildArch can be: arm(default), armel, arm64, x86, x64"
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
echo " for FreeBSD can be: freebsd12, freebsd13"
echo " for illumos can be: illumos."
@@ -21,6 +21,9 @@ __CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
__InitialDir=$PWD
__BuildArch=arm
__AlpineArch=armv7
+__FreeBSDArch=arm
+__FreeBSDMachineArch=armv7
+__IllumosArch=arm7
__QEMUArch=arm
__UbuntuArch=armhf
__UbuntuRepo="http://ports.ubuntu.com/"
@@ -115,6 +118,8 @@ while :; do
__UbuntuArch=arm64
__AlpineArch=aarch64
__QEMUArch=aarch64
+ __FreeBSDArch=arm64
+ __FreeBSDMachineArch=aarch64
;;
armel)
__BuildArch=armel
@@ -140,6 +145,14 @@ while :; do
__UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp5//')
unset __LLDB_Package
;;
+ x64)
+ __BuildArch=x64
+ __UbuntuArch=amd64
+ __FreeBSDArch=amd64
+ __FreeBSDMachineArch=amd64
+ __illumosArch=x86_64
+ __UbuntuRepo=
+ ;;
x86)
__BuildArch=x86
__UbuntuArch=i386
@@ -205,11 +218,6 @@ while :; do
__LLDB_Package="liblldb-6.0-dev"
;;
tizen)
- if [ "$__BuildArch" != "arm" ] && [ "$__BuildArch" != "armel" ] && [ "$__BuildArch" != "arm64" ] && [ "$__BuildArch" != "x86" ] ; then
- echo "Tizen is available only for arm, armel, arm64 and x86."
- usage;
- exit 1;
- fi
__CodeName=
__UbuntuRepo=
__Tizen=tizen
@@ -228,19 +236,16 @@ while :; do
;;
freebsd12)
__CodeName=freebsd
- __BuildArch=x64
__SkipUnmount=1
;;
freebsd13)
__CodeName=freebsd
__FreeBSDBase="13.0-RELEASE"
__FreeBSDABI="13"
- __BuildArch=x64
__SkipUnmount=1
;;
illumos)
__CodeName=illumos
- __BuildArch=x64
__SkipUnmount=1
;;
--skipunmount)
@@ -312,8 +317,8 @@ if [[ "$__CodeName" == "alpine" ]]; then
elif [[ "$__CodeName" == "freebsd" ]]; then
mkdir -p $__RootfsDir/usr/local/etc
JOBS="$(getconf _NPROCESSORS_ONLN)"
- wget -O - https://download.freebsd.org/ftp/releases/amd64/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
- echo "ABI = \"FreeBSD:${__FreeBSDABI}:amd64\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
+ wget -O - https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
+ echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
mkdir -p $__RootfsDir/tmp
# get and build package manager
@@ -335,7 +340,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
echo "Building binutils. Please wait.."
wget -O - https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
mkdir build-binutils && cd build-binutils
- ../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir"
+ ../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir"
make -j "$JOBS" && make install && cd ..
echo "Building gcc. Please wait.."
wget -O - https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
@@ -345,7 +350,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
CFLAGS_FOR_TARGET="-fPIC"
export CFLAGS CXXFLAGS CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET
mkdir build-gcc && cd build-gcc
- ../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
+ ../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
--with-gnu-ld --disable-nls --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libada --disable-libsanitizer \
--disable-libquadmath-support --disable-shared --enable-tls
make -j "$JOBS" && make install && cd ..
@@ -353,7 +358,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
if [[ "$__UseMirror" == 1 ]]; then
BaseUrl=http://pkgsrc.smartos.skylime.net
fi
- BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/x86_64/All
+ BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/${__illumosArch}/All
echo "Downloading dependencies."
read -ra array <<<"$__IllumosPackages"
for package in "${array[@]}"; do
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index eaeeab38fa1f3..d5dfc13504b1f 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -48,11 +48,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
set(CMAKE_SYSTEM_PROCESSOR aarch64)
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
set(TOOLCHAIN "aarch64-alpine-linux-musl")
- else()
+ elseif(LINUX)
set(TOOLCHAIN "aarch64-linux-gnu")
- endif()
- if(TIZEN)
- set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
+ if(TIZEN)
+ set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
+ endif()
+ elseif(FREEBSD)
+ set(triple "aarch64-unknown-freebsd12")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
set(CMAKE_SYSTEM_PROCESSOR ppc64le)
@@ -66,12 +68,18 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
if(TIZEN)
set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
endif()
-elseif (FREEBSD)
- set(CMAKE_SYSTEM_PROCESSOR "x86_64")
- set(triple "x86_64-unknown-freebsd12")
-elseif (ILLUMOS)
- set(CMAKE_SYSTEM_PROCESSOR "x86_64")
- set(TOOLCHAIN "x86_64-illumos")
+elseif(TARGET_ARCH_NAME STREQUAL "x64")
+ set(CMAKE_SYSTEM_PROCESSOR x86_64)
+ if(LINUX)
+ set(TOOLCHAIN "x86_64-linux-gnu")
+ if(TIZEN)
+ set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/9.2.0")
+ endif()
+ elseif(FREEBSD)
+ set(triple "x86_64-unknown-freebsd12")
+ elseif(ILLUMOS)
+ set(TOOLCHAIN "x86_64-illumos")
+ endif()
else()
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, armv6, arm64, ppc64le, s390x and x86 are supported!")
endif()
@@ -218,7 +226,7 @@ endif()
# Specify compile options
-if((TARGET_ARCH_NAME MATCHES "^(arm|armv6|armel|arm64|ppc64le|s390x)$" AND NOT ANDROID) OR ILLUMOS)
+if((TARGET_ARCH_NAME MATCHES "^(arm|armv6|armel|arm64|ppc64le|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
diff --git a/global.json b/global.json
index 6df5444d6932d..df77e9a199d67 100644
--- a/global.json
+++ b/global.json
@@ -3,8 +3,8 @@
"dotnet": "7.0.100-preview.5.22307.18"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22358.3",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22358.3",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22367.1",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22367.1",
"Microsoft.Build.Traversal": "2.0.2"
}
}
From 38759e1dfd784abc097e642d44119fa89aa909d7 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 25 Jul 2022 13:05:50 +0000
Subject: [PATCH 02/22] Update dependencies from
https://github.com/dotnet/arcade build 20220722.1 (#229)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 2 +-
eng/common/generate-sbom-prep.ps1 | 2 ++
eng/common/generate-sbom-prep.sh | 12 ++++++++++++
global.json | 4 ++--
5 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5114ec59c419d..561de1440f286 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- f7951a64db920ea599bd6819065b661d88d26b23
+ 11672d906390046e77a34b6406d9e02229fd7e45
-
+
https://github.com/dotnet/arcade
- f7951a64db920ea599bd6819065b661d88d26b23
+ 11672d906390046e77a34b6406d9e02229fd7e45
-
+
https://github.com/dotnet/arcade
- f7951a64db920ea599bd6819065b661d88d26b23
+ 11672d906390046e77a34b6406d9e02229fd7e45
diff --git a/eng/Versions.props b/eng/Versions.props
index 2eb4ffbe48887..c3b9182ff5f59 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22367.1
+ 7.0.0-beta.22372.1
diff --git a/eng/common/generate-sbom-prep.ps1 b/eng/common/generate-sbom-prep.ps1
index a733a8885824a..3e5c1c74a1c50 100644
--- a/eng/common/generate-sbom-prep.ps1
+++ b/eng/common/generate-sbom-prep.ps1
@@ -2,6 +2,8 @@ Param(
[Parameter(Mandatory=$true)][string] $ManifestDirPath # Manifest directory where sbom will be placed
)
+. $PSScriptRoot\pipeline-logging-functions.ps1
+
Write-Host "Creating dir $ManifestDirPath"
# create directory for sbom manifest to be placed
if (!(Test-Path -path $ManifestDirPath))
diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh
index f6c77453142a2..d5c76dc827b49 100644
--- a/eng/common/generate-sbom-prep.sh
+++ b/eng/common/generate-sbom-prep.sh
@@ -2,6 +2,18 @@
source="${BASH_SOURCE[0]}"
+# resolve $SOURCE until the file is no longer a symlink
+while [[ -h $source ]]; do
+ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+ source="$(readlink "$source")"
+
+ # if $source was a relative symlink, we need to resolve it relative to the path where the
+ # symlink file was located
+ [[ $source != /* ]] && source="$scriptroot/$source"
+done
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+. $scriptroot/pipeline-logging-functions.sh
+
manifest_dir=$1
if [ ! -d "$manifest_dir" ] ; then
diff --git a/global.json b/global.json
index df77e9a199d67..fa662d90cd6f1 100644
--- a/global.json
+++ b/global.json
@@ -3,8 +3,8 @@
"dotnet": "7.0.100-preview.5.22307.18"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22367.1",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22367.1",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22372.1",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22372.1",
"Microsoft.Build.Traversal": "2.0.2"
}
}
From 977936c57b32ea0aca953de76a0a9feca2b0d62d Mon Sep 17 00:00:00 2001
From: Matt Mitchell
Date: Thu, 4 Aug 2022 15:25:40 -0700
Subject: [PATCH 03/22] Add support for setting the copyright on produced
binaries (#236)
It was not possible to set the copyright string for binaries. The RC_COPYRIGHT string in the windows resource definition would always be empty. Plumb this value through and set it explicitly in our CMAKE options.
---
llvm.proj | 2 +-
llvm/cmake/modules/AddLLVM.cmake | 11 +++++++++--
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/llvm.proj b/llvm.proj
index 291c93ab7d767..f79a51efcac7e 100644
--- a/llvm.proj
+++ b/llvm.proj
@@ -41,6 +41,7 @@
<_LLVMBuildArgs Condition="'$(LLVMTableGenPath)' != ''" Include='-DLLVM_TABLEGEN="$(LLVMTableGenPath)"' />
<_LLVMBuildArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)" />
<_LLVMBuildArgs Include='-DLLVM_BUILD_TOOLS:BOOL=OFF' />
+ <_LLVMBuildArgs Include='-DLEGAL_COPYRIGHT:STRING="\xa9 Microsoft Corporation. All rights reserved."' />
<_LLVMBuildArgs Include='-DLLVM_ENABLE_TERMINFO:BOOL=OFF' />
<_LLVMBuildArgs Include="-DLLVM_INCLUDE_UTILS:BOOL=OFF" />
<_LLVMBuildArgs Include="-DLLVM_INCLUDE_RUNTIMES:BOOL=OFF" />
@@ -113,4 +114,3 @@
-
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 97c9980c7de31..c9dee9f443e2f 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -334,11 +334,13 @@ endfunction(add_windows_version_resource_file)
# Optional version string (defaults to PACKAGE_VERSION)
# PRODUCT_NAME
# Optional product name string (defaults to "LLVM")
+# PRODUCT_LEGAL_COPYRIGHT
+# Optional product legal copyright string
# )
function(set_windows_version_resource_properties name resource_file)
cmake_parse_arguments(ARG
""
- "VERSION_MAJOR;VERSION_MINOR;VERSION_PATCHLEVEL;VERSION_STRING;PRODUCT_NAME"
+ "VERSION_MAJOR;VERSION_MINOR;VERSION_PATCHLEVEL;VERSION_STRING;PRODUCT_NAME;PRODUCT_LEGAL_COPYRIGHT"
""
${ARGN})
@@ -362,6 +364,10 @@ function(set_windows_version_resource_properties name resource_file)
set(ARG_PRODUCT_NAME "LLVM")
endif()
+ if (NOT DEFINED ARG_PRODUCT_LEGAL_COPYRIGHT)
+ set(ARG_PRODUCT_LEGAL_COPYRIGHT ${LEGAL_COPYRIGHT})
+ endif()
+
set_property(SOURCE ${resource_file}
PROPERTY COMPILE_FLAGS /nologo)
set_property(SOURCE ${resource_file}
@@ -373,7 +379,8 @@ function(set_windows_version_resource_properties name resource_file)
"RC_FILE_VERSION=\"${ARG_VERSION_STRING}\""
"RC_INTERNAL_NAME=\"${name}\""
"RC_PRODUCT_NAME=\"${ARG_PRODUCT_NAME}\""
- "RC_PRODUCT_VERSION=\"${ARG_VERSION_STRING}\"")
+ "RC_PRODUCT_VERSION=\"${ARG_VERSION_STRING}\""
+ "RC_COPYRIGHT=\"${ARG_PRODUCT_LEGAL_COPYRIGHT}\"")
endfunction(set_windows_version_resource_properties)
# llvm_add_library(name sources...
From 1be11424b7ca8b1b70cecf595e033b03fb44378b Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 6 Aug 2022 12:44:07 +0000
Subject: [PATCH 04/22] Update dependencies from
https://github.com/dotnet/arcade build 20220729.10 (#232)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 +-
eng/Versions.props | 2 +-
eng/common/SetupNugetSources.ps1 | 18 +-
eng/common/SetupNugetSources.sh | 68 +++-----
eng/common/build.sh | 17 +-
eng/common/cross/build-rootfs.sh | 154 ++++++++++--------
eng/common/cross/riscv64/sources.list.sid | 1 +
eng/common/cross/toolchain.cmake | 47 +++---
eng/common/native/init-compiler.sh | 2 +-
.../templates/post-build/post-build.yml | 2 +
eng/common/templates/steps/execute-sdl.yml | 21 +++
global.json | 4 +-
12 files changed, 190 insertions(+), 158 deletions(-)
create mode 100644 eng/common/cross/riscv64/sources.list.sid
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 561de1440f286..55adb668bc994 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- 11672d906390046e77a34b6406d9e02229fd7e45
+ 1e73f4ab4c172aa55614f24b2d5c319e1efb8813
-
+
https://github.com/dotnet/arcade
- 11672d906390046e77a34b6406d9e02229fd7e45
+ 1e73f4ab4c172aa55614f24b2d5c319e1efb8813
-
+
https://github.com/dotnet/arcade
- 11672d906390046e77a34b6406d9e02229fd7e45
+ 1e73f4ab4c172aa55614f24b2d5c319e1efb8813
diff --git a/eng/Versions.props b/eng/Versions.props
index c3b9182ff5f59..311e465204d9b 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22372.1
+ 7.0.0-beta.22379.10
diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1
index 18823840b1127..6e99723945183 100644
--- a/eng/common/SetupNugetSources.ps1
+++ b/eng/common/SetupNugetSources.ps1
@@ -146,22 +146,22 @@ $userName = "dn-bot"
# Insert credential nodes for Maestro's private feeds
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -Password $Password
+# 3.1 uses a different feed url format so it's handled differently here
$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
if ($dotnet31Source -ne $null) {
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
}
-$dotnet5Source = $sources.SelectSingleNode("add[@key='dotnet5']")
-if ($dotnet5Source -ne $null) {
- AddPackageSource -Sources $sources -SourceName "dotnet5-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
- AddPackageSource -Sources $sources -SourceName "dotnet5-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
-}
+$dotnetVersions = @('5','6','7')
-$dotnet6Source = $sources.SelectSingleNode("add[@key='dotnet6']")
-if ($dotnet6Source -ne $null) {
- AddPackageSource -Sources $sources -SourceName "dotnet6-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
- AddPackageSource -Sources $sources -SourceName "dotnet6-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
+foreach ($dotnetVersion in $dotnetVersions) {
+ $feedPrefix = "dotnet" + $dotnetVersion;
+ $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']")
+ if ($dotnetSource -ne $null) {
+ AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
+ AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
+ }
}
$doc.Save($filename)
diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh
index ad3fb74fd2cc8..8af7d899db121 100755
--- a/eng/common/SetupNugetSources.sh
+++ b/eng/common/SetupNugetSources.sh
@@ -105,53 +105,33 @@ if [ "$?" == "0" ]; then
PackageSources+=('dotnet3.1-internal-transport')
fi
-# Ensure dotnet5-internal and dotnet5-internal-transport are in the packageSources if the public dotnet5 feeds are present
-grep -i ""
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet5-internal')
-
- grep -i "" $ConfigFile
- if [ "$?" != "0" ]; then
- echo "Adding dotnet5-internal-transport to the packageSources."
- PackageSourcesNodeFooter=""
- PackageSourceTemplate="${TB}"
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet5-internal-transport')
-fi
-
-# Ensure dotnet6-internal and dotnet6-internal-transport are in the packageSources if the public dotnet6 feeds are present
-grep -i ""
+DotNetVersions=('5' '6' '7')
+
+for DotNetVersion in ${DotNetVersions[@]} ; do
+ FeedPrefix="dotnet${DotNetVersion}";
+ grep -i ""
+
+ sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
+ fi
+ PackageSources+=("$FeedPrefix-internal")
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet6-internal')
+ grep -i "" $ConfigFile
+ if [ "$?" != "0" ]; then
+ echo "Adding $FeedPrefix-internal-transport to the packageSources."
+ PackageSourcesNodeFooter=""
+ PackageSourceTemplate="${TB}"
- grep -i "" $ConfigFile
- if [ "$?" != "0" ]; then
- echo "Adding dotnet6-internal-transport to the packageSources."
- PackageSourcesNodeFooter=""
- PackageSourceTemplate="${TB}"
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
+ sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
+ fi
+ PackageSources+=("$FeedPrefix-internal-transport")
fi
- PackageSources+=('dotnet6-internal-transport')
-fi
+done
# I want things split line by line
PrevIFS=$IFS
diff --git a/eng/common/build.sh b/eng/common/build.sh
index 55b298f16ccd1..50af40cdd2ce6 100755
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -19,6 +19,9 @@ usage()
echo "Actions:"
echo " --restore Restore dependencies (short: -r)"
echo " --build Build solution (short: -b)"
+ echo " --sourceBuild Source-build the solution (short: -sb)"
+ echo " Will additionally trigger the following actions: --restore, --build, --pack"
+ echo " If --configuration is not set explicitly, will also set it to 'Release'"
echo " --rebuild Rebuild solution"
echo " --test Run all unit tests in the solution (short: -t)"
echo " --integrationTest Run all integration tests in the solution"
@@ -55,6 +58,7 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
restore=false
build=false
+source_build=false
rebuild=false
test=false
integration_test=false
@@ -73,7 +77,7 @@ exclude_ci_binary_log=false
pipelines_log=false
projects=''
-configuration='Debug'
+configuration=''
prepare_machine=false
verbosity='minimal'
runtime_source_feed=''
@@ -119,6 +123,12 @@ while [[ $# > 0 ]]; do
-pack)
pack=true
;;
+ -sourcebuild|-sb)
+ build=true
+ source_build=true
+ restore=true
+ pack=true
+ ;;
-test|-t)
test=true
;;
@@ -168,6 +178,10 @@ while [[ $# > 0 ]]; do
shift
done
+if [[ -z "$configuration" ]]; then
+ if [[ "$source_build" = true ]]; then configuration="Release"; else configuration="Debug"; fi
+fi
+
if [[ "$ci" == true ]]; then
pipelines_log=true
node_reuse=false
@@ -205,6 +219,7 @@ function Build {
/p:RepoRoot="$repo_root" \
/p:Restore=$restore \
/p:Build=$build \
+ /p:ArcadeBuildFromSource=$source_build \
/p:Rebuild=$rebuild \
/p:Test=$test \
/p:Pack=$pack \
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index c8540474aa13f..f058c98763aa5 100755
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -5,7 +5,7 @@ set -e
usage()
{
echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir ]"
- echo "BuildArch can be: arm(default), armel, arm64, x86, x64"
+ echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
echo " for FreeBSD can be: freebsd12, freebsd13"
echo " for illumos can be: illumos."
@@ -18,7 +18,6 @@ usage()
__CodeName=xenial
__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-__InitialDir=$PWD
__BuildArch=arm
__AlpineArch=armv7
__FreeBSDArch=arm
@@ -43,7 +42,7 @@ __AlpinePackages+=" libedit"
# symlinks fixer
__UbuntuPackages+=" symlinks"
-# CoreCLR and CoreFX dependencies
+# runtime dependencies
__UbuntuPackages+=" libicu-dev"
__UbuntuPackages+=" liblttng-ust-dev"
__UbuntuPackages+=" libunwind8-dev"
@@ -54,7 +53,7 @@ __AlpinePackages+=" libunwind-dev"
__AlpinePackages+=" lttng-ust-dev"
__AlpinePackages+=" compiler-rt-static"
-# CoreFX dependencies
+# runtime libraries' dependencies
__UbuntuPackages+=" libcurl4-openssl-dev"
__UbuntuPackages+=" libkrb5-dev"
__UbuntuPackages+=" libssl-dev"
@@ -84,17 +83,18 @@ __IllumosPackages+=" zlib-1.2.11"
__UbuntuPackages+=" libomp5"
__UbuntuPackages+=" libomp-dev"
+__Keyring=
__UseMirror=0
__UnprocessedBuildArgs=
while :; do
- if [ $# -le 0 ]; then
+ if [[ "$#" -le 0 ]]; then
break
fi
- lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
+ lowerI="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
case $lowerI in
- -?|-h|--help)
+ -\?|-h|--help)
usage
exit 1
;;
@@ -104,15 +104,6 @@ while :; do
__AlpineArch=armv7
__QEMUArch=arm
;;
- armv6)
- __BuildArch=armv6
- __UbuntuArch=armhf
- __QEMUArch=arm
- __UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/"
- __CodeName=buster
- __LLDB_Package="liblldb-6.0-dev"
- __Keyring="/usr/share/keyrings/raspbian-archive-keyring.gpg"
- ;;
arm64)
__BuildArch=arm64
__UbuntuArch=arm64
@@ -127,6 +118,18 @@ while :; do
__UbuntuRepo="http://ftp.debian.org/debian/"
__CodeName=jessie
;;
+ armv6)
+ __BuildArch=armv6
+ __UbuntuArch=armhf
+ __QEMUArch=arm
+ __UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/"
+ __CodeName=buster
+ __LLDB_Package="liblldb-6.0-dev"
+
+ if [[ -e "/usr/share/keyrings/raspbian-archive-keyring.gpg" ]]; then
+ __Keyring="--keyring /usr/share/keyrings/raspbian-archive-keyring.gpg"
+ fi
+ ;;
ppc64le)
__BuildArch=ppc64le
__UbuntuArch=ppc64el
@@ -136,6 +139,18 @@ while :; do
__UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp5//')
unset __LLDB_Package
;;
+ riscv64)
+ __BuildArch=riscv64
+ __UbuntuArch=riscv64
+ __UbuntuRepo="http://deb.debian.org/debian-ports"
+ __CodeName=sid
+ __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libunwind8-dev//')
+ unset __LLDB_Package
+
+ if [[ -e "/usr/share/keyrings/debian-ports-archive-keyring.gpg" ]]; then
+ __Keyring="--keyring /usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring"
+ fi
+ ;;
s390x)
__BuildArch=s390x
__UbuntuArch=s390x
@@ -189,17 +204,17 @@ while :; do
fi
;;
xenial) # Ubuntu 16.04
- if [ "$__CodeName" != "jessie" ]; then
+ if [[ "$__CodeName" != "jessie" ]]; then
__CodeName=xenial
fi
;;
zesty) # Ubuntu 17.04
- if [ "$__CodeName" != "jessie" ]; then
+ if [[ "$__CodeName" != "jessie" ]]; then
__CodeName=zesty
fi
;;
bionic) # Ubuntu 18.04
- if [ "$__CodeName" != "jessie" ]; then
+ if [[ "$__CodeName" != "jessie" ]]; then
__CodeName=bionic
fi
;;
@@ -253,7 +268,7 @@ while :; do
;;
--rootfsdir|-rootfsdir)
shift
- __RootfsDir=$1
+ __RootfsDir="$1"
;;
--use-mirror)
__UseMirror=1
@@ -266,71 +281,66 @@ while :; do
shift
done
-if [ -e "$__Keyring" ]; then
- __Keyring="--keyring=$__Keyring"
-else
- __Keyring=""
-fi
-
-if [ "$__BuildArch" == "armel" ]; then
+if [[ "$__BuildArch" == "armel" ]]; then
__LLDB_Package="lldb-3.5-dev"
fi
+
__UbuntuPackages+=" ${__LLDB_Package:-}"
-if [ ! -z "$__LLVM_MajorVersion" ]; then
+if [[ -n "$__LLVM_MajorVersion" ]]; then
__UbuntuPackages+=" libclang-common-${__LLVM_MajorVersion}${__LLVM_MinorVersion:+.$__LLVM_MinorVersion}-dev"
fi
-if [ -z "$__RootfsDir" ] && [ ! -z "$ROOTFS_DIR" ]; then
- __RootfsDir=$ROOTFS_DIR
+if [[ -z "$__RootfsDir" && -n "$ROOTFS_DIR" ]]; then
+ __RootfsDir="$ROOTFS_DIR"
fi
-if [ -z "$__RootfsDir" ]; then
+if [[ -z "$__RootfsDir" ]]; then
__RootfsDir="$__CrossDir/../../../.tools/rootfs/$__BuildArch"
fi
-if [ -d "$__RootfsDir" ]; then
- if [ $__SkipUnmount == 0 ]; then
- umount $__RootfsDir/* || true
+if [[ -d "$__RootfsDir" ]]; then
+ if [[ "$__SkipUnmount" == "0" ]]; then
+ umount "$__RootfsDir"/* || true
fi
- rm -rf $__RootfsDir
+ rm -rf "$__RootfsDir"
fi
-mkdir -p $__RootfsDir
+mkdir -p "$__RootfsDir"
__RootfsDir="$( cd "$__RootfsDir" && pwd )"
if [[ "$__CodeName" == "alpine" ]]; then
__ApkToolsVersion=2.9.1
- __ApkToolsDir=$(mktemp -d)
- wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -P $__ApkToolsDir
- tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
- mkdir -p $__RootfsDir/usr/bin
- cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
+ __ApkToolsDir="$(mktemp -d)"
+ wget "https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz" -P "$__ApkToolsDir"
+ tar -xf "$__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz" -C "$__ApkToolsDir"
+ mkdir -p "$__RootfsDir"/usr/bin
+ cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin"
- $__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
- -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
- -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
- -U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
+ "$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk" \
+ -X "http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main" \
+ -X "http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community" \
+ -U --allow-untrusted --root "$__RootfsDir" --arch "$__AlpineArch" --initdb \
add $__AlpinePackages
- rm -r $__ApkToolsDir
+ rm -r "$__ApkToolsDir"
elif [[ "$__CodeName" == "freebsd" ]]; then
- mkdir -p $__RootfsDir/usr/local/etc
+ mkdir -p "$__RootfsDir"/usr/local/etc
JOBS="$(getconf _NPROCESSORS_ONLN)"
- wget -O - https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
- echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
- echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
- mkdir -p $__RootfsDir/tmp
+ wget -O - "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
+ echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf
+ echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf
+ mkdir -p "$__RootfsDir"/tmp
# get and build package manager
- wget -O - https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz | tar -C $__RootfsDir/tmp -zxf -
- cd $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
+ wget -O - "https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz" | tar -C "$__RootfsDir"/tmp -zxf -
+ cd "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}"
# needed for install to succeed
- mkdir -p $__RootfsDir/host/etc
- ./autogen.sh && ./configure --prefix=$__RootfsDir/host && make -j "$JOBS" && make install
- rm -rf $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
+ mkdir -p "$__RootfsDir"/host/etc
+ ./autogen.sh && ./configure --prefix="$__RootfsDir"/host && make -j "$JOBS" && make install
+ rm -rf "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}"
# install packages we need.
- INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf update
- INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
+ INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf update
+ INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
elif [[ "$__CodeName" == "illumos" ]]; then
mkdir "$__RootfsDir/tmp"
pushd "$__RootfsDir/tmp"
@@ -358,7 +368,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
if [[ "$__UseMirror" == 1 ]]; then
BaseUrl=http://pkgsrc.smartos.skylime.net
fi
- BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/${__illumosArch}/All
+ BaseUrl="$BaseUrl/packages/SmartOS/2020Q1/${__illumosArch}/All"
echo "Downloading dependencies."
read -ra array <<<"$__IllumosPackages"
for package in "${array[@]}"; do
@@ -376,26 +386,26 @@ elif [[ "$__CodeName" == "illumos" ]]; then
wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
-elif [[ -n $__CodeName ]]; then
- qemu-debootstrap $__Keyring --arch $__UbuntuArch $__CodeName $__RootfsDir $__UbuntuRepo
- cp $__CrossDir/$__BuildArch/sources.list.$__CodeName $__RootfsDir/etc/apt/sources.list
- chroot $__RootfsDir apt-get update
- chroot $__RootfsDir apt-get -f -y install
- chroot $__RootfsDir apt-get -y install $__UbuntuPackages
- chroot $__RootfsDir symlinks -cr /usr
- chroot $__RootfsDir apt-get clean
+elif [[ -n "$__CodeName" ]]; then
+ qemu-debootstrap $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"
+ cp "$__CrossDir/$__BuildArch/sources.list.$__CodeName" "$__RootfsDir/etc/apt/sources.list"
+ chroot "$__RootfsDir" apt-get update
+ chroot "$__RootfsDir" apt-get -f -y install
+ chroot "$__RootfsDir" apt-get -y install $__UbuntuPackages
+ chroot "$__RootfsDir" symlinks -cr /usr
+ chroot "$__RootfsDir" apt-get clean
- if [ $__SkipUnmount == 0 ]; then
- umount $__RootfsDir/* || true
+ if [[ "$__SkipUnmount" == "0" ]]; then
+ umount "$__RootfsDir"/* || true
fi
if [[ "$__BuildArch" == "armel" && "$__CodeName" == "jessie" ]]; then
- pushd $__RootfsDir
- patch -p1 < $__CrossDir/$__BuildArch/armel.jessie.patch
+ pushd "$__RootfsDir"
+ patch -p1 < "$__CrossDir/$__BuildArch/armel.jessie.patch"
popd
fi
elif [[ "$__Tizen" == "tizen" ]]; then
- ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
+ ROOTFS_DIR="$__RootfsDir" "$__CrossDir/$__BuildArch/tizen-build-rootfs.sh"
else
echo "Unsupported target platform."
usage;
diff --git a/eng/common/cross/riscv64/sources.list.sid b/eng/common/cross/riscv64/sources.list.sid
new file mode 100644
index 0000000000000..65f730d224caa
--- /dev/null
+++ b/eng/common/cross/riscv64/sources.list.sid
@@ -0,0 +1 @@
+deb http://deb.debian.org/debian-ports sid main
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index d5dfc13504b1f..909117759e61b 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -19,13 +19,7 @@ elseif(EXISTS ${CROSS_ROOTFS}/android_platform)
set(ANDROID 1)
endif()
-if(TARGET_ARCH_NAME STREQUAL "armel")
- set(CMAKE_SYSTEM_PROCESSOR armv7l)
- set(TOOLCHAIN "arm-linux-gnueabi")
- if(TIZEN)
- set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0")
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "arm")
+if(TARGET_ARCH_NAME STREQUAL "arm")
set(CMAKE_SYSTEM_PROCESSOR armv7l)
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf)
set(TOOLCHAIN "armv7-alpine-linux-musleabihf")
@@ -37,13 +31,6 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm")
if(TIZEN)
set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/9.2.0")
endif()
-elseif(TARGET_ARCH_NAME STREQUAL "armv6")
- set(CMAKE_SYSTEM_PROCESSOR armv6l)
- if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
- set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
- else()
- set(TOOLCHAIN "arm-linux-gnueabihf")
- endif()
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
set(CMAKE_SYSTEM_PROCESSOR aarch64)
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
@@ -56,18 +43,28 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
elseif(FREEBSD)
set(triple "aarch64-unknown-freebsd12")
endif()
+elseif(TARGET_ARCH_NAME STREQUAL "armel")
+ set(CMAKE_SYSTEM_PROCESSOR armv7l)
+ set(TOOLCHAIN "arm-linux-gnueabi")
+ if(TIZEN)
+ set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0")
+ endif()
+elseif(TARGET_ARCH_NAME STREQUAL "armv6")
+ set(CMAKE_SYSTEM_PROCESSOR armv6l)
+ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
+ set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
+ else()
+ set(TOOLCHAIN "arm-linux-gnueabihf")
+ endif()
elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
set(CMAKE_SYSTEM_PROCESSOR ppc64le)
set(TOOLCHAIN "powerpc64le-linux-gnu")
+elseif(TARGET_ARCH_NAME STREQUAL "riscv64")
+ set(CMAKE_SYSTEM_PROCESSOR riscv64)
+ set(TOOLCHAIN "riscv64-linux-gnu")
elseif(TARGET_ARCH_NAME STREQUAL "s390x")
set(CMAKE_SYSTEM_PROCESSOR s390x)
set(TOOLCHAIN "s390x-linux-gnu")
-elseif(TARGET_ARCH_NAME STREQUAL "x86")
- set(CMAKE_SYSTEM_PROCESSOR i686)
- set(TOOLCHAIN "i686-linux-gnu")
- if(TIZEN)
- set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
- endif()
elseif(TARGET_ARCH_NAME STREQUAL "x64")
set(CMAKE_SYSTEM_PROCESSOR x86_64)
if(LINUX)
@@ -80,8 +77,14 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
elseif(ILLUMOS)
set(TOOLCHAIN "x86_64-illumos")
endif()
+elseif(TARGET_ARCH_NAME STREQUAL "x86")
+ set(CMAKE_SYSTEM_PROCESSOR i686)
+ set(TOOLCHAIN "i686-linux-gnu")
+ if(TIZEN)
+ set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
+ endif()
else()
- message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, armv6, arm64, ppc64le, s390x and x86 are supported!")
+ message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!")
endif()
if(DEFINED ENV{TOOLCHAIN})
@@ -226,7 +229,7 @@ endif()
# Specify compile options
-if((TARGET_ARCH_NAME MATCHES "^(arm|armv6|armel|arm64|ppc64le|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
+if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
diff --git a/eng/common/native/init-compiler.sh b/eng/common/native/init-compiler.sh
index 4b99a9cad3b77..41a26d802a93f 100755
--- a/eng/common/native/init-compiler.sh
+++ b/eng/common/native/init-compiler.sh
@@ -71,7 +71,7 @@ if [[ -z "$CLR_CC" ]]; then
# Set default versions
if [[ -z "$majorVersion" ]]; then
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
- if [[ "$compiler" == "clang" ]]; then versions=( 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
+ if [[ "$compiler" == "clang" ]]; then versions=( 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi
for version in "${versions[@]}"; do
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index 5a9056f6b2fb5..e0beb25d4e761 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -49,6 +49,7 @@ parameters:
type: object
default:
enable: false
+ publishGdn: false
continueOnError: false
params: ''
artifactNames: ''
@@ -235,6 +236,7 @@ stages:
- template: /eng/common/templates/job/execute-sdl.yml
parameters:
enable: ${{ parameters.SDLValidationParameters.enable }}
+ publishGuardianDirectoryToPipeline: ${{ parameters.SDLValidationParameters.publishGdn }}
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }}
diff --git a/eng/common/templates/steps/execute-sdl.yml b/eng/common/templates/steps/execute-sdl.yml
index 7b8ee18a28d7e..73245593cef53 100644
--- a/eng/common/templates/steps/execute-sdl.yml
+++ b/eng/common/templates/steps/execute-sdl.yml
@@ -62,7 +62,28 @@ steps:
c
i
condition: succeededOrFailed()
+
- publish: $(Agent.BuildDirectory)/.gdn
artifact: GuardianConfiguration
displayName: Publish GuardianConfiguration
+ condition: succeededOrFailed()
+
+ # Publish the SARIF files in a container named CodeAnalysisLogs to enable integration
+ # with the "SARIF SAST Scans Tab" Azure DevOps extension
+ - task: CopyFiles@2
+ displayName: Copy SARIF files
+ inputs:
+ flattenFolders: true
+ sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/
+ contents: '**/*.sarif'
+ targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs
+ condition: succeededOrFailed()
+
+ # Use PublishBuildArtifacts because the SARIF extension only checks this case
+ # see microsoft/sarif-azuredevops-extension#4
+ - task: PublishBuildArtifacts@1
+ displayName: Publish SARIF files to CodeAnalysisLogs container
+ inputs:
+ pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs
+ artifactName: CodeAnalysisLogs
condition: succeededOrFailed()
\ No newline at end of file
diff --git a/global.json b/global.json
index fa662d90cd6f1..5f26003c1f789 100644
--- a/global.json
+++ b/global.json
@@ -3,8 +3,8 @@
"dotnet": "7.0.100-preview.5.22307.18"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22372.1",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22372.1",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22379.10",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22379.10",
"Microsoft.Build.Traversal": "2.0.2"
}
}
From 9f5a9f51aad6cb3021c7ee76057e4e5874047081 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 8 Aug 2022 13:02:15 +0000
Subject: [PATCH 05/22] Update dependencies from
https://github.com/dotnet/arcade build 20220805.6 (#238)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 2 +-
eng/common/templates/job/source-index-stage1.yml | 2 +-
global.json | 4 ++--
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 55adb668bc994..7550179097997 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- 1e73f4ab4c172aa55614f24b2d5c319e1efb8813
+ 58aed6cc9fde5155c79cf706eeccf31b03e9a8a7
-
+
https://github.com/dotnet/arcade
- 1e73f4ab4c172aa55614f24b2d5c319e1efb8813
+ 58aed6cc9fde5155c79cf706eeccf31b03e9a8a7
-
+
https://github.com/dotnet/arcade
- 1e73f4ab4c172aa55614f24b2d5c319e1efb8813
+ 58aed6cc9fde5155c79cf706eeccf31b03e9a8a7
diff --git a/eng/Versions.props b/eng/Versions.props
index 311e465204d9b..9fed2aeeee163 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22379.10
+ 7.0.0-beta.22405.6
diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml
index c2d51098d35cb..4e37210857d15 100644
--- a/eng/common/templates/job/source-index-stage1.yml
+++ b/eng/common/templates/job/source-index-stage1.yml
@@ -1,6 +1,6 @@
parameters:
runAsPublic: false
- sourceIndexPackageVersion: 1.0.1-20210614.1
+ sourceIndexPackageVersion: 1.0.1-20220804.1
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
preSteps: []
diff --git a/global.json b/global.json
index 5f26003c1f789..b4e3a95472d28 100644
--- a/global.json
+++ b/global.json
@@ -3,8 +3,8 @@
"dotnet": "7.0.100-preview.5.22307.18"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22379.10",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22379.10",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.6",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.6",
"Microsoft.Build.Traversal": "2.0.2"
}
}
From e73d65f0f80655b463162bd41a8365377ba6565d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexander=20K=C3=B6plinger?=
Date: Sat, 6 Aug 2022 01:50:44 +0200
Subject: [PATCH 06/22] Use stable VS build image (#237)
The stable image now contains the MSVC ABI break that caused us to use the preview image before.
Also switch over to the new image names that dnceng wants us to use.
---
eng/azure-pipelines.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eng/azure-pipelines.yml b/eng/azure-pipelines.yml
index 0cee1a8828805..ed6b64bedc105 100644
--- a/eng/azure-pipelines.yml
+++ b/eng/azure-pipelines.yml
@@ -199,10 +199,10 @@ stages:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCore1ESPool-Public
- demands: ImageOverride -equals Build.Windows.Amd64.VS2022.Pre.Open
+ demands: windows.vs2022.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Windows.Amd64.VS2022.Pre
+ demands: windows.vs2022.amd64
steps:
- script: |
git clean -ffdx
From f709b30b5d0861f1c2d10c8bb606947f7b8206fb Mon Sep 17 00:00:00 2001
From: Chris Rummel
Date: Fri, 12 Aug 2022 06:55:55 -0500
Subject: [PATCH 07/22] Upgrade to an MS.Build.Traversal version we have a ref
package for. (#241)
* Upgrade to an MS.Build.Traversal version we have a ref package for.
* Update for new MSBuild warning.
---
global.json | 2 +-
nuget/packages.builds | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/global.json b/global.json
index b4e3a95472d28..09609c87f9f77 100644
--- a/global.json
+++ b/global.json
@@ -5,6 +5,6 @@
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.6",
"Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.6",
- "Microsoft.Build.Traversal": "2.0.2"
+ "Microsoft.Build.Traversal": "2.0.34"
}
}
diff --git a/nuget/packages.builds b/nuget/packages.builds
index a4d2bc03d454a..85d860081e533 100644
--- a/nuget/packages.builds
+++ b/nuget/packages.builds
@@ -31,7 +31,7 @@
+ AdditionalProperties="%(ProjectReference.AdditionalProperties);FileVersion=$(FileVersion)" />
From 8d4858e10204b20a50a68ed67ea9ae9654b5ad02 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 15 Aug 2022 13:03:33 +0000
Subject: [PATCH 08/22] Update dependencies from
https://github.com/dotnet/arcade build 20220811.2 (#244)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 +--
eng/Versions.props | 2 +-
eng/common/cross/build-rootfs.sh | 92 ++++++++++++++++++-
eng/common/cross/toolchain.cmake | 41 ++++++++-
eng/common/templates/job/execute-sdl.yml | 2 +-
eng/common/templates/job/onelocbuild.yml | 2 +-
.../templates/job/source-index-stage1.yml | 4 +-
eng/common/templates/jobs/jobs.yml | 2 +-
.../templates/post-build/post-build.yml | 8 +-
eng/common/tools.ps1 | 9 +-
global.json | 4 +-
11 files changed, 155 insertions(+), 23 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 7550179097997..5b2ce60bd40ab 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- 58aed6cc9fde5155c79cf706eeccf31b03e9a8a7
+ 6a638cd0c13962ab2a1943cb1c878be5a41dd82e
-
+
https://github.com/dotnet/arcade
- 58aed6cc9fde5155c79cf706eeccf31b03e9a8a7
+ 6a638cd0c13962ab2a1943cb1c878be5a41dd82e
-
+
https://github.com/dotnet/arcade
- 58aed6cc9fde5155c79cf706eeccf31b03e9a8a7
+ 6a638cd0c13962ab2a1943cb1c878be5a41dd82e
diff --git a/eng/Versions.props b/eng/Versions.props
index 9fed2aeeee163..2880f18bf1bd4 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22405.6
+ 7.0.0-beta.22411.2
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index f058c98763aa5..d3b0ac3ba7b60 100755
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -8,11 +8,13 @@ usage()
echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
echo " for FreeBSD can be: freebsd12, freebsd13"
- echo " for illumos can be: illumos."
+ echo " for illumos can be: illumos"
+ echo " for Haiku can be: haiku."
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
echo "llvmx[.y] - optional, LLVM version for LLVM related packages."
echo "--skipunmount - optional, will skip the unmount of rootfs folder."
echo "--use-mirror - optional, use mirror URL to fetch resources, when available."
+ echo "--jobs N - optional, restrict to N jobs."
exit 1
}
@@ -79,6 +81,17 @@ __IllumosPackages+=" mit-krb5-1.16.2nb4"
__IllumosPackages+=" openssl-1.1.1e"
__IllumosPackages+=" zlib-1.2.11"
+__HaikuPackages="gmp"
+__HaikuPackages+=" gmp_devel"
+__HaikuPackages+=" krb5"
+__HaikuPackages+=" krb5_devel"
+__HaikuPackages+=" libiconv"
+__HaikuPackages+=" libiconv_devel"
+__HaikuPackages+=" llvm12_libunwind"
+__HaikuPackages+=" llvm12_libunwind_devel"
+__HaikuPackages+=" mpfr"
+__HaikuPackages+=" mpfr_devel"
+
# ML.NET dependencies
__UbuntuPackages+=" libomp5"
__UbuntuPackages+=" libomp-dev"
@@ -263,6 +276,11 @@ while :; do
__CodeName=illumos
__SkipUnmount=1
;;
+ haiku)
+ __CodeName=haiku
+ __BuildArch=x64
+ __SkipUnmount=1
+ ;;
--skipunmount)
__SkipUnmount=1
;;
@@ -273,6 +291,10 @@ while :; do
--use-mirror)
__UseMirror=1
;;
+ --use-jobs)
+ shift
+ MAXJOBS=$1
+ ;;
*)
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
;;
@@ -326,7 +348,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
rm -r "$__ApkToolsDir"
elif [[ "$__CodeName" == "freebsd" ]]; then
mkdir -p "$__RootfsDir"/usr/local/etc
- JOBS="$(getconf _NPROCESSORS_ONLN)"
+ JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
wget -O - "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf
echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf
@@ -344,7 +366,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then
elif [[ "$__CodeName" == "illumos" ]]; then
mkdir "$__RootfsDir/tmp"
pushd "$__RootfsDir/tmp"
- JOBS="$(getconf _NPROCESSORS_ONLN)"
+ JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
echo "Downloading sysroot."
wget -O - https://github.com/illumos/sysroot/releases/download/20181213-de6af22ae73b-v1/illumos-sysroot-i386-20181213-de6af22ae73b-v1.tar.gz | tar -C "$__RootfsDir" -xzf -
echo "Building binutils. Please wait.."
@@ -386,6 +408,70 @@ elif [[ "$__CodeName" == "illumos" ]]; then
wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
+elif [[ "$__CodeName" == "haiku" ]]; then
+ JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
+
+ echo "Building Haiku sysroot for x86_64"
+ mkdir -p "$__RootfsDir/tmp"
+ cd "$__RootfsDir/tmp"
+ git clone -b hrev56235 https://review.haiku-os.org/haiku
+ git clone -b btrev43195 https://review.haiku-os.org/buildtools
+ cd "$__RootfsDir/tmp/buildtools" && git checkout 7487388f5110021d400b9f3b88e1a7f310dc066d
+
+ # Fetch some unmerged patches
+ cd "$__RootfsDir/tmp/haiku"
+ ## Add development build profile (slimmer than nightly)
+ git fetch origin refs/changes/64/4164/1 && git -c commit.gpgsign=false cherry-pick FETCH_HEAD
+
+ # Build jam
+ cd "$__RootfsDir/tmp/buildtools/jam"
+ make
+
+ # Configure cross tools
+ echo "Building cross-compiler"
+ mkdir -p "$__RootfsDir/generated"
+ cd "$__RootfsDir/generated"
+ "$__RootfsDir/tmp/haiku/configure" -j"$JOBS" --sysroot "$__RootfsDir" --cross-tools-source "$__RootfsDir/tmp/buildtools" --build-cross-tools x86_64
+
+ # Build Haiku packages
+ echo "Building Haiku"
+ echo 'HAIKU_BUILD_PROFILE = "development-raw" ;' > UserProfileConfig
+ "$__RootfsDir/tmp/buildtools/jam/jam0" -j"$JOBS" -q 'package' 'Haiku'
+
+ BaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
+
+ # Download additional packages
+ echo "Downloading additional required packages"
+ read -ra array <<<"$__HaikuPackages"
+ for package in "${array[@]}"; do
+ echo "Downloading $package..."
+ # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
+ # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
+ hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}' \
+ --header='Content-Type:application/json' "$BaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
+ wget -P "$__RootfsDir/generated/download" "$hpkgDownloadUrl"
+ done
+
+ # Setup the sysroot
+ echo "Setting up sysroot and extracting needed packages"
+ mkdir -p "$__RootfsDir/boot/system"
+ for file in "$__RootfsDir/generated/objects/haiku/x86_64/packaging/packages/"*.hpkg; do
+ "$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
+ done
+ for file in "$__RootfsDir/generated/download/"*.hpkg; do
+ "$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
+ done
+
+ # Cleaning up temporary files
+ echo "Cleaning up temporary files"
+ rm -rf "$__RootfsDir/tmp"
+ for name in "$__RootfsDir/generated/"*; do
+ if [[ "$name" =~ "cross-tools-" ]]; then
+ : # Keep the cross-compiler
+ else
+ rm -rf "$name"
+ fi
+ done
elif [[ -n "$__CodeName" ]]; then
qemu-debootstrap $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"
cp "$__CrossDir/$__BuildArch/sources.list.$__CodeName" "$__RootfsDir/etc/apt/sources.list"
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index 909117759e61b..561576be97c26 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -7,6 +7,8 @@ if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
set(CMAKE_SYSTEM_NAME SunOS)
set(ILLUMOS 1)
+elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h)
+ set(CMAKE_SYSTEM_NAME Haiku)
else()
set(CMAKE_SYSTEM_NAME Linux)
set(LINUX 1)
@@ -76,6 +78,8 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
set(triple "x86_64-unknown-freebsd12")
elseif(ILLUMOS)
set(TOOLCHAIN "x86_64-illumos")
+ elseif(HAIKU)
+ set(TOOLCHAIN "x64_64-unknown-haiku")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "x86")
set(CMAKE_SYSTEM_PROCESSOR i686)
@@ -170,6 +174,41 @@ elseif(ILLUMOS)
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
+elseif(HAIKU)
+ set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
+
+ set(TOOLSET_PREFIX ${TOOLCHAIN}-)
+ function(locate_toolchain_exec exec var)
+ string(TOUPPER ${exec} EXEC_UPPERCASE)
+ if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "")
+ set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE)
+ return()
+ endif()
+
+ set(SEARCH_PATH "${CROSS_ROOTFS}/generated/cross-tools-x86_64/bin")
+
+ find_program(EXEC_LOCATION_${exec}
+ PATHS ${SEARCH_PATH}
+ NAMES
+ "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
+ "${TOOLSET_PREFIX}${exec}")
+
+ if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND")
+ message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.")
+ endif()
+ set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE)
+ endfunction()
+
+ set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
+
+ locate_toolchain_exec(gcc CMAKE_C_COMPILER)
+ locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
+
+ set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
+ set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
+
+ # let CMake set up the correct search paths
+ include(Platform/Haiku)
else()
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
@@ -229,7 +268,7 @@ endif()
# Specify compile options
-if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
+if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU)
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml
index 24cec0424e5d6..9ff6a10a682c2 100644
--- a/eng/common/templates/job/execute-sdl.yml
+++ b/eng/common/templates/job/execute-sdl.yml
@@ -54,7 +54,7 @@ jobs:
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
steps:
- checkout: self
clean: true
diff --git a/eng/common/templates/job/onelocbuild.yml b/eng/common/templates/job/onelocbuild.yml
index 3bcd243c46b67..6c523b714f407 100644
--- a/eng/common/templates/job/onelocbuild.yml
+++ b/eng/common/templates/job/onelocbuild.yml
@@ -41,7 +41,7 @@ jobs:
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
variables:
- group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml
index 4e37210857d15..c85044a684905 100644
--- a/eng/common/templates/job/source-index-stage1.yml
+++ b/eng/common/templates/job/source-index-stage1.yml
@@ -29,10 +29,10 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCore1ESPool-Public
- demands: ImageOverride -equals Build.Server.Amd64.VS2019.Open
+ demands: ImageOverride -equals windows.vs2019.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
steps:
- ${{ each preStep in parameters.preSteps }}:
diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml
index 2cca53c2d1d53..64e5929f22161 100644
--- a/eng/common/templates/jobs/jobs.yml
+++ b/eng/common/templates/jobs/jobs.yml
@@ -96,7 +96,7 @@ jobs:
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
runAsPublic: ${{ parameters.runAsPublic }}
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index e0beb25d4e761..87fcae940cff0 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -107,7 +107,7 @@ stages:
# If it's not devdiv, it's dnceng
${{ else }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
@@ -144,7 +144,7 @@ stages:
# If it's not devdiv, it's dnceng
${{ else }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
parameters:
@@ -204,7 +204,7 @@ stages:
# If it's not devdiv, it's dnceng
${{ else }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
parameters:
@@ -263,7 +263,7 @@ stages:
# If it's not devdiv, it's dnceng
${{ else }}:
name: NetCore1ESPool-Internal
- demands: ImageOverride -equals Build.Server.Amd64.VS2019
+ demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
parameters:
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 9638c63c7258b..f83a748c37e9c 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -368,7 +368,14 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
# https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.1.0&view=overview
$defaultXCopyMSBuildVersion = '17.1.0'
- if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs }
+ if (!$vsRequirements) {
+ if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
+ $vsRequirements = $GlobalJson.tools.vs
+ }
+ else {
+ $vsRequirements = New-Object PSObject -Property @{ version = $vsMinVersionReqdStr }
+ }
+ }
$vsMinVersionStr = if ($vsRequirements.version) { $vsRequirements.version } else { $vsMinVersionReqdStr }
$vsMinVersion = [Version]::new($vsMinVersionStr)
diff --git a/global.json b/global.json
index 09609c87f9f77..cdd4f150a1f13 100644
--- a/global.json
+++ b/global.json
@@ -3,8 +3,8 @@
"dotnet": "7.0.100-preview.5.22307.18"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.6",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.6",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22411.2",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22411.2",
"Microsoft.Build.Traversal": "2.0.34"
}
}
From 7af75448a60a104df46c29608a3c640ed4de36f0 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 19 Aug 2022 15:55:56 +0000
Subject: [PATCH 09/22] Update dependencies from
https://github.com/dotnet/arcade build 20220818.4 (#248)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 +++----
eng/Versions.props | 2 +-
eng/common/cross/build-rootfs.sh | 18 +++++++----
eng/common/generate-locproject.ps1 | 31 ++++++++++++++++--
eng/common/sdk-task.ps1 | 2 +-
eng/common/sdl/sdl.ps1 | 37 ++++++++++++++++++++++
eng/common/templates/steps/execute-sdl.yml | 37 ++++++++++------------
eng/common/tools.ps1 | 4 +--
global.json | 6 ++--
9 files changed, 107 insertions(+), 42 deletions(-)
create mode 100644 eng/common/sdl/sdl.ps1
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5b2ce60bd40ab..5a3e0dea371aa 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- 6a638cd0c13962ab2a1943cb1c878be5a41dd82e
+ 0c027eede69ba22bafca9a1955f1e00848655ece
-
+
https://github.com/dotnet/arcade
- 6a638cd0c13962ab2a1943cb1c878be5a41dd82e
+ 0c027eede69ba22bafca9a1955f1e00848655ece
-
+
https://github.com/dotnet/arcade
- 6a638cd0c13962ab2a1943cb1c878be5a41dd82e
+ 0c027eede69ba22bafca9a1955f1e00848655ece
diff --git a/eng/Versions.props b/eng/Versions.props
index 2880f18bf1bd4..a35775ccf205c 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22411.2
+ 7.0.0-beta.22418.4
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index d3b0ac3ba7b60..032f5f193732a 100755
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -76,10 +76,10 @@ __FreeBSDPackages+=" openssl"
__FreeBSDPackages+=" krb5"
__FreeBSDPackages+=" terminfo-db"
-__IllumosPackages="icu-64.2nb2"
-__IllumosPackages+=" mit-krb5-1.16.2nb4"
-__IllumosPackages+=" openssl-1.1.1e"
-__IllumosPackages+=" zlib-1.2.11"
+__IllumosPackages="icu"
+__IllumosPackages+=" mit-krb5"
+__IllumosPackages+=" openssl"
+__IllumosPackages+=" zlib"
__HaikuPackages="gmp"
__HaikuPackages+=" gmp_devel"
@@ -390,14 +390,18 @@ elif [[ "$__CodeName" == "illumos" ]]; then
if [[ "$__UseMirror" == 1 ]]; then
BaseUrl=http://pkgsrc.smartos.skylime.net
fi
- BaseUrl="$BaseUrl/packages/SmartOS/2020Q1/${__illumosArch}/All"
+ BaseUrl="$BaseUrl/packages/SmartOS/trunk/${__illumosArch}/All"
+ echo "Downloading manifest"
+ wget "$BaseUrl"
echo "Downloading dependencies."
read -ra array <<<"$__IllumosPackages"
for package in "${array[@]}"; do
- echo "Installing $package..."
+ echo "Installing '$package'"
+ package="$(grep ">$package-[0-9]" All | sed -En 's/.*href="(.*)\.tgz".*/\1/p')"
+ echo "Resolved name '$package'"
wget "$BaseUrl"/"$package".tgz
ar -x "$package".tgz
- tar --skip-old-files -xzf "$package".tmp.tgz -C "$__RootfsDir" 2>/dev/null
+ tar --skip-old-files -xzf "$package".tmp.tg* -C "$__RootfsDir" 2>/dev/null
done
echo "Cleaning up temporary files."
popd
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
index afdd175029092..846e7950ce945 100644
--- a/eng/common/generate-locproject.ps1
+++ b/eng/common/generate-locproject.ps1
@@ -33,6 +33,8 @@ $jsonTemplateFiles | ForEach-Object {
$jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
+$wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them
+
$xlfFiles = @()
$allXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.xlf"
@@ -77,8 +79,7 @@ $locJson = @{
CopyOption = "LangIDOnPath"
OutputPath = "$($_.Directory.Parent.FullName | Resolve-Path -Relative)\"
}
- }
- else {
+ } else {
return @{
SourceFile = $sourceFile
CopyOption = "LangIDOnName"
@@ -88,6 +89,32 @@ $locJson = @{
}
}
)
+ },
+ @{
+ CloneLanguageSet = "WiX_CloneLanguages"
+ LssFiles = @( "wxl_loc.lss" )
+ LocItems = @(
+ $wxlFiles | ForEach-Object {
+ $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
+ $continue = $true
+ foreach ($exclusion in $exclusions.Exclusions) {
+ if ($outputPath.Contains($exclusion))
+ {
+ $continue = $false
+ }
+ }
+ $sourceFile = ($_.FullName | Resolve-Path -Relative)
+ if ($continue)
+ {
+ return @{
+ SourceFile = $sourceFile
+ CopyOption = "LangIDOnPath"
+ OutputPath = $outputPath
+ Languages = "cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW"
+ }
+ }
+ }
+ )
}
)
}
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index 119a6c660d1a4..c35087a06019e 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -64,7 +64,7 @@ try {
$GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
}
if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
- $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.1.0" -MemberType NoteProperty
+ $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.2.1" -MemberType NoteProperty
}
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true
diff --git a/eng/common/sdl/sdl.ps1 b/eng/common/sdl/sdl.ps1
new file mode 100644
index 0000000000000..ac196e164a401
--- /dev/null
+++ b/eng/common/sdl/sdl.ps1
@@ -0,0 +1,37 @@
+
+function Install-Gdn {
+ param(
+ [string]$Path,
+
+ # If omitted, install the latest version of Guardian, otherwise install that specific version.
+ [string]$Version
+ )
+
+ $ErrorActionPreference = 'Stop'
+ Set-StrictMode -Version 2.0
+ $disableConfigureToolsetImport = $true
+ $global:LASTEXITCODE = 0
+
+ # `tools.ps1` checks $ci to perform some actions. Since the SDL
+ # scripts don't necessarily execute in the same agent that run the
+ # build.ps1/sh script this variable isn't automatically set.
+ $ci = $true
+ . $PSScriptRoot\..\tools.ps1
+
+ $argumentList = @("install", "Microsoft.Guardian.Cli", "-Source https://securitytools.pkgs.visualstudio.com/_packaging/Guardian/nuget/v3/index.json", "-OutputDirectory $Path", "-NonInteractive", "-NoCache")
+
+ if ($Version) {
+ $argumentList += "-Version $Version"
+ }
+
+ Start-Process nuget -Verbose -ArgumentList $argumentList -NoNewWindow -Wait
+
+ $gdnCliPath = Get-ChildItem -Filter guardian.cmd -Recurse -Path $Path
+
+ if (!$gdnCliPath)
+ {
+ Write-PipelineTelemetryError -Category 'Sdl' -Message 'Failure installing Guardian'
+ }
+
+ return $gdnCliPath.FullName
+}
\ No newline at end of file
diff --git a/eng/common/templates/steps/execute-sdl.yml b/eng/common/templates/steps/execute-sdl.yml
index 73245593cef53..86cf578c43144 100644
--- a/eng/common/templates/steps/execute-sdl.yml
+++ b/eng/common/templates/steps/execute-sdl.yml
@@ -8,29 +8,26 @@ parameters:
condition: ''
steps:
-- ${{ if ne(parameters.overrideGuardianVersion, '') }}:
- - powershell: |
- $content = Get-Content $(GuardianPackagesConfigFile)
-
- Write-Host "packages.config content was:`n$content"
-
- $content = $content.Replace('$(DefaultGuardianVersion)', '$(GuardianVersion)')
- $content | Set-Content $(GuardianPackagesConfigFile)
-
- Write-Host "packages.config content updated to:`n$content"
- displayName: Use overridden Guardian version ${{ parameters.overrideGuardianVersion }}
+- task: NuGetAuthenticate@1
+ inputs:
+ nuGetServiceConnections: GuardianConnect
- task: NuGetToolInstaller@1
displayName: 'Install NuGet.exe'
-- task: NuGetCommand@2
- displayName: 'Install Guardian'
- inputs:
- restoreSolution: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
- feedsToUse: config
- nugetConfigPath: $(Build.SourcesDirectory)\eng\common\sdl\NuGet.config
- externalFeedCredentials: GuardianConnect
- restoreDirectory: $(Build.SourcesDirectory)\.packages
+- ${{ if ne(parameters.overrideGuardianVersion, '') }}:
+ - pwsh: |
+ . $(Build.SourcesDirectory)\eng\common\sdl\sdl.ps1
+ $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }}
+ Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
+ displayName: Install Guardian (Overridden)
+
+- ${{ if eq(parameters.overrideGuardianVersion, '') }}:
+ - pwsh: |
+ . $(Build.SourcesDirectory)\eng\common\sdl\sdl.ps1
+ $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts
+ Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
+ displayName: Install Guardian
- ${{ if ne(parameters.overrideParameters, '') }}:
- powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }}
@@ -40,7 +37,7 @@ steps:
- ${{ if eq(parameters.overrideParameters, '') }}:
- powershell: ${{ parameters.executeAllSdlToolsScript }}
- -GuardianPackageName Microsoft.Guardian.Cli.$(GuardianVersion)
+ -GuardianCliLocation $(GuardianCliLocation)
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
${{ parameters.additionalParameters }}
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index f83a748c37e9c..aba6308ad313c 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -365,8 +365,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
# If the version of msbuild is going to be xcopied,
# use this version. Version matches a package here:
- # https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.1.0&view=overview
- $defaultXCopyMSBuildVersion = '17.1.0'
+ # https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.2.1&view=overview
+ $defaultXCopyMSBuildVersion = '17.2.1'
if (!$vsRequirements) {
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
diff --git a/global.json b/global.json
index cdd4f150a1f13..bbc29c9d5aaf0 100644
--- a/global.json
+++ b/global.json
@@ -1,10 +1,10 @@
{
"tools": {
- "dotnet": "7.0.100-preview.5.22307.18"
+ "dotnet": "7.0.100-preview.7.22377.5"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22411.2",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22411.2",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22418.4",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22418.4",
"Microsoft.Build.Traversal": "2.0.34"
}
}
From 1eddc11d737b2bf81c81f9d4cc8f06602d8c4cbf Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 22 Aug 2022 12:58:15 +0000
Subject: [PATCH 10/22] Update dependencies from
https://github.com/dotnet/arcade build 20220819.1 (#251)
[objwriter/12.x] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 2 +-
global.json | 4 ++--
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5a3e0dea371aa..ca1cec076f9c6 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,17 +3,17 @@
-
+
https://github.com/dotnet/arcade
- 0c027eede69ba22bafca9a1955f1e00848655ece
+ 34dff939b4a91e4693f78a856e0e055c1a3f3fba
-
+
https://github.com/dotnet/arcade
- 0c027eede69ba22bafca9a1955f1e00848655ece
+ 34dff939b4a91e4693f78a856e0e055c1a3f3fba
-
+
https://github.com/dotnet/arcade
- 0c027eede69ba22bafca9a1955f1e00848655ece
+ 34dff939b4a91e4693f78a856e0e055c1a3f3fba
diff --git a/eng/Versions.props b/eng/Versions.props
index a35775ccf205c..5efee6decfb1d 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -6,6 +6,6 @@
1
- 7.0.0-beta.22418.4
+ 7.0.0-beta.22419.1
diff --git a/global.json b/global.json
index bbc29c9d5aaf0..2611af76de753 100644
--- a/global.json
+++ b/global.json
@@ -3,8 +3,8 @@
"dotnet": "7.0.100-preview.7.22377.5"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22418.4",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22418.4",
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22419.1",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22419.1",
"Microsoft.Build.Traversal": "2.0.34"
}
}
From c1304304028d603e34f6803b0740c34441f80d2e Mon Sep 17 00:00:00 2001
From: Will Smith
Date: Fri, 26 Aug 2022 08:18:53 -0700
Subject: [PATCH 11/22] Add new NuGet package,
`Microsoft.NETCore.Runtime.JIT.Tools`, includes `FileCheck` and `llvm-mca`
(#256)
https://github.com/dotnet/runtime is wanting to start writing assembly (x64/ARM64) verification tests. Instead of building our own tool to support writing those kinds of tests, we want to leverage LLVM's `FileCheck`.
We also want to include `llvm-mca` at the request of @EgorBo
This PR creates a new NuGet package for `dotnet/runtime` to consume which we named `Microsoft.NETCore.Runtime.JIT.Tools`. So far, this package only includes LLVM's `FileCheck` and `llvm-mca` tools.
---
llvm.proj | 15 +++++++++++----
.../Directory.Build.props | 4 ++++
.../Microsoft.NETCore.Runtime.JIT.Tools.builds | 4 ++++
.../Microsoft.NETCore.Runtime.JIT.Tools.pkgproj | 8 ++++++++
...inux.Microsoft.NETCore.Runtime.JIT.Tools.props | 7 +++++++
....OSX.Microsoft.NETCore.Runtime.JIT.Tools.props | 7 +++++++
...s_NT.Microsoft.NETCore.Runtime.JIT.Tools.props | 7 +++++++
nuget/descriptions.json | 5 +++++
nuget/packages.builds | 1 +
9 files changed, 54 insertions(+), 4 deletions(-)
create mode 100644 nuget/Microsoft.NETCore.Runtime.JIT.Tools/Directory.Build.props
create mode 100644 nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.builds
create mode 100644 nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.pkgproj
create mode 100644 nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Linux.Microsoft.NETCore.Runtime.JIT.Tools.props
create mode 100644 nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.OSX.Microsoft.NETCore.Runtime.JIT.Tools.props
create mode 100644 nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Windows_NT.Microsoft.NETCore.Runtime.JIT.Tools.props
diff --git a/llvm.proj b/llvm.proj
index f79a51efcac7e..d68ccb1feee54 100644
--- a/llvm.proj
+++ b/llvm.proj
@@ -28,10 +28,16 @@
<_CMakeConfigureCommand>$(_SetupEnvironment) cmake $(_LLVMSourceDir) -G "$(CMakeGenerator)" @(_LLVMBuildArgs->'%(Identity)',' ')
<_BuildSubset Condition="'$(BuildLLVMTableGenOnly)' == 'true'">llvm-tblgen
- <_BuildSubset Condition="'$(BuildLLVMTableGenOnly)' != 'true'">objwriter
+ <_BuildSubset Condition="'$(BuildLLVMTableGenOnly)' != 'true'">objwriter llvm-mca FileCheck
<_BuildCommand Condition="'$(CMakeGenerator)' == 'Unix Makefiles'">$(_SetupEnvironment) make $(_BuildSubset) -j$([System.Environment]::ProcessorCount)
<_BuildCommand Condition="'$(CMakeGenerator)' == 'Ninja'">$(_SetupEnvironment) ninja $(_BuildSubset)
- <_CMakeInstallCommand>$(_SetupEnvironment) cmake -DCMAKE_INSTALL_DO_STRIP=1 -DCMAKE_INSTALL_PREFIX=$(_LLVMInstallDir) -DCMAKE_INSTALL_COMPONENT=objwriter -P cmake_install.cmake
+ <_CMakeInstallCommand>
+ $(_SetupEnvironment)
+
+ cmake -DCMAKE_INSTALL_DO_STRIP=1 -DCMAKE_INSTALL_PREFIX=$(_LLVMInstallDir) -DCMAKE_INSTALL_COMPONENT=objwriter -P cmake_install.cmake
+ cmake -DCMAKE_INSTALL_DO_STRIP=1 -DCMAKE_INSTALL_PREFIX=$(_LLVMInstallDir) -DCMAKE_INSTALL_COMPONENT=llvm-mca -P cmake_install.cmake
+ cmake -DCMAKE_INSTALL_DO_STRIP=1 -DCMAKE_INSTALL_PREFIX=$(_LLVMInstallDir) -DCMAKE_INSTALL_COMPONENT=FileCheck -P cmake_install.cmake
+
@@ -40,10 +46,11 @@
<_LLVMBuildArgs Condition="'$(TargetArchitecture)' == 'arm64' and '$(BuildOS)' == 'OSX'" Include="-DCMAKE_OSX_ARCHITECTURES=arm64"/>
<_LLVMBuildArgs Condition="'$(LLVMTableGenPath)' != ''" Include='-DLLVM_TABLEGEN="$(LLVMTableGenPath)"' />
<_LLVMBuildArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)" />
- <_LLVMBuildArgs Include='-DLLVM_BUILD_TOOLS:BOOL=OFF' />
+ <_LLVMBuildArgs Include='-DLLVM_BUILD_TOOLS:BOOL=ON' />
+ <_LLVMBuildArgs Include='-DLLVM_INSTALL_UTILS:BOOL=ON' />
<_LLVMBuildArgs Include='-DLEGAL_COPYRIGHT:STRING="\xa9 Microsoft Corporation. All rights reserved."' />
<_LLVMBuildArgs Include='-DLLVM_ENABLE_TERMINFO:BOOL=OFF' />
- <_LLVMBuildArgs Include="-DLLVM_INCLUDE_UTILS:BOOL=OFF" />
+ <_LLVMBuildArgs Include="-DLLVM_INCLUDE_UTILS:BOOL=ON" />
<_LLVMBuildArgs Include="-DLLVM_INCLUDE_RUNTIMES:BOOL=OFF" />
<_LLVMBuildArgs Include="-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF" />
<_LLVMBuildArgs Include="-DLLVM_INCLUDE_TESTS:BOOL=OFF" />
diff --git a/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Directory.Build.props b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Directory.Build.props
new file mode 100644
index 0000000000000..f4a1490ea1da5
--- /dev/null
+++ b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Directory.Build.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.builds b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.builds
new file mode 100644
index 0000000000000..eaae7d884d1c9
--- /dev/null
+++ b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.builds
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.pkgproj b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.pkgproj
new file mode 100644
index 0000000000000..a574caec29e4f
--- /dev/null
+++ b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/Microsoft.NETCore.Runtime.JIT.Tools.pkgproj
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Linux.Microsoft.NETCore.Runtime.JIT.Tools.props b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Linux.Microsoft.NETCore.Runtime.JIT.Tools.props
new file mode 100644
index 0000000000000..c4fb271a83161
--- /dev/null
+++ b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Linux.Microsoft.NETCore.Runtime.JIT.Tools.props
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.OSX.Microsoft.NETCore.Runtime.JIT.Tools.props b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.OSX.Microsoft.NETCore.Runtime.JIT.Tools.props
new file mode 100644
index 0000000000000..c4fb271a83161
--- /dev/null
+++ b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.OSX.Microsoft.NETCore.Runtime.JIT.Tools.props
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Windows_NT.Microsoft.NETCore.Runtime.JIT.Tools.props b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Windows_NT.Microsoft.NETCore.Runtime.JIT.Tools.props
new file mode 100644
index 0000000000000..0efb2beedbf52
--- /dev/null
+++ b/nuget/Microsoft.NETCore.Runtime.JIT.Tools/runtime.Windows_NT.Microsoft.NETCore.Runtime.JIT.Tools.props
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/nuget/descriptions.json b/nuget/descriptions.json
index 417e198dd9438..95a0d209e13f2 100644
--- a/nuget/descriptions.json
+++ b/nuget/descriptions.json
@@ -13,5 +13,10 @@
"Name": "Microsoft.NETCore.Runtime.ObjWriter",
"Description": "ELF/PE/Mach-O object file writer based on LLVM used in .NET AOT compiler. Internal implementation package not meant for direct consumption. Please do not reference directly.",
"CommonTypes": [ ]
+ },
+ {
+ "Name": "Microsoft.NETCore.Runtime.JIT.Tools",
+ "Description": "Tools such as FileCheck and llvm-mca used for testing the .NET JIT compiler. Internal implementation package not meant for direct consumption. Please do not reference directly.",
+ "CommonTypes": [ ]
}
]
diff --git a/nuget/packages.builds b/nuget/packages.builds
index 85d860081e533..d857ef3dc6915 100644
--- a/nuget/packages.builds
+++ b/nuget/packages.builds
@@ -1,6 +1,7 @@
+