2 Star 0 Fork 0

痴者工良 / coreclr

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
init-distro-rid.sh 5.56 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/env bash
# initNonPortableDistroRid
#
# Input:
# buildOs: (str)
# buildArch: (str)
# isPortable: (int)
# rootfsDir: (str)
#
# Return:
# None
#
# Notes:
#
# initNonPortableDistroRid will attempt to initialize a non portable rid. These
# rids are specific to distros need to build the product/package and consume
# them on the same platform.
#
# If -portablebuild=false is passed a non-portable rid will be created for any
# distro.
#
# Below is the list of current non-portable platforms.
#
# Builds from the following *must* be non-portable:
#
# | OS | Expected RID |
# -------------------------------------------------
# | rhel6 | rhel.6-x64 |
# | alpine* | linux-musl-(arch) |
# | freeBSD | freebsd.(version)-x64 |
#
# It is important to note that the function does not return anything, but it
# will set __DistroRid if there is a non-portable distro rid to be used.
#
initNonPortableDistroRid()
{
# Make sure out parameter is cleared.
__DistroRid=
local buildOs=$1
local buildArch=$2
local isPortable=$3
local rootfsDir=$4
if [ "$buildOs" = "Linux" ]; then
# RHEL 6 is the only distro we will check redHat release for.
if [ -e "${rootfsDir}/etc/os-release" ]; then
source "${rootfsDir}/etc/os-release"
# We have forced __PortableBuild=0. This is because -portablebuld
# has been passed as false.
if (( ${isPortable} == 0 )); then
if [ "${ID}" == "rhel" ]; then
# remove the last version digit
VERSION_ID=${VERSION_ID%.*}
fi
if [ -z ${VERSION_ID+x} ]; then
# Rolling release distros do not set VERSION_ID, so omit
# it here to be consistent with everything else.
nonPortableBuildID="${ID}-${buildArch}"
else
nonPortableBuildID="${ID}.${VERSION_ID}-${buildArch}"
fi
fi
elif [ -e "${rootfsDir}/etc/redhat-release" ]; then
local redhatRelease=$(<${rootfsDir}/etc/redhat-release)
if [[ "${redhatRelease}" == "CentOS release 6."* || "$redhatRelease" == "Red Hat Enterprise Linux Server release 6."* ]]; then
nonPortableBuildID="rhel.6-${buildArch}"
fi
elif [ -e "${rootfsDir}/android_platform" ]; then
source $rootfsDir/android_platform
nonPortableBuildID="$RID"
fi
fi
if [ "$buildOs" = "FreeBSD" ]; then
__freebsd_version=`sysctl -n kern.osrelease | cut -f1 -d'.'`
nonPortableBuildID="freebsd.$__freebsd_version-${buildArch}"
fi
if [ "${nonPortableBuildID}" != "" ]; then
export __DistroRid=${nonPortableBuildID}
# We are using a non-portable build rid. Force __PortableBuild to false.
export __PortableBuild=0
fi
}
# initDistroRidGlobal
#
# Input:
# os: (str)
# arch: (str)
# isPortable: (int)
# rootfsDir?: (nullable:string)
#
# Return:
# None
#
# Notes:
#
# The following out parameters are returned
#
# __DistroRid
# __PortableBuild
#
initDistroRidGlobal()
{
# __DistroRid must be set at the end of the function.
# Previously we would create a variable __HostDistroRid and/or __DistroRid.
#
# __HostDistroRid was used in the case of a non-portable build, it has been
# deprecated. Now only __DistroRid is supported. It will be used for both
# portable and non-portable rids and will be used in build-packages.sh
local buildOs=$1
local buildArch=$2
local isPortable=$3
local rootfsDir=$4
# Setup whether this is a crossbuild. We can find this out if rootfsDir
# is set.
local isCrossBuild=0
if [ -z "${rootfsDir}" ]; then
isCrossBuild=0
else
# We may have a cross build. Check for the existance of the rootfsDir
if [ -e ${rootfsDir} ]; then
isCrossBuild=1
else
echo "Error rootfsDir has been passed, but the location is not valid."
exit 1
fi
fi
if [ "$buildArch" = "armel" ]; then
# Armel cross build is Tizen specific and does not support Portable RID build
export __PortableBuild=0
isPortable=0
fi
initNonPortableDistroRid ${buildOs} ${buildArch} ${isPortable} ${rootfsDir}
if [ -z "${__DistroRid}" ]; then
# The non-portable build rid was not set. Set the portable rid.
export __PortableBuild=1
local distroRid=""
# Check for alpine. It is the only portable build that will will have
# its name in the portable build rid.
if [ -e "${rootfsDir}/etc/os-release" ]; then
source "${rootfsDir}/etc/os-release"
if [ "${ID}" = "alpine" ]; then
distroRid="linux-musl-${buildArch}"
fi
fi
if [ "${distroRid}" == "" ]; then
if [ "$buildOs" = "Linux" ]; then
distroRid="linux-$buildArch"
elif [ "$buildOs" = "OSX" ]; then
distroRid="osx-$buildArch"
elif [ "$buildOs" = "FreeBSD" ]; then
distroRid="freebsd-$buildArch"
fi
fi
export __DistroRid=${distroRid}
fi
if [ -z "$__DistroRid" ]; then
echo "DistroRid is not set. This is almost certainly an error"
exit 1
else
echo "__DistroRid: ${__DistroRid}"
echo "__RuntimeId: ${__DistroRid}"
export __RuntimeId=${__DistroRid}
fi
}
1
https://gitee.com/whuanle/coreclr.git
git@gitee.com:whuanle/coreclr.git
whuanle
coreclr
coreclr
ArmFailureProbe

搜索帮助